tooluniverse-sequence-analysis について
生物配列を取得・解析する研究者向けの ToolUniverse スキルです。NCBI、Ensembl、UniProt の検索、オーソログ探索、FASTQ 品質管理の手順を扱い、既存の解析結果を先に確認するよう案内します。
主な機能
- 01遺伝子検索と概要取得
- 02核酸配列の検索・取得
- 03タンパク質配列と注釈の取得
- 04種間オーソログの検索
- 05ドメイン・変異・配列の解析
- 06FASTQ 品質管理のカウント支援
活用シーン
- 01BRCA1 の mRNA 配列を取得
- 02生物種のゲノム配列を検索
- 03種間で TP53 オーソログを比較
- 04Trimmomatic の破棄リード数を計算
MCP 対応
このスキルは、ToolUniverse の生物データツールを使った遺伝子、配列、タンパク質および関連解析結果の取得を案内します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mims-harvard/ tooluniverse --skill tooluniverse-sequence-analysisインストール後、Claude Code で/tooluniverse-sequence-analysisを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
scripts/amino_acids.pybiology_facts.pysequence_tools.pytranslate_dna.py詳細
生物学的配列解析
⚠️ 最優先ルール:Trimmomatic の「完全に破棄されたリード」=サンプルごとに F + R + 2*D を合計
Trimmomatic の「完全に破棄されたリード」/「破棄されたリード」/
「いずれの出力にも含まれないリード」について尋ねられた場合、Dropped フィールドだけを報告してはいけません。Dropped は両方のリードが失敗したペア数を数えるもので、各ペアは個々のリード 2 本に相当します。さらに、Forward-only と Reverse-only の各区分でも、ペアごとにリード 1 本が破棄されます。
reads_discarded = sum over samples of (Forward_Only + Reverse_Only + 2 * Dropped)
❌ 誤り:sum(Dropped per sample) — 通常は数千程度となり、正解より 100 倍以上小さくなります
✅ 正解:sum(F + R + 2*D per sample)
カウンターの全一覧は、以下の FASTQ セクションにあります。
ルール 0 — まず事前計算済みの結果を確認する
以下の手順に従う前に、データフォルダーをスキャンして次のものがないか確認します。
*_executed.ipynb→tu run read_executed_notebook '{"data_folder":"<path>","search":"<keyword>"}'で読み込み、セルの出力を正解として引用します- 事前計算済みの結果ファイル(
*results*、*deseq*、*enrich*、*stats*、*_simplified.csvなどの名前が付いた CSV/TSV)→ 直接読み込み、求められている値を報告します - 公式の解析スクリプト(
analysis.R、run_*.py、find_*.R、*.Rmd)→ そのまま実行して、出力を読み取ります
上記のいずれも存在しない場合に限り、以下のこのスキルの再解析手順に従ってください。生データから再実行すると、公開済みの回答とは異なる数値が得られ、処理も大幅に遅くなります(ターン数が 5~10 倍になることもよくあります)。
NCBI、Ensembl、UniProt から生物学的配列を取得、注釈付け、比較します。塩基配列検索、配列取得、遺伝子の概要、オーソログの発見、タンパク質配列の抽出を扱います。
FASTQ QC、Trimmomatic、およびリードアラインメント(生リードがある場合)
データフォルダーに *.fastq ファイルがあり、質問が Trimmomatic、BWA、samtools、FastQC、またはカバレッジ深度に関する場合、このスキルが入口となります。ただし、実際の処理はシェルレベルで行います(特定の ToolUniverse データツールは使用しません)。
Trimmomatic PE — 「完全に破棄された」リードのカウント
Trimmomatic PE は、各入力ペアを次のように分類します。
- Both Surviving(B):R1 と R2 の両方が合格 → ペアとして保持
- Forward Only Surviving(F):R1 は合格、R2 は破棄 → R1 はシングルトンとして保持、R2 は完全に破棄
- Reverse Only Surviving(R):R2 は合格、R1 は破棄 → R2 はシングルトンとして保持、R1 は完全に破棄
- Dropped(D):両方とも失敗 → R1 と R2 の両方を完全に破棄
カウンターは質問をよく確認して選んでください。重要:「完全に破棄されたリード」≠「破棄されたペア」です。 Trimmomatic の Dropped 数はペア数を数えます(各ペアは個々のリード 2 本に相当)。質問がリード(ペアではなく)について尋ねている場合、各カウンターをリード単位に換算します。
| 質問の表現 | 式(サンプルごとに計算し、その後すべてのサンプルで合計) |
|---|---|
| 「完全に破棄されたリード」、「破棄されたリード」、「いずれの出力にも含まれないリード」 | F + R + 2*D(どの出力 FASTQ にも含まれない個々の R1 または R2) |
| 「破棄されたリードペア」、「両方のリードが失敗したペア」 | D |
| 「破棄された個々の R2 リード」(R1 はシングルトンとして保持) | F |
| 「破棄された個々の R1 リード」(R2 はシングルトンとして保持) | R |
| 「QC を通過したリード」/「生存リード」 | 2*B + F + R |
Trimmomatic の stderr サマリーには、Input Read Pairs: N Both Surviving: B (b%) Forward Only Surviving: F (f%) Reverse Only Surviving: R (r%) Dropped: D (d%) と表示されます。すべての入力サンプルペア(例:SRR1 + SRR2 + ...)を必ず合計してください。
D だけを「完全に破棄されたリード」として報告してはいけません。これはリード数ではなくペア数であり、約 100 倍の差が生じます。「Forward Only」では R2 のリードが破棄され、「Reverse Only」では R1 のリードが破棄されます。「Dropped」のペアでは両方のリードが失われます。
カバレッジ深度(samtools depth/mosdepth)
「平均カバレッジ深度」には、samtools depth -a alignment.bam | awk '{sum+=$3; n++} END {print sum/n}' を実行します。-a フラグはカバレッジがゼロの位置も含めます(含めない場合、平均値が高く偏ります)。染色体ごとのカバレッジを求めるには、$1 でグループ化します。
使用する場面
- 「BRCA1 の mRNA 配列を取得する」
- 「NCBI で E. coli K-12 の完全ゲノムを検索する」
- 「種をまたいで TP53 のオルソログを見つける」
- 「UniProt P04637 のタンパク質配列を取得する」
- 「Ensembl トランスクリプト ENST00000269305 の CDS 配列を取得する」
ワークフロー
Input -> Phase 1: Gene ID resolution -> Phase 2: Nucleotide retrieval
-> Phase 3: Protein sequences -> Phase 4: Orthologs -> Output
フェーズ 1:遺伝子の特定と概要
NCBIGene_search:term(string 必須、形式は "TP53[Symbol] AND Homo sapiens[Organism]")、retmax(int、デフォルトは 10)。{status, data: {esearchresult: {idlist: ["7157"]}}} を返します。
NCBIGene_get_summary:id(string 必須、例:"7157")。{status, data: {result: {"7157": {name, description, summary, chromosome, maplocation, genomicinfo, mim}}}} を返します。結果のキーには遺伝子 ID 文字列が使われます。
NCBIDatasets_get_gene_by_symbol:symbol(string 必須、例:"BRCA1")、taxon(string、例:"human")。遺伝子 ID、説明、位置、相互参照を返します。
NCBIDatasets_get_gene:gene_id(string 必須、例:"7157")。遺伝子の包括的な情報を返します。
フェーズ 2:ヌクレオチド配列の検索と取得
NCBI_search_nucleotide:query(自由形式)、organism(string)、gene(string)、strain(string)、keywords(string)、seq_type("complete_genome"/"mRNA"/"refseq")、limit(int、デフォルトは 20)。{status, data: {uids: [...], accessions: [...]}} を返します。
NCBI_fetch_accessions:uids(配列 必須、例:["545778205"])。{status, data: ["U00096.3"], count: 1} を返します。
NCBI_get_sequence:accession(string 必須、例:"NM_007294")、format("fasta"/"gb"/"embl")。{status, data: "FASTA string...", accession, format, length} を返します。
EnsemblSeq_get_region_sequence:region(string 必須、"chr:start-end"、例:"17:7668421-7668520")、species(デフォルトは "homo_sapiens")。{status, data: {sequence, sequence_length}} を返します。
ensembl_get_sequence:id(string 必須、Ensembl ID)、type("genomic"/"cds"/"cdna"/"protein")、multiple_sequences(bool)。配列データを返します。
注意点:
- NCBI_search_nucleotide が返すのはアクセッションではなく UID です。NCBI_fetch_accessions を使って変換してください。
- NCBI_fetch_accessions には
uidsが必要です(accessionsではありません)。 - 遺伝子 ID(ENSG)と
type != "genomic"を指定して ensembl_get_sequence を呼び出す場合は、multiple_sequences=trueが必要です。特定の配列にはトランスクリプト ID(ENST)を使ってください。
レシピ:ヒト遺伝子の mRNA を取得する
NCBI_search_nucleotide(organism="Homo sapiens", gene="BRCA1", seq_type="mRNA", limit=5)NCBI_fetch_accessions(uids=[first_uid])-> アクセッションNCBI_get_sequence(accession="NM_007294", format="fasta")
フェーズ 3:タンパク質配列の取得
UniProt_get_sequence_by_accession:accession(string 必須、例:"P04637")。{result: "MEEPQSDP..."} を返します。注:レスポンスのキーは data ではなく result です。
EnsemblSeq_get_id_sequence:ensembl_id(string 必須、例:"ENSP00000269305")、type("protein"/"cdna"/"cds")。{status, data: {ensembl_id, molecule, sequence, sequence_length}} を返します。
UniProt_get_entry_by_accession:accession(string 必須)。タンパク質の注釈情報全体を返します。
注意点:
- UniProt_get_sequence_by_accession が返すのは
{status, data}ではなく{result: "..."}です。 - Ensembl のタンパク質配列には ENSP ID を使います。cDNA/CDS には ENST ID を使います。
- 遺伝子から UniProt アクセッションを探すには、NCBIDatasets_get_gene_by_symbol を使ってください(相互参照が含まれます)。
フェーズ 4:オルソログと比較解析
NCBIDatasets_get_orthologs:gene_id(string 必須、NCBI Gene ID、例:"7157")、page_size(int、デフォルトは 20、最大 100)。{status, data: [{gene_id, symbol, description, taxname, common_name, chromosomes}]} を返します。
NCBIProtein_get_summary:id(string 必須、GI 番号またはアクセッション)。タンパク質のタイトル、生物種、長さを返します。
注意点:NCBIDatasets_get_orthologs には遺伝子シンボルや Ensembl ID ではなく、NCBI Gene ID(数値文字列)が必要です。先にフェーズ 1 で ID を特定してください。
レシピ:オルソログを比較する
NCBIGene_search(term="TP53[Symbol] AND Homo sapiens[Organism]")-> "7157"NCBIDatasets_get_orthologs(gene_id="7157", page_size=10)-> マウスの Trp53、ラットの Tp53 など
フェーズ 5:ドメイン構造と相同性
InterPro_get_entries_for_protein:accession(UniProt ID)。位置情報を含む InterPro のドメイン/ファミリー/スーパーファミリーのエントリーを返します。
Pfam_get_protein_annotations:accession(UniProt ID)。正確な残基座標と E 値を含む Pfam ドメインのヒットを返します。UniProt アクセッションがまだない生配列(新規配列や設計した配列など)には、代わりに EBI_scan_pfam_domains を使うと、配列に対して直接同じ Pfam スキャンを実行できます。
BLAST_protein_search:sequence(アミノ酸文字列)、database(デフォルトは "swissprot")、limit。アラインメントスコア、同一性、E 値を含む相同配列を返します。BLAST で見つからない場合(リモートホモロジーや配列同一性が低い場合)は、EBI_profile_search(デフォルトの method='phmmer'、または 'psiblast')を使います。プロファイル/HMM 手法により、BLAST のペアワイズスコアリングでは見落とす遠縁の関係を、より高感度に検出できます。
EBI_pairwise_align:配列を 2 つだけ指定します(グローバルアラインメントには algorithm='needle'、ローカルアラインメントには 'water')。パーセント同一性/類似性/ギャップ数とアラインメント自体を返します。このスキル内には、直接ペアワイズアラインメントを行う既存のツールはありません。
EBI_translate_sequence:ヌクレオチドからタンパク質への翻訳、タンパク質からヌクレオチドへの逆翻訳、または ORF 検出付きの 6 フレーム翻訳を行います。上記の DNA_translate_reading_frames は順方向の 3 フレームのみを処理します(逆鎖や逆翻訳には対応しません)。逆鎖のフレームを調べる場合や、タンパク質から DNA に変換する場合は、EBI のツールを使用してください。
EBI_predict_membrane_topology:タンパク質配列から膜貫通ヘリックスとシグナルペプチドを直接予測します(Phobius)。proteins_api_get_features の TRANSMEM アノテーション(下記「タンパク質の特徴に関する質問の推論」を参照)とは異なります。後者は既知の UniProt エントリーに対してすでにアノテーションされているトポロジーを検索しますが、このツールはトポロジーが未登録の可能性がある配列を予測します。
EnsemblCompara_get_orthologues:gene(遺伝子シンボル。例:"CFTR")、species(例:"human")。遺伝子シンボルを直接指定できる、NCBIDatasets_get_orthologs のユーザーフレンドリーな代替ツールです。
フェーズ 6:変異と臨床的背景
EnsemblVEP_annotate_hgvs:hgvs_notation(例:"NM_000492.4:c.1521_1523del")。帰結、タンパク質への影響、ゲノム座標を返します。
ClinVar_search_variants:gene(遺伝子シンボル)。臨床的意義を調べるための変異数と ID を返します。
PubMed_search_articles:query、limit。遺伝子や変異に関する知見の文献情報を得られます。
ツールのパラメーター早見表
| ツール | 正しいパラメーター | よくある間違い |
|---|---|---|
| NCBIGene_search | term([Symbol] 構文を使用) | query または gene |
| NCBIGene_get_summary | id(文字列) | 整数型 |
| NCBI_fetch_accessions | uids(配列) | accessions |
| NCBI_get_sequence | accession(文字列) | UID を渡す |
| NCBIDatasets_get_orthologs | gene_id(文字列) | 遺伝子シンボル |
| EnsemblSeq_get_id_sequence | ensembl_id | id |
| ensembl_get_sequence | id + multiple_sequences | 遺伝子 + CDS に対して multiple_sequences を省略する |
| UniProt_get_sequence_by_accession | accession | 応答は data ではなく result |
フォールバック
- 遺伝子が見つからない -> 明示的な taxon を指定して NCBIDatasets_get_gene_by_symbol を試す
- 検索でアクセッションが得られない -> クエリの条件を緩める(strain/seq_type のフィルターを削除する)
- 遺伝子 + CDS に対して Ensembl でエラーが発生する -> 転写産物 ID(ENST)を使うか、multiple_sequences=true を設定する
- UniProt アクセッションが不明 -> 相互参照を調べるため、NCBIDatasets_get_gene または UniProt_search を使う
- オルソログ検索結果が空 -> gene_id が数値の NCBI Gene ID であることを確認する
配列解析の推論(重要)
推測せずに検索する -- 配列、座標、ドメイン境界は必ずデータベースから取得してください。記憶をもとに再構成しないでください。
どのツールを使うか
| 質問の種類 | ツールの選択 | 理由 |
|---|---|---|
| "類似した配列を検索する" | BLAST_protein_search | データベースに対する相同性検索を行い、E 値と一致率を返します |
| "このタンパク質にはどのドメインがありますか?" | InterPro_get_entries_for_protein または Pfam_get_protein_annotations | 正確な残基座標を含むドメイン構成を確認できます |
| "遺伝子 X の配列を取得する" | NCBI_search_nucleotide -> NCBI_get_sequence | 遺伝子名からヌクレオチド配列を取得できます |
| "オルソログを比較する" | NCBIDatasets_get_orthologs または EnsemblCompara_get_orthologues | 種をまたいで遺伝子を比較できます |
| "バリアント X がタンパク質に与える影響は?" | EnsemblVEP_annotate_hgvs | タンパク質座標を含む結果予測を行います |
| "2 つの配列をアラインメントする" | BLAST (pairwise) | スコアリングによる素早いペアワイズ比較ができます |
リーディングフレームの選択戦略
DNA 配列をタンパク質に翻訳する場合:
- リーディングフレームを推測してはいけません――推奨:
DNA_translate_reading_framesツールを使用します。代替手段:3 つのフレームすべてを自動的に試すtranslate_dna.pyを使用します - 正しいフレームは、最も長いオープンリーディングフレーム(途中で終止コドンが現れないもの)です
- 配列が ATG で始まる場合、フレーム 1 が正しい可能性が高いですが、必ず確認してください
- 3 つのフレームすべてで早期に終止コドンが現れる場合、配列は (a) 非コード領域、(b) 逆向き、または (c) シーケンシングエラーを含む可能性があります。まず逆相補配列を試してください。
タンパク質ドメインの解釈
タンパク質の機能や構造について質問された場合:
- まずドメイン構成を取得します:
InterPro_get_entries_for_proteinは、位置を含む注釈済みドメインをすべて返します - ドメインファミリーは機能を示します:キナーゼドメイン=リン酸化活性、SH2 ドメイン=ホスホチロシン結合、ジンクフィンガー=DNA 結合
- 保存されたドメイン内のバリアントは、リンカー領域内のものより病原性を示す可能性が高くなります
- データベースでドメイン境界を確認してください――記憶を頼りに位置を推定してはいけません
タンパク質の特徴に関する質問の推論方法
「タンパク質 Z の領域 Y に X 残基はいくつありますか」と質問された場合:
-
正しいタンパク質を特定します――遺伝子名は曖昧な場合があります。GABAA には多くのサブユニット(GABRA1、GABRB2、GABRR1 など)があります。質問を注意深く読み、指定されたサブユニットを確認してください。
proteins_api_searchに遺伝子名と「human」を指定して、正しいアクセッションを見つけます。 -
領域の境界を確認します――アクセッションを指定して
proteins_api_get_featuresを使い、注釈済みドメイン(TRANSMEM、DOMAIN、REGION)を取得します。位置を推測せず、データベースから取得してください。 -
領域内の残基を数えます――配列を取得し、領域を抽出して数えます。この処理には Python コードを記述してください。手作業で数えてはいけません。
- 残基のカウント方法:
python3 skills/tooluniverse-sequence-analysis/scripts/sequence_tools.py --type count_region --accession P24046 --start 318 --end 440 --residue C - 残基数に関する質問では、必ずスクリプトまたは
sequence[start:end].count('C')を使用してください。推定したり、記憶を頼りに数えたりしてはいけません。
- 残基のカウント方法:
-
マルチマーを考慮します――「homomeric」「pentamer」「tetramer」「dimer」という語があるか、質問をよく読んでください。ホモマー受容体(例:「homomeric GABAAρ1」)について質問された場合、すべてのサブユニットは同一です。1 つのサブユニットの残基数を数えてから、次のように乗算します。
- ホモメリックペンタマー(GABAA ρ1 など、多くのリガンド依存性イオンチャネル):× 5
- ホモテトラマー(多くのイオンチャネル):× 4
- ホモダイマー:× 2 質問に「TM3-TM4 リンカードメイン内」(複数形)とある場合、複合体内のすべてのサブユニットにわたることを意味します。
同梱の計算スクリプト
**残基のカウント、GC% の計算、逆相補配列を求める処理を手作業で行ってはいけません。**代わりにこれらのスクリプトを実行してください。テスト済みで、エッジケースにも対応しています。
biology_facts.py — 生物学リファレンスの検索
スクリプト:skills/tooluniverse-sequence-analysis/scripts/biology_facts.py
記憶に頼らず、よく混同される生物学の基礎知識を調べるには、このスクリプトを使用します。受容体の種類、イオンチャネルの化学量論、神経伝達物質、免疫細胞マーカー、遺伝子名の混同を扱います。
python3 skills/tooluniverse-sequence-analysis/scripts/biology_facts.py --type receptor --name "GABAA"
python3 skills/tooluniverse-sequence-analysis/scripts/biology_facts.py --type ion_channel --name "NMDA"
python3 skills/tooluniverse-sequence-analysis/scripts/biology_facts.py --type gene_confusion --name "GABRA1"
python3 skills/tooluniverse-sequence-analysis/scripts/biology_facts.py --type receptor # list all entries
種類:receptor(化学量論、薬理学)、ion_channel(サブユニットの配置)、neurotransmitter(合成、受容体)、immune_cell(マーカー、系統)、gene_confusion(GABRA1 と GABRR1 のようによく混同される遺伝子)。
必ず使用:受容体の種類や化学量論、免疫細胞マーカー、遺伝子名の判別に関する質問。
amino_acids.py — コドン表、アミノ酸の特性、ゆらぎ塩基対形成
スクリプト:skills/tooluniverse-sequence-analysis/scripts/amino_acids.py
遺伝暗号、コドンの縮重、アミノ酸の化学的性質、コドン使用頻度の偏り、または tRNA のゆらぎ塩基対形成に関する質問には、このスクリプトを使用します。出力はすべて JSON です。コドン使用頻度はヒトのみを対象としています(「ヒトのコドン使用率 %」)。その他の生物(たとえば、E. coli、酵母、CHO での発現に向けたコドン最適化)については、NCBI taxid を持つあらゆる生物を対象とする CodonUsage_get_table/CodonUsage_get_optimal_codons(taxid=...) を使用してください。
python3 skills/tooluniverse-sequence-analysis/scripts/amino_acids.py --type codon_table
python3 skills/tooluniverse-sequence-analysis/scripts/amino_acids.py --type amino_acid --name "Cysteine"
python3 skills/tooluniverse-sequence-analysis/scripts/amino_acids.py --type amino_acid --code C
python3 skills/tooluniverse-sequence-analysis/scripts/amino_acids.py --type amino_acid --code TRP
python3 skills/tooluniverse-sequence-analysis/scripts/amino_acids.py --type amino_acid # list all 20
python3 skills/tooluniverse-sequence-analysis/scripts/amino_acids.py --type count_codons --sequence "ATGCCCAAATTT..."
python3 skills/tooluniverse-sequence-analysis/scripts/amino_acids.py --type wobble --anticodon "GAU"
python3 skills/tooluniverse-sequence-analysis/scripts/amino_acids.py --type wobble --anticodon "IAU"
モード:
--type | 返される内容 | 主なフィールド |
|---|---|---|
codon_table | 64 個すべてのコドンをアミノ酸ごとに分類 | 縮重、コドン、ヒトのコドン使用率 %、終止コドン名、縮重の分布(1/2/3/4/6) |
amino_acid | 1 種類またはすべてのアミノ酸の特性 | 名前、one_letter、three_letter、mw_da、pKa_side_chain、極性、charge_ph7、hydrophobicity_index(Kyte-Doolittle)、backbone_pKa、コドン、縮重、rare_codons_le15pct |
count_codons | DNA 配列のコドン頻度分析 | AA 注釈とヒトの使用頻度を含む codon_counts、amino_acid_composition、rare_codons_present |
wobble | 指定したアンチコドンが認識するコドン | recognised_codons(RNA+DNA 形式、アミノ酸)、synonymous_only、ゆらぎ規則の説明 |
使用する場合(必須):
- 特定のアミノ酸をコードするコドンの数(縮重)に関する質問
- タンパク質発現の最適化に向けた、希少コドンと一般的なコドンに関する質問
- tRNA のアンチコドン認識/ゆらぎ塩基対形成に関する質問
- アミノ酸の物理化学的特性(分子量、pKa、疎水性、極性、電荷)に関する質問
- 終止コドンの名称(Amber/Ochre/Opal)に関する質問
- コドンの縮重を手動で示す前に、
codon_tableで確認する
ゆらぎ規則:I は U/C/A と対合します(3 コドン)。G は U/C と対合します。U は A/G と対合します。C は G のみと対合します。A は U のみと対合します(まれ)。--type wobble --anticodon "GAU" を使用して確認してください。
アミノ酸の検索:フルネーム(--name "Cysteine")、1 文字表記(--code C)、または 3 文字表記(--code CYS)を使用できます。
コドンとアンチコドンの対応を推論する(tRNA の問題では重要)
「この tRNA が認識するコドンはどれか」または「このコドンを読み取る tRNA はどれか」を解く場合:
- アンチコドンは 3'→5' で書かれますが、通常は 5'→3' で表記されます。アンチコドンの最初の位置(5' 末端)はワブル位置で、コドンの 3 番目の位置(3' 末端)と対合します。
- アンチコドンとコドンは逆平行に対合します:アンチコドン 5'-X-Y-Z-3' はコドン 3'-X'-Y'-Z'-5' と対合します(つまり、コドンは 5'-Z'-Y'-X'-3' です)。
- ワブル位置の規則(アンチコドンの 5' 側の塩基 → 対合できるコドンの 3' 側の塩基):
- C → G のみ(1 コドン)
- A → U のみ(1 コドン。細菌ではまれで、ミトコンドリアでは一般的)
- U → A または G(2 コドン)
- G → C または U(2 コドン)
- I(イノシン、脱アミノ化された A)→ U、C、または A(3 コドン)
- 最小限の tRNA セット:I は 3 塩基を読み取り、G/U はそれぞれ 2 塩基を読み取るため、4 コドンからなるファミリー(例:GCN = Ala)に必要な tRNA は 2 種類だけです。1 つはワブル位置に I を持ち(4 コドン中 3 コドンを読み取る)、もう 1 つはワブル位置に C または U を持ち(残りの 1~2 コドンを読み取る)ます。
- 必ずスクリプトを使用してください:記憶に頼って推論するのではなく、
python3 skills/tooluniverse-sequence-analysis/scripts/amino_acids.py --type wobble --anticodon "IAU"を使って確認します。
translate_dna.py — DNA からタンパク質への翻訳
推奨:sequence パラメーターを指定して、DNA_translate_reading_frames ツール(MCP/SDK 経由)を使用します。代替手段:translate_dna.py を直接実行します。
python3 skills/tooluniverse-sequence-analysis/scripts/translate_dna.py "ATGCCC..."
3 つすべての読み枠を試し、自動的に最長の ORF を選択します。
sequence_tools.py — 残基数、GC 含量、逆相補配列、統計
スクリプト:skills/tooluniverse-sequence-analysis/scripts/sequence_tools.py
推奨:スクリプトではなく、ToolUniverse ツール(MCP/SDK 経由)を使用します:
Sequence_count_residuesツール — 配列または領域内の残基数をカウントします。代替手段:sequence_tools.py --type count_residuesまたは--type count_regionSequence_gc_contentツール — DNA の GC%。代替手段:sequence_tools.py --type gc_contentSequence_reverse_complementツール — DNA の逆相補配列。代替手段:sequence_tools.py --type reverse_complementSequence_statsツール — 種類、長さ、分子量を自動判定します。代替手段:sequence_tools.py --type stats
代替スクリプトのモード(--type を使用):
count_residues:配列全体の残基数をカウントします。--sequence "ACDE..." --residue Ccount_region:領域内をカウントします(1 始まり、両端を含む)。--sequence "MAC..." --start 5 --end 20 --residue Cまたは--accession P24046 --start 318 --end 440 --residue C(UniProt からリアルタイムで取得)gc_content:DNA の GC%。--sequence "ATGCGATCG"reverse_complement:DNA の逆相補配列。--sequence "ATGCGATCG"stats:DNA/RNA/タンパク質を自動判定し、長さとタンパク質の分子量を計算します。--sequence "ATGCG..."
ユーザーが UniProt アクセッションと領域を指定した場合は、必ず count_region --accession を使用してください。手作業でカウントしないでください。
解釈の枠組み
配列品質の評価
| 指標 | 高品質 | 許容可能 | 注意 |
|---|---|---|---|
| RefSeq ステータス | NM_/NP_(キュレーション済み) | XM_/XP_(予測) | RefSeq なし(GenBank のみ) |
| 配列バージョン | 最新バージョン(.N) | 以前のバージョン | 削除済み/置換済み |
| アノテーション | レビュー済み(UniProt Swiss-Prot) | 未レビュー(TrEMBL) | アノテーションなし |
| 遺伝子シンボル | HGNC 承認済み | 別名/同義語 | 遺伝子座タグのみ |
統合に関する質問
- これが正しい配列ですか?(生物種、遺伝子シンボル、アイソフォームを確認)
- これは標準アイソフォームですか?(RefSeq MANE Select または UniProt canonical)
- どの程度注釈されていますか?(SwissProt > TrEMBL > GenBank predicted)
- 既知のバリアントはありますか?(この配列における ClinVar の病原性バリアント)
回答の形式(重要)
回答は簡潔にしてください:「どのタンパク質か」と尋ねられた場合は、タンパク質名だけを回答してください。略称、説明、注釈を括弧内に追加しないでください。例:「Glucose-6-phosphate 1-dehydrogenase」と回答し、「Glucose-6-phosphate 1-dehydrogenase (G6PD, EC 1.1.1.49)」とは回答しないでください。配列からタンパク質を特定する場合は、BLAST/UniProtを使用し、データベースに記載されている最上位ヒット名を正確に報告してください。装飾を加えないでください。
ペプチドおよびフォルダマーの構造
- α-ペプチドヘリックス:α-ヘリックス(1回転あたり3.6残基、i→i+4の水素結合)、3_10-ヘリックス(1回転あたり3残基、i→i+3)、π-ヘリックス(1回転あたり4.4残基、i→i+5)。
- β-ペプチドヘリックス:水素結合環のサイズで命名されます。14-ヘリックス(i→i+2、14員環)、12-ヘリックス、10-ヘリックス、8-ヘリックス。
- β-アミノ酸の環サイズによってヘリックスの種類が決まります:4員環の環状拘束では10-ヘリックス、5員環(例:ACPC)では12-ヘリックス、6員環(例:ACHC)では14-ヘリックスになります。非環状のβ3残基は、通常14-ヘリックスになります。
- α/β混合フォルダマー(1:1の交互配列):11-ヘリックス(i→i+3、11原子環)または14/15-ヘリックス(i→i+4、14原子環と15原子環が交互に並ぶ)を形成します。長い配列では、14/15-ヘリックスが優先されます。
- 重要な規則:ヘリックス名の数字は、水素結合環の原子数を表します。
- 環状β-アミノ酸(ACPC、ACHC)は主鎖のねじれ角を拘束し、非環状残基と比べて特定のヘリックスの種類を形成しやすくします。
制限事項
- ensembl_get_sequenceでは、遺伝子IDと非ゲノム型に
multiple_sequences=trueが必要です - NCBIDatasets_get_orthologsにはNCBI Gene IDが必要です(シンボルではありません)。UniProtが返すのは正準アイソフォームのみです