Python编辑distan

2024-05-14 05:36:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一名分子生物学家,使用生物光子晶体分析基因突变,我的问题是:

我有一个文件包含许多不同的序列(数百万),其中大部分是重复的。我需要找到重复的并丢弃它们,保留每个唯一序列的一个副本。我计划使用editdist模块计算它们之间的编辑距离,以确定哪些是重复的,但是editdist只能处理2个字符串,而不能处理文件。在

有人知道我怎么用这个模块来处理文件而不是字符串吗?在


Tags: 模块文件字符串编辑距离副本生物序列
3条回答

如果要过滤出完全重复的内容,可以使用setPython内置类型。例如:

a = ["tccggatcc", "actcctgct", "tccggatcc"] # You have a list of sequences
s = set(a) # Put that into a set

s等于['tccggatcc', 'actcctgct'],没有重复项。在

假设您的文件仅由每行一个序列排列的序列组成,我建议如下:

seq_file = open(#your file)

sequences = [seq for seq in seq_file]

uniques = list(set(sequences))

假设你有记忆。多少百万?在

预计到达时间:

正在读取上面的注释(但是没有注释特权)-假设序列ID对于任何重复项都是相同的,这将起作用。如果重复的序列可以不同的序列id,那么就要知道文件中哪个是第一个,它们之间是什么。在

一定是Python吗?在

如果序列只是文本字符串,每行一个,那么shell脚本将非常有效:

sort input-file-name | uniq > output-file-name

这将在32位Linux上处理高达2GB的文件。在

{如果你在GNU上安装^ utils}。在

相关问题 更多 >