查找文件python中字符串的完全匹配数
问题描述:
我有一个关于如何查找字符串文件(特别是FASTA文件)中字符串(特别是DNA序列)完全匹配数的问题。我想要做的就像命令行中的“grep -c”字符串“file_of_strings.fasta”。我的代码如下:查找文件python中字符串的完全匹配数
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
答
with open('file') as f:
print(f.read().count(sequence))
+0
所以我可以这样做:count = f.read()。count(sequence)? – user439463 2014-10-08 04:23:52
+0
是的..尝试一下;) – brunsgaard 2014-10-08 04:24:57
答
使用正则表达式(如果你不是假设每行一个比赛,你的代码假定每行一个匹配):
import re
f = open("sequences.fasta")
print len(re.findall(sequence, f.read()))
f.close()
- 阅读文件作为字符串
- 外观使用re.findall WH比赛ICH将返回一个包含匹配
- 从步骤计算列表的长度2
嗯似乎是正确的名单。你是不是在找子吧? – brunsgaard 2014-10-08 04:00:12
你是否假设每行只有一次发生? – User 2014-10-08 04:03:37