mcpField
T
tooluniverse-sequence-analysis

tooluniverse-sequence-analysis

github.com/mims-harvard数据与数据库1.8k236 次安装3 天前更新
代码仓库

关于 tooluniverse-sequence-analysis

用于生物序列检索与分析的 ToolUniverse 技能,面向需要查询基因、核酸和蛋白质信息的研究者。它涵盖 NCBI、Ensembl、UniProt 数据检索、直系同源分析及 FASTQ 质控相关计算,并强调先核查已有结果。

主要功能

  1. 01检索基因并获取摘要
  2. 02搜索并提取核酸序列
  3. 03获取蛋白质序列与注释
  4. 04查找直系同源基因
  5. 05分析结构域、变体与序列
  6. 06指导 FASTQ 质控计数

适用场景

  1. 01获取 BRCA1 的 mRNA 序列
  2. 02检索特定物种的基因组序列
  3. 03比较 TP53 跨物种直系同源基因
  4. 04核算 Trimmomatic 丢弃的 reads

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.py
biology_facts.py
sequence_tools.py
translate_dna.py

详细介绍

生物序列分析

⚠️ 首要规则:Trimmomatic 的“reads completely discarded”=所有样本的 F + R + 2*D 之和

如果问题询问 Trimmomatic 中“reads completely discarded”(完全丢弃的 reads)/“reads thrown out”(被剔除的 reads)/“reads not in any output”(不在任何输出中的 reads),不要只报告 Dropped 字段。Dropped 统计的是两条 read 均未通过的read pair;每对包含 2 条独立 read。此外,Forward-only 和 Reverse-only 两类也会各丢弃每对中的 1 条 read。

reads_discarded = sum over samples of (Forward_Only + Reverse_Only + 2 * Dropped)

❌ 错误:sum(Dropped per sample)——通常只有几千,远低于 GT,差距达到 100 倍以上

✅ 正确:sum(F + R + 2*D per sample)

完整计数器表见下文 FASTQ 部分。


规则零——首先检查预先计算好的结果

遵循以下任何说明之前,先扫描数据文件夹,查找:

  • *_executed.ipynb → 使用 tu run read_executed_notebook '{"data_folder":"<path>","search":"<keyword>"}' 读取,并以其单元格输出作为权威答案
  • 预先计算好的结果文件(CSV/TSV,名称类似 *results*、*deseq*、*enrich*、*stats*、*_simplified.csv)→ 直接读取并报告所请求的值
  • 标准分析脚本(analysis.R、run_*.py、find_*.R、*.Rmd)→ 原样执行并读取输出

只有在上述文件全部不存在时,才按照下方本技能的重新分析步骤操作。从原始数据重新运行会得到与已发布答案不同的数字,而且速度慢得多(回合数通常增加 5~10 倍)。


从 NCBI、Ensembl 和 UniProt 检索、注释和比较生物序列。涵盖核苷酸搜索、序列获取、基因摘要、直系同源基因发现和蛋白质序列提取。

FASTQ 质控、Trimmomatic 和 reads 比对(存在原始 reads 时)

如果数据文件夹中有 *.fastq 文件,且问题涉及 Trimmomatic、BWA、samtools、FastQC 或覆盖深度,本技能就是入口——但实际操作在 shell 层面完成(没有专用的 ToolUniverse 数据工具)。

Trimmomatic PE——统计“完全丢弃”的 reads

Trimmomatic PE 会将每对输入 reads 分为以下几类:

  • Both Surviving(两条均保留):R1 和 R2 均通过 → 作为配对 reads 保留
  • Forward Only Surviving(仅正向保留):R1 通过,R2 被丢弃 → R1 作为单条 read 保留,R2 被完全丢弃
  • Reverse Only Surviving(仅反向保留):R2 通过,R1 被丢弃 → R2 作为单条 read 保留,R1 被完全丢弃
  • Dropped(丢弃):两条均未通过 → R1 和 R2 均被完全丢弃

选择计数器时请仔细阅读问题。关键:“READS completely discarded” ≠ “PAIRS dropped”。 Trimmomatic 的 Dropped 计数的是read pair(每对包含 2 条独立 read)。如果问题询问的是 reads(而非 read pairs),请将每个计数器换算为按单条 read 计数:

问题措辞公式(按样本计算,然后对所有样本求和)
“reads completely discarded”(完全丢弃的 reads)、“reads thrown out”(被剔除的 reads)、“reads not in any output”(不在任何输出中的 reads)F + R + 2*D(不在任何输出 FASTQ 中的每条 R1 或 R2)
“read pairs dropped”(丢弃的 read pairs)、“pairs where both mates failed”(两个 mate 均未通过的 pairs)D
“individual R2 reads dropped”(被丢弃的单条 R2 reads,R1 作为单条 read 保留)F
“individual R1 reads dropped”(被丢弃的单条 R1 reads,R2 作为单条 read 保留)R
“reads passing QC”(通过质控的 reads)/“surviving reads”(保留的 reads)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 单独作为“reads completely discarded”报告——它是 read pair 数而非 read 数,结果会少约 100 倍。“Forward Only”中的 R2 mate 确实会被丢弃;“Reverse Only”中的 R1 mate 确实会被丢弃;“Dropped”中的 read pairs 则两条 read 都会丢弃。

覆盖深度(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(字符串,必需,格式为 "TP53[Symbol] AND Homo sapiens[Organism]"),retmax(整数,默认值为 10)。返回 {status, data: {esearchresult: {idlist: ["7157"]}}}。

NCBIGene_get_summary:id(字符串,必需,例如 "7157")。返回 {status, data: {result: {"7157": {name, description, summary, chromosome, maplocation, genomicinfo, mim}}}}。结果以基因 ID 字符串为键。

NCBIDatasets_get_gene_by_symbol:symbol(字符串,必需,例如 "BRCA1"),taxon(字符串,例如 "human")。返回基因 ID、描述、位置和交叉引用。

NCBIDatasets_get_gene:gene_id(字符串,必需,例如 "7157")。返回完整的基因信息。

阶段 2:核苷酸序列搜索与获取

NCBI_search_nucleotide:query(自由格式)、organism(字符串)、gene(字符串)、strain(字符串)、keywords(字符串)、seq_type("complete_genome"/"mRNA"/"refseq")、limit(整数,默认值为 20)。返回 {status, data: {uids: [...], accessions: [...]}}。

NCBI_fetch_accessions:uids(数组,必需,例如 ["545778205"])。返回 {status, data: ["U00096.3"], count: 1}。

NCBI_get_sequence:accession(字符串,必需,例如 "NM_007294"),format("fasta"/"gb"/"embl")。返回 {status, data: "FASTA string...", accession, format, length}。

EnsemblSeq_get_region_sequence:region(字符串,必需,"chr:start-end",例如 "17:7668421-7668520"),species(默认值为 "homo_sapiens")。返回 {status, data: {sequence, sequence_length}}。

ensembl_get_sequence:id(字符串,必需,Ensembl ID)、type("genomic"/"cds"/"cdna"/"protein")、multiple_sequences(布尔值)。返回序列数据。

注意事项:

  • NCBI_search_nucleotide 返回 UID,而不是登录号。使用 NCBI_fetch_accessions 进行转换。
  • NCBI_fetch_accessions 要求使用 uids(而非 accessions)。
  • 对基因 ID(ENSG)使用 ensembl_get_sequence 且 type != "genomic" 时,需要设置 multiple_sequences=true。要获取特定序列,请使用转录本 ID(ENST)。
操作步骤:获取人类基因的 mRNA
  1. NCBI_search_nucleotide(organism="Homo sapiens", gene="BRCA1", seq_type="mRNA", limit=5)
  2. NCBI_fetch_accessions(uids=[first_uid]) -> 登录号
  3. NCBI_get_sequence(accession="NM_007294", format="fasta")

阶段 3:获取蛋白质序列

UniProt_get_sequence_by_accession:accession(字符串,必需,例如 "P04637")。返回 {result: "MEEPQSDP..."}。注意:响应键为 result,而非 data。

EnsemblSeq_get_id_sequence:ensembl_id(字符串,必需,例如 "ENSP00000269305"),type("protein"/"cdna"/"cds")。返回 {status, data: {ensembl_id, molecule, sequence, sequence_length}}。

UniProt_get_entry_by_accession:accession(字符串,必需)。返回完整的蛋白质注释。

注意事项:

  • UniProt_get_sequence_by_accession 返回 {result: "..."},而不是 {status, data}。
  • 对于 Ensembl 蛋白质序列,请使用 ENSP ID。对于 cDNA/CDS,请使用 ENST ID。
  • 要从基因查找 UniProt 登录号,请使用 NCBIDatasets_get_gene_by_symbol(其中包含交叉引用)。

阶段 4:直系同源基因与比较分析

NCBIDatasets_get_orthologs:gene_id(字符串,必需,NCBI Gene ID,例如 "7157"),page_size(整数,默认值为 20,最大值为 100)。返回 {status, data: [{gene_id, symbol, description, taxname, common_name, chromosomes}]}。

NCBIProtein_get_summary:id(字符串,必需,GI 号或登录号)。返回蛋白质标题、物种和长度。

注意事项:NCBIDatasets_get_orthologs 要求使用 NCBI Gene ID(数字字符串),而不是基因符号或 Ensembl ID。请先通过阶段 1 解析。

示例:比较直系同源基因
  1. NCBIGene_search(term="TP53[Symbol] AND Homo sapiens[Organism]") -> "7157"
  2. 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)。返回 Pfam 结构域命中结果,包含精确的残基坐标和 E 值。对于尚无 UniProt 登录号的原始序列(例如新发现或设计的序列),EBI_scan_pfam_domains 会直接对序列运行相同的 Pfam 扫描。

BLAST_protein_search:sequence(氨基酸字符串)、database(默认值为 "swissprot")、limit。返回同源序列及其比对得分、一致性和 E 值。如果 BLAST 没有找到结果(远缘同源、序列一致性低),EBI_profile_search(默认 method='phmmer',或 'psiblast')会使用基于 profile/HMM 的方法;对于 BLAST 成对比对评分无法发现的远缘关系,这些方法具有更高的灵敏度。

EBI_pairwise_align:恰好输入两条序列(全局比对使用 algorithm='needle',局部比对使用 'water'),返回一致性/相似性/缺口百分比以及比对结果本身——此技能中的其他工具都不支持直接进行成对比对。

EBI_translate_sequence:支持核苷酸到蛋白质、蛋白质到核苷酸(反向翻译),或带 ORF 检测的六框翻译。上文的 DNA_translate_reading_frames 仅支持正向三框翻译(不含反向链或反向翻译)——需要反向链阅读框或蛋白质到 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_searchterm(使用 [Symbol] 语法)query 或 gene
NCBIGene_get_summaryid(字符串)整数类型
NCBI_fetch_accessionsuids(数组)accessions
NCBI_get_sequenceaccession(字符串)传入 UID
NCBIDatasets_get_orthologsgene_id(字符串)基因符号
EnsemblSeq_get_id_sequenceensembl_idid
ensembl_get_sequenceid + multiple_sequences查询基因 + CDS 时未提供 multiple_sequences
UniProt_get_sequence_by_accessionaccession响应字段是 result,而非 data

后备方案

  • 未找到基因 -> 尝试使用明确的分类单元调用 NCBIDatasets_get_gene_by_symbol
  • 搜索未返回登录号 -> 扩大查询范围(移除品系/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根据蛋白质坐标预测后果
“比对两条序列”BLAST(成对比对)快速成对比较并进行评分
阅读框选择策略

将 DNA 序列翻译为蛋白质时:

  1. 不要猜测阅读框——首选:使用 DNA_translate_reading_frames 工具;备选:使用 translate_dna.py,它会自动尝试全部 3 个阅读框
  2. 正确的阅读框是开放阅读框最长(没有提前终止密码子)的那个
  3. 如果序列以 ATG 开头,阅读框 1 可能正确——但请验证
  4. 如果全部 3 个阅读框都存在较早的终止密码子,该序列可能是:(a)非编码序列,(b)方向相反,或(c)包含测序错误。先尝试反向互补。
蛋白质结构域解读

询问蛋白质功能或结构时:

  1. 先获取结构域架构:InterPro_get_entries_for_protein 会返回所有已注释结构域及其位置
  2. 结构域家族可指示功能:激酶结构域 = 磷酸化活性;SH2 结构域 = 磷酸酪氨酸结合;锌指 = DNA 结合
  3. 位于保守结构域中的变异比位于连接区中的变异更可能具有致病性
  4. 查询数据库中的结构域边界——不要凭记忆估算位置

蛋白质特征问题的推理方法

当被问到“蛋白质 Z 的区域 Y 中有多少个 X 残基”时:

  1. 确定正确的蛋白质——基因名称可能有歧义。GABAA 有许多亚基(GABRA1、GABRB2、GABRR1……)。仔细阅读问题,确认具体亚基。使用 proteins_api_search,以基因名称 + “human” 查找正确的登录号。

  2. 查找区域边界——使用该登录号调用 proteins_api_get_features,获取已注释结构域(TRANSMEM、DOMAIN、REGION)。不要猜测位置——从数据库获取。

  3. 统计区域中的残基——获取序列,提取区域并统计。为此编写 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')。不要估算或凭记忆统计。
  4. 考虑多聚体——仔细阅读问题中是否提到“同源多聚体”“五聚体”“四聚体”或“二聚体”。如果问题询问同源受体(例如“同源 GABAAρ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 表达进行密码子优化),请改用 CodonUsage_get_table/CodonUsage_get_optimal_codons(taxid=...),它们涵盖任何 NCBI 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一个或全部氨基酸的性质名称、one_letter、three_letter、mw_da、pKa_side_chain、极性、charge_ph7、hydrophobicity_index(Kyte-Doolittle)、backbone_pKa、密码子、简并性、rare_codons_le15pct
count_codonsDNA 序列的密码子频率分析带有氨基酸注释和人类使用频率的 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")、单字母代码(--code C)或三字母代码(--code CYS)。

密码子-反密码子配对推理(tRNA 问题的关键)

解答“这个 tRNA 能识别哪些密码子”或“哪个 tRNA 能读取这个密码子”时:

  1. 反密码子按 3'->5' 方向书写,但通常按 5'->3' 方向列出。反密码子的第一个位置(5' 端)是摆动位置,与密码子的第三个位置(3' 端)配对。
  2. 反密码子与密码子反向平行配对:反密码子 5'-X-Y-Z-3' 与密码子 3'-X'-Y'-Z'-5' 配对(即密码子 5'-Z'-Y'-X'-3')。
  3. 摆动位置配对规则(反密码子 5' 端的碱基 -> 可与之配对的密码子 3' 端碱基):
    • C -> 仅 G(1 个密码子)
    • A -> 仅 U(1 个密码子;在细菌中罕见,在细胞线粒体中常见)
    • U -> A 或 G(2 个密码子)
    • G -> C 或 U(2 个密码子)
    • I(肌苷,由 A 脱氨形成)-> U、C 或 A(3 个密码子)
  4. 最少 tRNA 集合:由于 I 可读取 3 个碱基,而 G/U 各可读取 2 个碱基,4 密码子家族(例如 GCN = Ala)只需要 2 种 tRNA:一种在摆动位置带有 I(可读取 4 个密码子中的 3 个),另一种在摆动位置带有 C 或 U(可读取剩余的 1–2 个)。
  5. 始终使用脚本:使用 python3 skills/tooluniverse-sequence-analysis/scripts/amino_acids.py --type wobble --anticodon "IAU" 进行验证,不要依靠记忆推理。

translate_dna.py — DNA 到蛋白质的翻译

首选:使用 DNA_translate_reading_frames 工具(通过 MCP/SDK),并传入 sequence 参数。备用方案:直接运行 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_region
  • Sequence_gc_content 工具 —— DNA 的 GC%。备用方案:sequence_tools.py --type gc_content
  • Sequence_reverse_complement 工具 —— DNA 反向互补序列。备用方案:sequence_tools.py --type reverse_complement
  • Sequence_stats 工具 —— 自动检测类型、长度和分子量。备用方案:sequence_tools.py --type stats

备用脚本模式(使用 --type):

  • count_residues:统计完整序列中的残基数。--sequence "ACDE..." --residue C
  • count_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 批准别名/同义词仅有位点标签
综合问题
  1. 这是正确的序列吗?(核实物种、基因符号、异构体)
  2. 这是规范异构体吗?(RefSeq MANE Select 或 UniProt 规范序列)
  3. 注释完善程度如何?(SwissProt > TrEMBL > GenBank 预测)
  4. 是否存在已知变异?(此序列中的 ClinVar 致病变异)

答案格式(重要)

精简答案:如果问题问“是什么蛋白质”,只回答蛋白质名称。不要添加括号中的缩写、描述或限定语。例如,回答“Glucose-6-phosphate 1-dehydrogenase”,而不是“Glucose-6-phosphate 1-dehydrogenase (G6PD, EC 1.1.1.49)”。根据序列识别蛋白质时,使用 BLAST/UniProt,并准确报告数据库中的首选匹配名称,不要添加修饰。

肽与折叠体结构

  • α-肽螺旋:α-螺旋(每圈 3.6 个残基,i→i+4 氢键)、3_10-螺旋(每圈 3 个残基,i→i+3)、π-螺旋(每圈 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 仅返回规范异构体

评论

支持 Markdown