首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Biopython SeqIO在*.ab1文件中处理NNNNN

Biopython SeqIO在*.ab1文件中处理NNNNN
EN

Stack Overflow用户
提问于 2014-06-01 17:52:59
回答 1查看 662关注 0票数 0

谢谢你的帮助。我很抱歉,如果Biopython中内置了一个函数来处理这个问题,我会阅读整个手册,但什么也找不到。

目标:读取原始测序文件(*.ab1)并使用sequence.seq.translate(11)进行处理,但是,我得到了这个错误-- "Bio.Data.CodonTable.TranslationError: Codon 'NNN‘是无效的“

My解决方案:向CodonTable添加了一个额外的表,并注释掉了Bio.Data.CodonTable中的模糊检查器(必须这样做才能使其工作)

代码语言:javascript
复制
register_ncbi_table(
    name = 'bacteria sequencing table',
    alt_name = None,
    id = 24,
    table = {
        'TTT': 'F', 'TTC': 'F', 'TTA': 'L', 'TTG': 'L', 'TCT': 'S',
        'TCC': 'S', 'TCA': 'S', 'TCG': 'S', 'TAT': 'Y', 'TAC': 'Y',
        'TGT': 'C', 'TGC': 'C', 'TGG': 'W', 'CTT': 'L', 'CTC': 'L',
        'CTA': 'L', 'CTG': 'L', 'CCT': 'P', 'CCC': 'P', 'CCA': 'P',
        'CCG': 'P', 'CAT': 'H', 'CAC': 'H', 'CAA': 'Q', 'CAG': 'Q',
        'CGT': 'R', 'CGC': 'R', 'CGA': 'R', 'CGG': 'R', 'ATT': 'I',
        'ATC': 'I', 'ATA': 'I', 'ATG': 'M', 'ACT': 'T', 'ACC': 'T',
        'ACA': 'T', 'ACG': 'T', 'AAT': 'N', 'AAC': 'N', 'AAA': 'K',
        'AAG': 'K', 'AGT': 'S', 'AGC': 'S', 'AGA': 'R', 'AGG': 'R',
        'GTT': 'V', 'GTC': 'V', 'GTA': 'V', 'GTG': 'V', 'GCT': 'A',
        'GCC': 'A', 'GCA': 'A', 'GCG': 'A', 'GAT': 'D', 'GAC': 'D',
        'GAA': 'E', 'GAG': 'E', 'GGT': 'G', 'GGC': 'G', 'GGA': 'G',
        'GGG': 'G', 'AAN': 'X', 'TAN': 'X', 'GAN': 'X', 'CAN': 'X',
        'ATN': 'X', 'TTN': 'X', 'GTN': 'X', 'CTN': 'X', 'ACN': 'X', 
        'TCN': 'X', 'GCN': 'X', 'CCN': 'X', 'AGN': 'X', 'TGN': 'X',
        'GGN': 'X', 'CGN': 'X', 'ANA': 'X', 'TNA': 'X', 'GNA': 'X',
        'CNA': 'X', 'ANT': 'X', 'TNT': 'X', 'GNT': 'X', 'CNT': 'X',
        'ANC': 'X', 'TNC': 'X', 'GNC': 'X', 'CNC': 'X', 'ANG': 'X', 
        'TNG': 'X', 'GNG': 'X', 'CNG': 'X', 'NAA': 'X', 'NTA': 'X', 
        'NGA': 'X', 'NCA': 'X', 'NAT': 'X', 'NTT': 'X', 'NGT': 'X', 
        'NCT': 'X', 'NAC': 'X', 'NTC': 'X', 'NGC': 'X', 'NCC': 'X',
        'NAG': 'X', 'NTG': 'X', 'NGG': 'X', 'NCG': 'X', 'NNN': 'X',
        'ANN': 'X', 'TNN': 'X', 'GNN': 'X', 'CNN': 'X', 'NAN': 'X',
        'NTN': 'X', 'NGN': 'X', 'NCN': 'X', 'NNA': 'X', 'NNT': 'X',
        'NNG': 'X', 'NNC': 'X', 'NNN': 'X'},
    stop_codons = ['TAA', 'TAG', 'TGA'],
    start_codons = ['TTG', 'CTG', 'ATT', 'ATC', 'ATA', 'ATG', 'GTG'])

模糊检查器

代码语言:javascript
复制
for n in ambiguous_generic_by_id:

    assert ambiguous_rna_by_id[n].forward_table["GUU"] == "V"
    assert ambiguous_rna_by_id[n].forward_table["GUN"] == "V"
    if n != 23 :
        #For table 23, UUN = F, L or stop.
        assert ambiguous_rna_by_id[n].forward_table["UUN"] == "X"  # F or L

        #R = A or G, so URR = UAA or UGA / TRA = TAA or TGA = stop codons
    if "UAA" in unambiguous_rna_by_id[n].stop_codons and\
       "UGA" in unambiguous_rna_by_id[n].stop_codons:
       try:
           print(ambiguous_dna_by_id[n].forward_table["TRA"])
           assert False, "Should be a stop only"
        except KeyError:
            pass
    assert "URA" in ambiguous_generic_by_id[n].stop_codons
    assert "URA" in ambiguous_rna_by_id[n].stop_codons
    assert "TRA" in ambiguous_generic_by_id[n].stop_codons
    assert "TRA" in ambiguous_dna_by_id[n].stop_codons

    del n

问题1:我不喜欢编辑根CodonTable.py文件。关于如何避免这种情况,有什么建议吗?

问题2:我真的不想评论不明确的检查器。有人能帮我写一个例外的歧义检查将忽略我的新密码子表吗?

EN

回答 1

Stack Overflow用户

发布于 2014-06-01 18:46:23

加载ABI文件时,Biopython将Seq字母表设置为IUPACUnambiguousDNA()。我的第一种方法是将字母表设置为SingleLetterAlphabet()

代码语言:javascript
复制
from Bio import SeqIO
from Bio.Alphabet import SingleLetterAlphabet

for rec in SeqIO.parse("prots.ab1", "abi", alphabet=SingleLetterAlphabet()):
    print rec.seq.translate(11)

现在,seq翻译成"X“和"N”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23982730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档