基于NCBI的blast小程序

本文介绍了作者使用Markdown记录的在NCBI进行序列比对任务的过程,包括人工高通量比对、本地安装blast及遇到的问题。在本地运行blast后,得到了以数字命名的.xml文件,但期望以fasta文件中的标签命名。同时发现.xml文件数量与序列条数不一致。下一步,作者将xml文件读取并解析,得到了比对结果,但仍有将结果整理到Excel并排序以及封装为exe文件以供他人使用的待解决任务。
摘要由CSDN通过智能技术生成

第一次尝试用markdown来写博客
很新鲜的感觉

任务

首先老板给我一个任务
把一堆序列给我,让我比对,找出他们当中和cilia最为相关的。

这里写图片描述
是fasta格式的。

解决方案1

  • 人工高通量
    就是把它们上传到NCBI网站上,然后比对。
    fasta
    然后挨个点开看它们的结果,网速慢的话很让人抓狂

解决方案2

  • 本地blast
    这需要一台不错的电脑,我自己的固态硬盘一共才240G。我可以用我们的服务器,但是当时我们没有空间了,得去找管理员。我找不到他,然后发邮件也不回复。所以我用了第三种方法

解决方案3

  • 第一步

    直接用了这个博客里的代码
    http://www.yelinsky.com/blog/archives/298.html

    import os
    os.chdir("c:/Users/**/Documents")
    from Bio.Blast import NCBIWWW
    from Bio import SeqIO
    import time
    SeqNumber = 0
    for record in SeqIO.parse("cilia.seq", "fasta"):
        SeqNumber += 1
        try:
            result_handle = NCBIWWW.qblast("blastn", "nr", record.seq)
            save_file = open('xml\\'+str(SeqNumber)+'.xml', 'w')
            save_file.write(result_handle.read())
            save_file.close()
            print (SeqNumber,' OK!')
        except:
            print (SeqNumber,' Error! Will try again later!')
            time.sleep(600)
            SeqNumber -=1
    print ("Done!")
    

运行效果如下:
1 OK!
2 OK!
3 OK!
4 OK!
5 OK!
6 OK!
7 OK!
8 OK!
9 OK!
10 OK!
11 OK!
12 OK!
13 OK!
14 OK!
15

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值