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或者根据序列去除重复项的主要内容,如果未能解决你的问题,请参考以下文章