【问题标题】:Python to convert RNA seq into single-letter Amino Acid sequencePython 将 RNA seq 转换为单字母氨基酸序列
【发布时间】:2018-01-17 13:44:26
【问题描述】:

我需要一些帮助来编写将给定 RNA 核苷酸序列转换为氨基酸序列的代码。

我目前有 2 个字典可供使用:一个氨基酸密码子及其各自的 3 字母代码,以及一个 3 字母代码及其对应的 1 字母代码。

我需要编写一个代码来获取给定的 RNA 序列并输出单字母代码。下面我已经包含了 2 个提供的字典。

RNA_codon_table = {
# U
'UUU': 'Phe', 'UCU': 'Ser', 'UAU': 'Tyr', 'UGU': 'Cys', # UxU
'UUC': 'Phe', 'UCC': 'Ser', 'UAC': 'Tyr', 'UGC': 'Cys', # UxC
'UUA': 'Leu', 'UCA': 'Ser', 'UAA': '---', 'UGA': '---', # UxA
'UUG': 'Leu', 'UCG': 'Ser', 'UAG': '---', 'UGG': 'Trp', # UxG

# C
'CUU': 'Leu', 'CCU': 'Pro', 'CAU': 'His', 'CGU': 'Arg', # CxU
'CUC': 'Leu', 'CCC': 'Pro', 'CAC': 'His', 'CGC': 'Arg', # CxC
'CUA': 'Leu', 'CCA': 'Pro', 'CAA': 'Gln', 'CGA': 'Arg', # CxA
'CUG': 'Leu', 'CCG': 'Pro', 'CAG': 'Gln', 'CGG': 'Arg', # CxG

# A
'AUU': 'Ile', 'ACU': 'Thr', 'AAU': 'Asn', 'AGU': 'Ser', # AxU
'AUC': 'Ile', 'ACC': 'Thr', 'AAC': 'Asn', 'AGC': 'Ser', # AxC
'AUA': 'Ile', 'ACA': 'Thr', 'AAA': 'Lys', 'AGA': 'Arg', # AxA
'AUG': 'Met', 'ACG': 'Thr', 'AAG': 'Lys', 'AGG': 'Arg', # AxG

# G
'GUU': 'Val', 'GCU': 'Ala', 'GAU': 'Asp', 'GGU': 'Gly', # GxU
'GUC': 'Val', 'GCC': 'Ala', 'GAC': 'Asp', 'GGC': 'Gly', # GxC
'GUA': 'Val', 'GCA': 'Ala', 'GAA': 'Glu', 'GGA': 'Gly', # GxA
'GUG': 'Val', 'GCG': 'Ala', 'GAG': 'Glu', 'GGG': 'Gly'  # GxG
}


singleletter = {'Cys': 'C', 'Asp': 'D', 'Ser': 'S', 'Gln': 'Q', 'Lys': 'K',
'Trp': 'W', 'Asn': 'N', 'Pro': 'P', 'Thr': 'T', 'Phe': 'F', 'Ala': 'A',
'Gly': 'G', 'Ile': 'I', 'Leu': 'L', 'His': 'H', 'Arg': 'R', 'Met': 'M',
'Val': 'V', 'Glu': 'E', 'Tyr': 'Y', '---': '*'}

【问题讨论】:

  • 编写规范不符合 SO Q&A 格式 - 抱歉。祝你的编码好运。如果您碰巧得到了解决方案,您可以将其发布为这个非问题的答案。如果您有特定问题,请考虑研究 how-to-askon topic ,提供尊重 How to create a Minimal, Complete, and Verifiable example 的代码以及您的代码无法满足的异常/期望,我相信 SO 会帮助您。

标签: python dictionary bioinformatics biopython dna-sequence


【解决方案1】:

您可以通过列表推导来做到这一点:

[singleletter[RNA_codon_table[s[i:i+3]]] for i in range(0, len(s),3)]

例如,

>>> s = 'UUUGAUAGC'
>>> [s[i:i+3] for i in range(0, len(s),3)]
['UUU', 'GAU', 'AGC']
>>> [RNA_codon_table[s[i:i+3]] for i in range(0, len(s),3)]
['Phe', 'Asp', 'Ser']
>>> [singleletter[RNA_codon_table[s[i:i+3]]] for i in range(0, len(s),3)]
['F', 'D', 'S']

或者,BioPython

>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import IUPAC
>>> s = Seq('UUUGAUAGC', IUPAC.unambiguous_rna)
>>> s.translate()
Seq('FDS', IUPACProtein())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    • 1970-01-01
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    • 2014-04-08
    相关资源
    最近更新 更多