Biopython根据ID或者根据序列去除重复项

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Biopython根据ID或者根据序列去除重复项相关的知识,希望对你有一定的参考价值。

from Bio import SeqIO
import argparse

records_new = SeqIO.parse(args.in_raw, "fasta")

Pretreated_fa = SeqIO.to_dict(SeqIO.parse(args.input, "fasta" ))

result = open(args.out_file, "w")
for rec in records_new:
    flag = True
    for k, i in Pretreated_fa.iteritems():
        if str(i.seq) == str(rec.seq):
            flag =False
            break
    if flag :
        SeqIO.write(rec, result, "fasta")
result.close()
from Bio import SeqIO
import argparse

records_bac = SeqIO.parse("nr.hmm.protein.faa", "fasta")
 
 
All_fa_dict = SeqIO.to_dict(SeqIO.parse("Allq_protein.faa", "fasta" ))
 
 
noDupID = open("No_Dup_ID.txt", "w")
noDupSeqR = open("new_Record.fasta", "w") 
 
for r in records_bac:
 
    if r.id not in All_fa_dict:
 
        noDupID.write(r.id+"\n")
        noDupSeqR.write(">"+r.id+"\n")
        noDupSeqR.write(str(r.seq)+"\n")
 
noDupID.close()
noDupSeqR.close()

这些是对之前从事的生物信息工作的一点点整理内容, 生物信息学的研究人员用python和perl的确是最多的,但是这两种语言作为脚本工具,应当总结的方法和工具很多, 需要学的东西也太多了。


希望能对用到python的生信分析人员有帮助吧!


很久以前听说过uclust  fastx_collasper 以及 cd-hit 可以完成去重复

很久很久以前我只会用CD-hit 和 FastUniq(这个是针对双端测序的fastq文件的), mothur的unique.seq 命令也可以,不过好像针对的是几十M的 fasta比较好,很久不用这些工具了...


也许以后都不会用了 

以上是关于Biopython根据ID或者根据序列去除重复项的主要内容,如果未能解决你的问题,请参考以下文章

Biopython SeqIO 读取序列文件,读取信息,写入序列

mysql 根据两个字段值查询时如何去除重复数据

text ID或根据条件删除重复项

如何去除List集合中的重复项ID的,并把重复项的数量相加

根据多列和日期时间删除重复项

sqlserver 2008中的表,id列是不重复的主键,除id列,其他列出现重复数据,怎么去除重复???