排除指定的序列

from Bio import SeqIO
name = open('1.txt', 'r')
o = open('1.fa', 'w')
wanted = set(line.rstrip("\n") for line in name)
records = (r for r in SeqIO.parse('unigene_seq_5.fasta', "fasta") if r.id not in wanted)
SeqIO.write(records, o, "fasta")



@seqtools.command()
@click.option('-i', type=click.File('rb'), help='fasta file')
@click.option('-o', type=click.File('w'), help='out fasta file')
@click.option('-name', type=click.File('rb'), help='name file store name of sequence')
def get_seq(i, o, name):
    ''' get sequence from a sequence name file'''
    from Bio import SeqIO
    wanted = set(line.rstrip("\n").split(None, 1)[0] for line in name)
    records = (r for r in SeqIO.parse(i, "fasta") if r.id in wanted)
    count = SeqIO.write(records, o, "fasta")
    if count < len(wanted):
        print("Warning %i IDs not found " % (len(wanted) - count))
        i.seek(0, 0)
        ids = [record.id for record in list(SeqIO.parse(i, "fasta"))]
        for id1 in wanted:
            if id1 not in ids:
                print '%s not found' % id1
    else:
        print ("Get all IDs ")

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值