二本鎖DNAの質量濃度からモル濃度を計算
この計算ツールは、ng/µLなどで示された二本鎖DNAの質量濃度をmol/L、µM、nM、pMへ換算します。分子の塩基対数と、既定値660 g/mol per bpの平均分子量を使用します。希釈液の調製、試料の正規化、長さが異なるコンストラクトの比較、質量測定値から分子数基準の条件を求める作業に利用できます。手順書や配列モデルで別の値が指定されている場合は、平均分子量を変更できます。
無料で実行
質量濃度と正しいDNA長を入力します
最初に二本鎖DNA試料の測定済み質量濃度を入力し、その単位を選択します。ng/µL、µg/mL、mg/mL、g/Lに対応し、計算前にすべてg/Lへ正規化します。次に、1分子の長さを正の整数の塩基対数で入力します。ベクターバックボーン、インサート、アダプターなど、各分子に含まれる二本鎖部分をすべて含めてください。5,000 bpのプラスミドなら、特定領域だけでなく5000と入力します。同じ質量でも短いDNAほど分子量が小さく、モル濃度は高くなるため、長さは重要です。質量濃度にはゼロを指定できますが、塩基対数は必ず正でなければなりません。有限でない値、小数の塩基対数、負の濃度、未対応の単位は拒否されます。不正な入力から見かけ上もっともらしい結果が生成されることを防ぐためです。
分子量の近似と計算式を確認します
まず、塩基対数に1塩基対当たりの平均分子量を掛けて、1分子の分子量を推定します。既定値の660 g/mol per bpは、二本鎖DNAで一般的に使われる近似値です。この前提では5,000 bpのコンストラクトは3,300,000 g/molになります。次に、g/Lへ正規化した質量濃度を分子量g/molで割り、mol/Lを求めます。同じ結果をµM、nM、pMでも返します。たとえば50 ng/µLは0.05 g/Lであり、5,000 bpなら約1.515 × 10^-8 mol/L、つまり15.15 nMです。660は配列から求めた厳密値ではなく平均値です。キットや施設の手順で別の値が指定される場合は変更できます。使用した前提と総分子量も結果に表示されるため、換算過程を確認できます。
実験計画に適切に利用します
得られたモル濃度は、分子数によるコンストラクト比較、等モルプール、希釈計画、ライゲーションやシーケンシング用の蛍光測定値換算に利用できます。入力対象が二本鎖DNAであり、塩基対数が実際の分子形態全体に対応することをご確認ください。このツールは濃度の測定、長さの推定、配列解析、純度補正、断片サイズ分布のモデル化は行いません。断片化DNAを平均長や最頻長で表す場合、結果は近似値となるため記録が必要です。吸光度による測定には夾雑物が含まれる場合があり、特殊な修飾では別の平均分子量が必要です。精度は入力した測定値、長さ、前提に依存します。処理は決定論的で通信を行わず、ブラウザーとAPIは同じ計算を使います。有効なAPIリクエスト1回の料金は$0.002です。
活用例
プラスミドを等モルで混合します
各プラスミドの全長を使って測定濃度を換算し、その後に混合量を決めます。
DNA希釈条件を計画します
ng/µLをnMまたはpMへ換算し、手順で指定された分子濃度まで原液を希釈します。
長さの異なるアンプリコンを正規化します
質量だけで長い産物が過剰にならないよう、アンプリコンをモル濃度で比較します。
よくある質問
どの計算式を使用しますか?
質量濃度をg/Lへ換算し、塩基対数と平均分子量の積を求め、g/Lをg/molで割ってmol/Lを算出します。
なぜ既定値が660 g/mol per bpなのですか?
二本鎖DNAで一般的な平均近似値だからです。組成や修飾で厳密な質量は変わるため、値は変更できます。
一本鎖DNAやRNAにも使えますか?
いいえ。既定モデルは二本鎖DNAの塩基対専用です。他の核酸には異なる分子量の前提が必要です。
どの質量濃度単位に対応しますか?
ng/µL、µg/mL、mg/mL、g/Lに対応し、入力ではng/uL、ug/mL、mg/mL、g/Lと指定します。
断片化DNAにはどの長さを使いますか?
近似でよい場合に限り代表長を使います。サイズ分布には、この単純なモデルで単一の厳密なモル濃度はありません。
APIの利用料金はいくらですか?
有効なAPIリクエスト1回につき$0.002です。ブラウザーでも計算できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/bio/dsdna-mass-to-molar \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"mass_concentration":50,"base_pairs":5000}'const res = await fetch("https://api.kit.forhosting.com/bio/dsdna-mass-to-molar", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"mass_concentration": 50,
"base_pairs": 5000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/bio/dsdna-mass-to-molar",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"mass_concentration": 50,
"base_pairs": 5000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/bio/dsdna-mass-to-molar", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"mass_concentration":50,"base_pairs":5000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"mass_concentration":50,"base_pairs":5000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/bio/dsdna-mass-to-molar", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"mass_concentration": 50,
"base_pairs": 5000
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "bio.dsdna_mass_to_molar",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_base_pairs | 1000000000000 |
max_mass_concentration | 1000000000000 |
max_average_bp_molecular_weight | 1000000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |