码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-11-04 17:36:32      阅读:2121      评论:0      收藏:0      [点我收藏+]

标签:fastq fasta uniq 去重复 序列

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或者根据序列去除重复项

标签:fastq fasta uniq 去重复 序列

原文地址:http://matrix6ro.blog.51cto.com/1746429/1869455

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!