【发布时间】:2021-09-27 02:22:20
【问题描述】:
我有一个 DNA 文本文件,我需要专门使用列表和循环来计算二核苷酸对的出现次数(例如:AA、AC、AT、AG、CA、CC 等),然后再次使用列表和循环将计数打印到一个新的文本文件中,作为一个表格,其中两列由制表符分隔:二核苷酸序列和计数。我知道如何做到这一点(将每一对存储在变量中,然后使用 count 计算出现次数,然后打开文本文件并将每个单独的计数打印到文本文件中)但我现在才刚刚开始学习列表和循环并且对如何我会那样做。
例如:我就是这样做的:
dna1.txt 是我计算机上 dna 序列文本文件的(随机)示例:
随机序列(即 dna1.txt):
agggaatcgctggtgaagaggttgtgacctcttataaccccattgttaatgaggtccacg ctaagtaatgagtggctggtataggtgacgtctagaagtcatttctgtacagttactgcc gtggatatcattaggacgacactggggtgctcccacgcaccacgtgtacaggacgac tgcgatgatatagaaggtgagcttaaaacgttctacaaccccaatgaatcatagccgggt agattgccaggcgtgtggtaacgggtacgtggcggatctcgtccagtatgccgcagtcac acccgaatctttcgtcgactacggagcgactcgtatcgagacgggcttgaattgactcct catggattaggctgaggtcaaccttcgcatggagcctgggcatttaaaggtcgactgtcg
dna_txt = open("dna1.txt")
dna_txtcontents = dna_txt.read()
aa_count = dna_txtcontents.count("aa")
print str(aa_count)
然后为每一对继续,然后将每个单独的计数存储在一个新的文本文件中,但是我如何通过使用列表和循环来计算每对的出现次数,然后将计数存储在一个新的文本文件中,从而使自己更容易?哦,还要确保无论序列是大写还是小写,程序都能正常工作?
谢谢!!
【问题讨论】:
-
aa_count = dna_txtcontents("AA")会抛出错误。您是在声称此代码有效,还是说这就是您对列表的处理方式? -
对不起,我的意思是在最后添加 .count ,但是这是可行的,但这是长版本。对我将如何做同样的事情但列表和循环而不是列表和循环感到困惑?
-
我不是生物学家,
ACTG的所有可能对都可能吗?还是只能A和T配对,和G和C? -
的DNA文本文件包含的DNA序列例如:>随机序列ctacgataaccatccatgacatcgaaggctgcagcctatgaagcattgggcgtttactgg acatggggtgaaagtgggtgcagttcaaagagttgttttttgctgtccgaccgactggag由核苷酸对agtgatccgatacgccaagggcttcattacgggtaagaacatttggtatattaatgtaat aagccgttcggtgggtgtca,我的意思是多少AA的,交流的,CA的等等都在一个序列中,如这一个?
-
为确保程序适用于小写和大写,您可以编写
dna_txtcontents = dna_txt.read().upper(),这样所有字母都变为大写。
标签: python dna-sequence