DNA塩基エンコーダ
単語を入力すると、DNAの文字で表せます。Hiは1バイト4塩基でCAGACGGCになり、2ビットごとにA、C、G、Tのどれかが対応します。塩基の並びを貼り付ければ文字に戻せます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- Hi
- 計算モード
- Encode
- 結果
- CAGACGGC
- 入力
- Hi
- Dna
- CAGACGGC
- グループ
- CAGA, CGGC
DNA塩基エンコーダは、各ビット対を四文字アルファベットの一文字として扱い、通常のテキストをアデニン・シトシン・グアニン・チミンという四つの生物学的塩基の列へ変換します。DNAデコーダは同じ対応表を逆にたどり、元のUTF-8文字列を復元します。平文を入力してencodeを選ぶと、1バイトあたり四塩基の連続したA/C/G/T配列が得られます。DNA文字列を貼り付けてdecodeを選べば、文字が再構築されます。学生は合成生物学や情報理論の演習を確認し、開発者は単体テストでDNA風フィクスチャを検証し、教育者はデジタルデータを四文字符号で書けることを示せます。
ビット対がDNA塩基になる仕組みと、長さが四の倍数でなければならない理由
デジタルテキストはバイト列であり、各バイトは八ビットです。このエンコーダはビットを対にまとめ、固定表で各対をちょうど一つのDNA塩基へ写像します。ゼロゼロはA、ゼロイチはC、イチゼロはG、イチイチはTです。
バイトを最上位のビット対から最下位まで辿れば、常に四文字が得られます。大文字Hの十進値は七十二、二進はゼロイチゼロゼロイチゼロゼロゼロで、C・A・G・Aになります。文字iはC・G・G・Cとなり、語HiはまとめてCAGACGGCに符号化されます。
復号は配列を四塩基ずつ読み、各塩基を二ビット符号へ戻し、各バイトを再構成してバイト配列をUTF-8として解釈します。完全な一バイトには常に四塩基が必要なため、長さが四の倍数でない配列は整数個のバイトを表せず、拒否されます。同様にA・C・G・T以外の文字(U、N、数字、句読点を含む)は無効です。
空白・カンマ・ハイフンなどの区切りは検証前に除去されるため、合法塩基のみならFASTA風の貼り付け断片も動作します。アクセント付き文字や絵文字など複数バイトのUTF-8文字は、一バイト超=四塩基超に広がります。これは想定どおりであり誤りではありません。
このページはDNA塩基エンコーダ、テキストからDNAへの変換、A/C/G/T二進パッキングを探す方向けです。生物学的アラインメント、コドン表、逆相補計算機ではありません。
実務上のコツ、制限、関連ツール
読みやすいテキストから始め、ワークシートやステガノグラフィのデモ、決定的なまま残すべき単体テスト用フィクスチャ向けのDNA風文字列が必要なときはencodeを選んでください。往復確認が最も速いスモークテストです。
Hiのような短い語をencodeし、八塩基がHとiの既知の四塩基グループと一致することを確認し、その塩基をdecodeして元の文字列が戻ることを確認します。公開されている文字数上限を超えないようにしてください。数メガバイト級のダンプはオフライン向けです。
本ツールは生物学的な逆相補ユーティリティでも、コドン翻訳器でも、任意整数向けの一般的な四進数変換でもありません。それらは専用ページが適切です。二ビット詰め表でテキストやバイナリをDNA塩基と対応させる検索意図のときは本機能を、ゼロイチや十六進の形が必要なときはバイナリ/十六進テキスト変換を使ってください。
指導時は、同じ絵文字やアクセント付き文字を平易なASCII文字の隣に示し、複数バイトのUTF-8オクテットが謎の単一コドンではなく、追加の四塩基グループとして現れることを見せてください。
活用例
情報理論のDNA符号に関する宿題の照合
学生は短い語句を符号化し、手書きのA/C/G/T列を決定的な結果と照合し、表計算なしで教員提供の配列を復号します。
合成データ形式向けの単体テスト用フィクスチャ
フィクスチャ文から既知のDNA風文字列を生成し、アドホックなビット詰め補助なしで、decodeが同じUTF-8バイトをCIで復元することを検証します。
四文字デジタル詰め込みの教室デモ
ワークショップでは、印刷可能なラベルが二ビットずつDNA塩基になる様子を示し、無効文字や奇数長を強制して厳密な検証を説明します。
よくある質問
DNA塩基エンコーダはどの対応表を使いますか?
各ビット対は一塩基に写像されます:00→A、01→C、10→G、11→T。各UTF-8バイト内では最上位ビットから読むため、一バイトはちょうど四塩基になります。
小文字の塩基や空白は使えますか?
decodeでは使えます。塩基は大文字化され、空白や一般的な区切り(カンマ、ハイフン、パイプ)は検証前に除去されます。encodeは常に連続した大文字DNAを返します。
UTF-8と絵文字に対応していますか?
はい。 符号化はUTF-8を使うため、複数バイト文字は複数の四塩基グループになります。復号は有効なUTF-8でないバイト列を拒否します。
塩基の数が4の倍数でないと復号できないのはなぜですか?
テキストの1バイトは、1塩基2ビットで必ず4塩基になるからです。4の倍数でない並びはバイトを組み立てられないため、勝手に補わずに受け付けません。
本物の生物の配列を扱うツールですか?
いいえ、違います。テキストをA、C、G、Tの4文字に置き換えて戻すためのツールで、配列の比較やコドン表、相補鎖の計算は行いません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/dna-encode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hi"}'const res = await fetch("https://api.kit.forhosting.com/enc/dna-encode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hi"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/dna-encode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hi"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/dna-encode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hi"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hi"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/dna-encode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "Hi"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.dna_encode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_chars | 100000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
A・C・G・T以外の文字を含む配列や、長さが四の倍数でない配列は、勝手なパディングや黙った置換をせず、明確なinvalid_inputエラーを返します。経路はUTF-8バイト上の純決定的な算術のみで、ネットワークも乱数シードも時刻依存もなく、無料のブラウザ実行器と前払いAPIは、成功リクエストあたり$0.002で同じJSONを毎回返します。
APIの呼び出し方と応答に含まれる内容
既定のmodeはencodeで、textのUTF-8バイトが連続した大文字DNA文字列になります。modeがdecodeのとき、textはDNA配列として扱われ、区切りを除去し塩基を大文字化し、アルファベットと長さを検証したうえで、復元されたUTF-8文字列を返します。入力長は十万文字に制限され、巨大文字列でWorkerメモリを一気に使い切らないようにしています。decode成功時には、mode、input、復号UTF-8のresultとtext、連続大文字へ正規化したdna、同じgroupsとbytes、各種カウント、対応表、対応するメッセージが含まれます。必須の文字列フィールドtext(別名input、value、data、sequence)と、encodeまたはdecodeのいずれかの任意modeを含むJSON本体を送信します。encode成功時の応答には、mode、input、同じ塩基列のresultとdna、バイトごとの四塩基塊の配列groups、整数バイト値のbytes、byte_count、base_count、bit_count、対応表の凡例、短いメッセージが含まれます。text欠落、textが文字列でない、過大入力、未知のmode、塩基以外の文字、長さが四の倍数でない、復号バイトが有効なUTF-8でない、といった検証失敗はinvalid_inputを返し、課金されません。料金は成功リクエストあたり定額の$0.002で、単位はitemです。
実務上のコツ、制限、関連ツール
教科書や生成ペイロードから得たA/C/G/T文字列を既に持ち、文字を戻したいときはdecodeを選んでください。三塩基断片やX・Uを含む文字列を意図的に送ると、クライアントがinvalid_inputと、アルファベットや四の倍数規則を示すエラーメッセージを扱うかを検証できます。invalid_inputを返す失敗タスクは前払い残高を消費しないため、学習者が不完全な配列を貼っても探索用スクリプトのコストは抑えられます。
技術的な質問
DNA配列の長さが四の倍数でなければならないのはなぜですか?
四塩基は八ビット、つまり完全な一バイトです。長さが四の倍数でなければ完全なバイトを表せないため、decodeはパディングせずinvalid_inputを返します。
DNA塩基エンコーダは無料ですか?
ブラウザ上のツールは無料でローカル実行されます。API呼び出しは成功リクエストあたり$0.002の前払いKIT残高を使い、失敗タスクは課金されません。