2014-10-22 63 views
-2

我寫了一個小型的biopython腳本來從基於ID的fasta文件中提取序列,但它確實提取了重複項,所以我期望從我的fasta文件中重複序列(例如,完全相同的ID)。從基於ID的fasta文件中刪除重複的序列

我想修改我的劇本,但我失敗了:

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 2014-10-22 08:21:15

+1

@ user3188922:一般情況下,當人們張貼「這是行不通的,」沒有進一步的有益的幫助將給予,因爲對於我們理解你的問題是什麼好辦法不是。如果你需要幫助,你需要明確地說明*什麼*不工作,你看到什麼錯誤,如果有的話,你的輸入和輸出數據是什麼樣的等等。不是「這裏是一些隨機代碼,它不工作。 「 – 2014-10-22 08:23:21

+0

對不起,它實際上完美:)我的賭注!我認爲idS是一個錯誤,應該是id,否則打開一組新的ID是一個好主意! – user3188922 2014-10-22 08:26:07