【发布时间】:2019-06-27 16:41:41
【问题描述】:
所以我有一个 DNA fasta 文件。其格式如下:(Input Image)
Rosalind_8728 ATGGAGCCGCACATATAACGGTAAATGCAAAGAAACAGTTCGGGAAAGATATTCAACCAA GGCAACTTCCTGCACTCGTCGCGGGCACGTAGGGAGCCTGACCATCCCTACCCAGACTGT CCCCGATCAGCGAACGGGCCATGCGCTATCAGGTCGATCTAGCACTTGGTAAGTTACGCC AGCTGTACTGAAACAATGCCCGTAGTGACTGAGACGCCAGGGAAAAGGGGATTAAAGCTA TGGTAGCCAATCGTCCTAACCTCTAGCCCGCCTGGTATGTAAGAACAAGACATCAGAGAT ATAGAGGCAGACCGGACCTGCAAGCCGGTCACCTGTGGCTCCCGACAAATGTGGCGTTTA GCTTATGCAAGACCGAAGCTTAGAACCAAGTCGGCTTCGTACCCCTTCTTACCTGTCCAC TGCAGTGTTTTGCCTGGATCCGGGTGCGCGTGGCACGAGATCTGCTGAGAAGCTATGAAC AATCAAATGTGTAGCCCGCTTACGAAGAATCCAGCCCTGAATTCGGGGGCCAGTCTTCGC CGAACTCCCCCTATTGAGTGGTAAAGTGTGTGACTCCTAGTCTTTTCACCCGAGTCGTTG AATTGTTAGGCTACAGATTTCGCATAGCCCTGATCCAAGCCTTTCTCTGAAAAGATGCGA CCTGCATCACTAAGGCCAACCGTGTGTCTCTCCGACATTACGGCAGTGCCACTGATCGCT CACGAACTTGGGAAGCCCCAAAAACTCACATGAGTATGTAGGGCAGTTTTATAGGCTGGG CCCACCCACTTGGTTAGCAAATGGCGCCTGCTCAGAACTCCTTTTACGTAAGTGGTCCCA GTGTGATGGGTCGAGTGAACAAACAAATGTTGACAATTTGCCTCGGGGTTA
Rosalind_6085 CGGATCTGCGTACGGTTGCGTATCCCGTTCAAATGCTCCATCACTCATCACGGAGCCACG TTCCGACCTGCCCACATCTGCGTCTAATACCACGCCAGTACTTACCACGCCGCTGGGTCT TCGAGAACGAGGCTGAATGGGTTTCCGGGGGTGGGAAAGTAATACAAGCGTCATTCGTGA ACTGGGACCATGTCATCTGGCGAAGCTATAGTGCGATCGAACTAAACGCTAATACGTCGA AACAGTCTATGGCCGTGAACTTTCTCTAGAGGGTAGGGTTCTTAGCCCCGCCTATTACTT GAACGGATATCAAAGACAGACTTAGCATCTCTGTACCCGCCCTACTGTTGCTTCAAGTCA TGCGGAGATTTTGGGGAGCTTGGTCACCTATCGGGCACATCCAGAATGGTCTTTCTCGTA GGTTGAAACAGCCGGGATGCACGTGTGTTTTGTAGGCAAATATAGTGTTTCCGGTGCTAA CTAGATTGAGGCAACTCCTATGCCAGAGCATACGGATAGAGACCGAATTGTTTATATGTG CGTTTACCCGATCAGATGCAGTACTTTGGTGGGCAATTTTAGTGAATTGCTCACGTGTTT TAATAACCGGTCCAAGGTTACCTCCCGCCACGTCATAGAGAAATGGGGGAGTATAGAGAG GTAGCTTCTTTCCACACTTGCTTCGAAAAGTGGCCCTCCCTAGGCCACTCCAGATCACTT CCCTCGCAGCCGATACTTTAAATCTGTTCTCGACTGGTTTAACGTTTTGAGCGAGATTGT GCAGGTCTATCGTCGAGTTTTAGGAGAAACCGTGGCTGTCTCAAACCGGTAGCGACCAAG TAACTTGTGTGGTGTGGCGCGTACCCCTTTTCCTTTCCGACAACACTGTACCCCTAGATA TAGTGGAATCAGTGAATCAAGATCTACCGGGAATAGACACTCGCTTGAGAAAACATTTCC
最后我想看看这些 Rosalind_id 中哪一个的 DNA 中的 G 和 C 最多。所以我的思考过程是列出 id 标签,然后列出与之相关的所有 dna。然后将它们压缩到字典中,并创建一个函数来确定最高 GC 字母浓度。问题是当我附加多个字母的行时,我得到一个列表,每行由“,”分隔,而不是包含 rosalind_id_tag 下方所有行的 1 个列表,然后用“,”分隔它们,如果它是一个新标签。
所以最终我想要:
dna = [list of letters from first random_id, list of letters from second_random_id, ...]
而不是我得到的是:
dna = [this is first line, this is second line, this is third line,..]
我尝试过扩展,但这似乎不起作用。
我尝试过制作嵌套列表并将它们也附加到我的主要 DNA 列表中
到目前为止(有效)我的代码是:
file = open("rosalind_gc.txt", "r")
data = file.readlines()
rosalindtags = []
dna = []
for a in data:
if a.startswith(">"):
rosalindtags.append(a.rstrip())
else:
dna.append(a.rstrip())
dictionary = dict(zip(rosalindtags, dna))
file.close()
我知道我错过了一些微不足道的东西,但我只是不知道它是什么。任何帮助表示赞赏,谢谢!
【问题讨论】:
-
我不认为这是重复的,因为我相信 OP 可能知道如何连接字符串——只是他忘记或没有意识到他需要解决这个问题 连接字符串。当看到 Rosalind_id 时,需要将作为 DNA 代码的字符串初始化为空字符串。然后,直到下一个 Rosalind_id 或“文件结尾”的后续字符串必须连接在一起并使用最终结果。
-
现在,
rosalindtags的长度为 2,dna的长度为 1912。第二个问题是字符串是可迭代的,因此当您将其附加到列表时,字符串的每个字符都会分开元素。 -
嘿,如果我的回答对你有用,你可以勾选它。谢谢!
-
如果我的答案对你有用,你可以勾选我的答案吗?