遺伝子のコドン使用割合計算ツール
この計算ツールは、遺伝子内で同じアミノ酸を指定する全コドンのうち、選択したコドンが占める割合を求めます。コドン数と対象コドンを入力すると、正規化した割合、百分率、アミノ酸、分母に用いた同義コドン群を表示します。DNA表記とRNA表記の両方に対応し、重複行は合算され、入力されていない同義コドンはゼロとして扱われます。表計算ソフトや手作業の遺伝暗号表を使わず、遺伝子内のコドン偏りを再現可能な形で要約できます。
無料で実行
コドン使用割合が示すもの
多くのアミノ酸には複数のコドンが対応します。使用割合は、この遺伝子で同じアミノ酸を指定するコドンのうち、選択したコドンがどれだけ使われたかを示します。たとえばフェニルアラニンを指定するTTTが18回、TTCが12回なら、TTTの割合は18を30で割った0.6です。分母は遺伝子中の全コドンではなく、対象アミノ酸のコドンだけです。そのため、別のアミノ酸の組成に左右されず、同義コドン間の選好を表せます。1に近ければ対象コドンが優勢で、0に近ければ使用が少ないか存在しないことを意味します。ただし、この値だけで選択圧、発現効率、統計的有意性が証明されるわけではありません。その解釈には適切な参照集合と生物学的背景が必要です。比較の妥当性を保つため、同じ読み枠と遺伝子定義から得たカウントをご使用ください。
入力の準備と結果の読み方
観測した各コドンに0以上の整数カウントを付け、対象コドンを指定してください。TTTのようなDNA表記とUUUのようなRNA表記を使用でき、出力ではUがTに正規化されます。大文字と小文字、前後の空白は区別されません。正規化後に同じコドンとなる行が複数あれば、カウントを合計します。領域別やバッチ別のデータをまとめる場合にも便利です。すべての同義コドンを入力する必要はありません。省略された同義コドンはカウント0として結果に表示されるため、分母を明確に確認できます。別のアミノ酸を指定するコドンのカウントは入力できますが、選択した割合には影響しません。本ツールは標準遺伝暗号を使用し、アミノ酸を指定しない終止コドンは対象にできません。同義コドン群の合計が0の場合も、使用割合を定義できないためエラーになります。遺伝子を比較する前に、返された同義コドン一覧をご確認ください。
コドン偏り解析での利用方法
usage_fractionは0から1の値で、percentageは同じ値を0から100で示します。対象コドン数と同義コドン合計も返されるため、比率の根拠を後続解析に残せます。同じ0.5でも、2件中1件と1000件中500件では根拠の量が大きく異なり、同じ信頼度とは限りません。探索的解析では、各同義コドンの割合を求め、遺伝子、条件、生物種、設計配列の間でパターンを比較できます。遺伝暗号の前提、アノテーション版、カウント規則は統一してください。同じデータを用いた同義コドン群の割合は、合計が1になることを品質確認にも利用できます。APIの料金は1リクエストあたり$0.002で、ブラウザーでは同じ決定論的計算をローカル実行できます。ネットワーク検索、無作為抽出、外部データベース、変動する参照頻度は使用しないため、有効な同一入力からは常に同じ結果が得られます。
活用例
単一遺伝子の要約
遺伝子内で特定の同義コドンが優勢か、ほとんど使われていないかを測定します。
遺伝子設計の比較
同じ規則を用いて、天然配列と再設計したコード配列の割合を比較します。
カウント表の監査
広範な解析の前に、同義コドンの分母とゼロの構成要素を確認します。
よくある質問
どのような式で計算しますか?
選択したコドン数を、標準遺伝暗号で同じアミノ酸を指定する全コドン数の合計で割ります。
RNAコドンを入力できますか?
はい。UはTに正規化されるため、UUUとTTTは同じコドンとして扱われます。
同義コドンが入力にない場合はどうなりますか?
カウント0として扱われます。計算に用いた同義コドン群全体が出力されます。
同じコドンの行を複数入力できますか?
はい。重複コドンを正規化し、0以上の整数カウントを合算します。
終止コドンを対象にできますか?
いいえ。本指標はコドンとアミノ酸の関係を測るため、終止コドンは対象外です。
高い割合は最適な発現を証明しますか?
いいえ。入力されたカウントだけを表します。発現や適応の判断には参照データと生物学的背景が必要です。
APIリクエストの料金はいくらですか?
1リクエストあたり$0.002です。このページでは同じ決定論的計算をブラウザー内でローカル実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/bio/codon-usage-fraction \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"codon_counts":[{"codon":"TTT","count":18},{"codon":"TTC","count":12},{"codon":"ATG","count":7}],"target_codon":"TTT"}'const res = await fetch("https://api.kit.forhosting.com/bio/codon-usage-fraction", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"codon_counts": [
{
"codon": "TTT",
"count": 18
},
{
"codon": "TTC",
"count": 12
},
{
"codon": "ATG",
"count": 7
}
],
"target_codon": "TTT"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/bio/codon-usage-fraction",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"codon_counts": [
{
"codon": "TTT",
"count": 18
},
{
"codon": "TTC",
"count": 12
},
{
"codon": "ATG",
"count": 7
}
],
"target_codon": "TTT"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/bio/codon-usage-fraction", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"codon_counts":[{"codon":"TTT","count":18},{"codon":"TTC","count":12},{"codon":"ATG","count":7}],"target_codon":"TTT"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"codon_counts":[{"codon":"TTT","count":18},{"codon":"TTC","count":12},{"codon":"ATG","count":7}],"target_codon":"TTT"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/bio/codon-usage-fraction", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"codon_counts": [
{
"codon": "TTT",
"count": 18
},
{
"codon": "TTC",
"count": 12
},
{
"codon": "ATG",
"count": 7
}
],
"target_codon": "TTT"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "bio.codon_usage_fraction",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_items | 64 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |