2024-05-14 05:36:16 发布
网友
我是一名分子生物学家,使用生物光子晶体分析基因突变,我的问题是:
我有一个文件包含许多不同的序列(数百万),其中大部分是重复的。我需要找到重复的并丢弃它们,保留每个唯一序列的一个副本。我计划使用editdist模块计算它们之间的编辑距离,以确定哪些是重复的,但是editdist只能处理2个字符串,而不能处理文件。在
有人知道我怎么用这个模块来处理文件而不是字符串吗?在
如果要过滤出完全重复的内容,可以使用setPython内置类型。例如:
set
a = ["tccggatcc", "actcctgct", "tccggatcc"] # You have a list of sequences s = set(a) # Put that into a set
s等于['tccggatcc', 'actcctgct'],没有重复项。在
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}。在
如果要过滤出完全重复的内容,可以使用
set
Python内置类型。例如:s
等于['tccggatcc', 'actcctgct']
,没有重复项。在假设您的文件仅由每行一个序列排列的序列组成,我建议如下:
假设你有记忆。多少百万?在
预计到达时间:
正在读取上面的注释(但是没有注释特权)-假设序列ID对于任何重复项都是相同的,这将起作用。如果重复的序列可以不同的序列id,那么就要知道文件中哪个是第一个,它们之间是什么。在
一定是Python吗?在
如果序列只是文本字符串,每行一个,那么shell脚本将非常有效:
这将在32位Linux上处理高达2GB的文件。在
{如果你在GNU上安装^ utils}。在
相关问题 更多 >
编程相关推荐