查找文件python中字符串的完全匹配数

时间:2014-10-08 03:57:03

标签: python

我有一个关于如何在字符串文件(特别是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

2 个答案:

答案 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()
  1. 将文件读为字符串
  2. 使用re.findall查找匹配项,这将返回包含匹配项的列表
  3. 计算步骤2中的列表长度。