【发布时间】:2013-08-01 16:43:38
【问题描述】:
因此,经过数月的尝试和失败以及普遍陷入困境后,我最终决定走出去寻求外部帮助。我还在学习 perl 的新技巧,希望这里的人可以帮助我,所以事不宜迟......
我有以下格式的物种:
>gi|###|...|...|...[species name] amino acid sequence
在这些行中,我将有一些包含相同的物种名称(如智人),但氨基酸序列不同。这就是为什么我不能通过散列或其他方式删除重复项,因为从技术上讲,它们不是完全重复的。
我需要一种方法来删除或不打印重复的物种名称,但让我的输出文件包含上面指定的格式。因此,如果我有 3 次出现具有不同氨基序列或 # 的智人,我需要我的输出只包含一个智人(不管哪个,可以是随机的)及其对应的序列。
任何帮助或指出正确的方向将不胜感激!希望我对这个问题足够清楚。感谢您的阅读! :D
【问题讨论】:
-
嗯,使用带有物种名称的哈希作为键?你能解释一下这对你不起作用吗?
-
为什么不将
species存储为您的键并用您的序列值填充一个数组,然后按您的预期输出?my %h; while (<>) { push @{$h{$1}}, $2 if /\[(.+)\]\((.+)\)/; } -
据我了解,哈希值更具体,因此无法区分部分差异......另外,由于我需要完整的物种名称及其相应的序列,它不会检测到重复,因为即使物种名称相同,序列也不同。
标签: perl duplicates partial