Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RNA剪接Python(未给出输出)_Python_Bioinformatics_Rosalind - Fatal编程技术网

RNA剪接Python(未给出输出)

RNA剪接Python(未给出输出),python,bioinformatics,rosalind,Python,Bioinformatics,Rosalind,我一直在工作。我目前使用的是Python 3.6版本。它没有告诉我我的代码中有任何错误,所以我假设我的代码是正确的。然而,并没有输出,并没有错误警告或任何东西。下面是我的代码: DNA_CODON_TABLE = { 'TTT': 'F', 'CTT': 'L', 'ATT': 'I', 'GTT': 'V', 'TTC': 'F', 'CTC': 'L', 'ATC': 'I', 'GTC': 'V',

我一直在工作。我目前使用的是Python 3.6版本。它没有告诉我我的代码中有任何错误,所以我假设我的代码是正确的。然而,并没有输出,并没有错误警告或任何东西。下面是我的代码:

 DNA_CODON_TABLE = {
        'TTT': 'F',     'CTT': 'L',     'ATT': 'I',     'GTT': 'V',
        'TTC': 'F',     'CTC': 'L',     'ATC': 'I',     'GTC': 'V',
        'TTA': 'L',     'CTA': 'L',     'ATA': 'I',     'GTA': 'V',
        'TTG': 'L',     'CTG': 'L',     'ATG': 'M',     'GTG': 'V',
        'TCT': 'S',     'CCT': 'P',     'ACT': 'T',     'GCT': 'A',
        'TCC': 'S',     'CCC': 'P',     'ACC': 'T',     'GCC': 'A',
        'TCA': 'S',     'CCA': 'P',     'ACA': 'T',     'GCA': 'A',
        'TCG': 'S',     'CCG': 'P',     'ACG': 'T',     'GCG': 'A',
        'TAT': 'Y',     'CAT': 'H',     'AAT': 'N',     'GAT': 'D',
        'TAC': 'Y',     'CAC': 'H',     'AAC': 'N',     'GAC': 'D',
        'TAA': '-',     'CAA': 'Q',     'AAA': 'K',     'GAA': 'E',
        'TAG': '-',     'CAG': 'Q',     'AAG': 'K',     'GAG': 'E',
        'TGT': 'C',     'CGT': 'R',     'AGT': 'S',     'GGT': 'G',
        'TGC': 'C',     'CGC': 'R',     'AGC': 'S',     'GGC': 'G',
        'TGA': '-',     'CGA': 'R',     'AGA': 'R',     'GGA': 'G',
        'TGG': 'W',     'CGG': 'R',     'AGG': 'R',     'GGG': 'G'
    }


    def result(s):
        result = ''

        lines = s.split()
        dna = lines[0]
        introns = lines[1:]

        for intron in introns:
            dna = dna.replace(intron, '')

        for i in range(0, len(dna), 3):
            codon = dna[i:i+3]

            protein = None
            if codon in DNA_CODON_TABLE:
                protein = DNA_CODON_TABLE[codon]

            if protein == '-':
                break

            if protein:
                result += protein

        return ''.join(list(result))


    if __name__ == "__main__":

        """small_dataset = ' '"""

        large_dataset = open('rosalind_splc.txt').read().strip()

        print (result(large_dataset))
这是rosalind_splc.txt文本文件中的内容:

>Rosalind_3363
ATGGGGCTGAGCCCATGTCTAAATGATATCTTGGTGCATTGCAATCTAACTATTTTTTCG
CAACCATGTTCCATCTGGCGCAAAATGGGCGTGTAGGGAGCTTCGCTATAGTCACTGAAG
AACATTCGCAACTTACAGCTCTCGAGAGGGTACAGCTGGACGGTGTTTGTTTGGTCTAAG
TCTGAGTCCAAAGTCGTTGAATGTCGAGCTAGGTTGACGTCATTCTTCGAGTTACGTCTT
CATTGATTCGCGGCGGCCGCCAGCATTTGATTGTACACATCCGACGTCTTTGGCAATCTA
CATAATTATATTGAGAGGGGCGCCATTACTCGAACCCATAACAAACAACTGTCCGTTTAC
AAGGTTATATTATCATGACCTAATGGTTGAGCTACGGAGTGGGGGGCCCTCGGCTACAGG
TGTTAAACTATCCTGCGGATGCGGATCTTAGCCCGATTTGCATGGCCCAGTAAGGCGCTG
ATTGTAAACCGCCTAGCATACATGTGCTTCTTACTCCAGGGTCCATTGCTACCAGTTCGC
TTCTGACGCCTCAATTGTACCTTCCTTTTTTGAATGGCAACCTGCAATAGCAGTCGACTG
ATGGGGCGTTACAGTATGAAGGCTATATTTACATTATCTCTAAACACACTGCTACCGCGA
AACCCCAACTCGGACCGGTCAGAGCGCTCGTGCTTTGTTCTTGGTCGCTAGCGACCAACA
GTGGATAGGTGGGCGCGGGCCTTGCACCTCCTAGAGCATCACGTGGAGTGGATGCAAACA
GTCTATGGTCCCCCGCTTCGGCTCACGGGTAACGTCTCTTGTGGTACTAGACCATAGGCA
TCCAGGTGAGGGCTACATCCGTATTTAATGAAACTGAGTTCCTCCAAAGCTCCTCGGGAC
GCAGGCAGGTTCATCCGCAGTCAGTAAGGGAGGGAAGAGCTTTCCCCGTTCCACCCAGAT
GCCCTGTGCACGGGAGAGAGATCCAGGTGGTAG
>Rosalind_0423
TCGCAACTTACAGCTCTCGAGAGGG
>Rosalind_5768
GCCCAGTAAGGCGCTGATTGTAAACCGCCTAGCATACAT
>Rosalind_6780
GTCTTCATTGATTCGCGGCGGCCGCCAGCA
>Rosalind_6441
GCAAACAGTCT
>Rosalind_3315
TTGGTCGCTAGCGACCAACAGTGGATAGGTGGGCGCGGGCCTTGCACCT
>Rosalind_7467
TTATCTCTAAACACACTGC
>Rosalind_3159
CGCAGTCAGTAAGGGAGG
>Rosalind_6420
TCTAAGTCTGAGTCCAAAGTCGTTGAATGTCGAGCTAGGTTGACGT
>Rosalind_8344
GGGGCGCCATTACTCGAACCCATAACAAACAACT
>Rosalind_2993
CCAGGTGAGGGCTACATCCGTAT
>Rosalind_0536
ATTATCATGACCTAATG
>Rosalind_3774
TCGCAACCATGTTCCAT
>Rosalind_7168
GGGCCCTCGGCTACAGGTGTTAAACTAT
>Rosalind_8059
CAATTGTACCTTCCTTTTTTGAATG

由于没有给出输出,我想知道我的代码的哪一部分需要固定,以便输出。谢谢。

要了解您需要更改代码的哪一部分,了解代码中的错误会有帮助。如果您有一个带有调试器的代码编辑器,那么逐步完成代码将很有帮助。如果你没有,你可以使用在线工具。这是一本书

单击代码下的“前进”按钮。在步骤20,您跳转到函数
result()
。在第24步之后,您的输入在换行符上拆分。您可以看到,
现在是:

lines = ['>Rosalind_3363', 
         'ATGGGGCTGAGCCCATGTCTAAATGATATCTTGGTGCATTGCAATCTAACTATTTTTTCG', 
         'CAACCATGTTCCATCTGGCGCAAAATGGGCGTGTAGGGAGCTTCGCTATAGTCACTGAAG', 
         '>Rosalind_0423', 
         'TCGCAACTTACAGCTCTCGAGAGGG', 
         '>Rosalind_5768', 
         'GCCCAGTAAGGCGCTGATTGTAAACCGCCTAGCATACAT']
在步骤25中,将
行的第一项分配给变量
dna
。因此
dna
现在等于
>Rosalind_3363
。在下一步中,将列表中的其余项目分配给变量
introns
。现在我们有了

dna = '>Rosalind_3363'
introns = ['ATGGGGCTGAGCCCATGTCTAAATGATATCTTGGTGCATTGCAATCTAACTATTTTTTCG', 
         'CAACCATGTTCCATCTGGCGCAAAATGGGCGTGTAGGGAGCTTCGCTATAGTCACTGAAG', 
         '>Rosalind_0423', 
         'TCGCAACTTACAGCTCTCGAGAGGG', 
         '>Rosalind_5768', 
         'GCCCAGTAAGGCGCTGATTGTAAACCGCCTAGCATACAT']
在这里,麻烦的最初迹象已经很明显。你可能期望
dna
包含一个dna序列。但它包含的序列头。类似地,内含子也应该只包含DNA序列,但这里它们还包含FASTA序列头(
>Rosalind_0423
>Rosalind_5768

因此,接下来几行中发生的事情对于您现在拥有的数据不再有任何意义

排队

for intron in introns:
    dna = dna.replace(intron, '')
您希望从DNA中删除内含子,但
DNA
不包含DNA序列字符串,
introns
包含
DNA
子字符串以外的其他内容。所以在这个循环之后,
dna
仍然等于
>Rosalind_3363
dna
>Ro
sal
ind
,…)的三个字母序列都不是有效的密码子,因此在
dna密码子表中找不到它们。因此,
result()
返回一个空字符串

现在我猜到底发生了什么。您从internet()逐字逐句地提取了代码,但没有理解它的功能,也没有意识到原始作者已经对输入数据进行了预处理

那么,您需要做什么来修复代码呢

  • 解析FASTA文件,例如使用
  • 如有必要,连接第一个序列的DNA字符串。这就是您的
    dna
    变量中应该包含的内容
  • 下面的序列字符串应该在
    内含子中结束

尝试将一些打印语句添加到您的
结果
函数中(例如,在
dna=lines[0]
之后)运行其他人的代码来解决练习有什么意义?你应该自己思考和做练习,否则你什么也学不到!至少别叫它“我的代码”