我有一个关于如何在字符串文件(特别是FASTA文件)中找到字符串(特别是DNA序列)的完全匹配数的问题。我想要做的就是命令行中的“grep -c”字符串“file_of_strings.fasta”。我的代码如下:
count = 0
for line in open("sequences.fasta"):
if sequence in line:
count += 1
这似乎没有计算我文件中特定字符串的实例数,我不确定为什么。任何帮助将不胜感激!
好吧,所以fasta文件的格式为:
>SEQUENCE_1
MTEITAAMVKELRESTGAGMMDCKNALSETNGDFDKAVQLLREKGLGKAAKKADRLAAEG
LVSVKVSDDFTIAAMRPSYLSYEDLDMTFVENEYKALVAELEKENEERRRLKDPNKPEHK
IPQFASRKQLSDAILKEAEEKIKEELKAQGKPEKIWDNIIPGKMNSFIADNSQLDSKLTL
MGQFYVMDDKKTVEQVIAEKEKEFGGKIKIVEFICFEVGEGLEKKTEDFAAEVAAQL
>SEQUENCE_2
SATVSEINSETDFVAKNDQFIALTKDTTAHIQSNSLQSVEELHSSTINGVKFEEYLKSQI
ATIGENLVVRRFATLKAGANGVVNGYIHTNGRVGVVIAAACDSAEVASKSRDLLRQICMH
答案 0 :(得分:2)
with open('file') as f:
print(f.read().count(sequence))
答案 1 :(得分:1)
使用正则表达式(如果你不假设每行一个匹配,你的代码假定每行一个匹配):
import re
f = open("sequences.fasta")
print len(re.findall(sequence, f.read()))
f.close()