2014-10-22 2 views
-2

Я написал крошечный скрипт biopython для извлечения последовательностей из файла fasta на основе идентификатора, но он извлекает дубликаты, поэтому я ищу для фильтрации последовательностей из моих файлов fasta, которые являются дубликатами (например, имеют точно такой же ID).Удалите повторяющиеся последовательности из файла fasta на основе ID

Я попытался изменить свой сценарий, но мне не удалось:

from Bio import SeqIO 

id = [] 
for line in open("short.txt","r"): 
    id.append(line.rstrip().strip('"')) 


for rec in SeqIO.parse("out.fa","fasta"): 
    #print rec.id 
    if rec.id in id: 
     if rec.id not in rec.format: 
      print rec.format("fasta") 

Может кто-нибудь помочь?

ответ

0
ids = set() 
for rec in blah: 
    if rec.id not in ids: 
     ids.add(rec.id) 
     # process it 
+0

Это не похоже на работу – user3188922

+1

@ user3188922: Вообще, когда люди после «она не работает,» не дальше полезным помощь не будет дано, потому что это не лучший способ для нас, чтобы понять, что ваша проблема , Если вы хотите получить помощь, вам нужно четко указать, что * не работает, какие ошибки вы видите, какие есть ваши данные ввода и вывода, и т. Д. Не «вот какой-то случайный код, он не работает. " –

+0

Извините, на самом деле все работает отлично :) Моя ставка! Я думал, что idS был ошибкой и должен быть id вместо этого, но в противном случае открытие нового набора идентификаторов - отличная идея! – user3188922

 Смежные вопросы

  • Нет связанных вопросов^_^