2017.11.30-第一次解决实际问题,用本地blast 找SNP位置-blast构建本地库

第一次实战

学了一段时间生物信息学了,我都是跟着网上的帖子学习,跑流程,从来没有解决过自己的实际问题。这次刚好哈,有个任务让我解决一下,具体如下:

现在有8000多个snp序列(油菜), 我想知道这8000多个snp 序列具体在哪条染色体上?

好了,这个问题看似很简单,但是我还是花了很多时间,走了很多坑。。。正确步骤如下:

1 下载安装好本地balst 程序

参考我之前的经验http://www.jianshu.com/p/47c60b6f88e9
这里再一次感受到洲更以前的和我说的做笔记的重要性了,我基本忘了local blast,但是一看笔记就想起来了。

2 下载油菜的参考基因组数据库

下载下来的文件的是含有染色体位置信息的,这点很关键,我就是一开始下载错库了,导致浪费了很多时间。


红色的是压缩的,白色的是已经解压好的

数据文件是fa格式的

3 构建本地化数据库

makeblastdb -in Brassica_napus_v4.1.chromosomes.fa -dbtype nucl -title yc -parse_seqids -out yc

注意这里的参数:

-in 后面接你的数据库文件
-dbtype 后面nucl 代表核酸 prot为蛋白质
-out 为数据库的名字,等下要用的

4 把8000多条snp 序列整合到一个文件中,采用以下格式

第一行为名称或者序列号
第二行为具体的序列
就像这样:

2017.11.30-第一次解决实际问题,用本地blast 找SNP位置-blast构建本地库_第1张图片
准备格式

5 进行blast

blastn -query 文件名称 -db /public/home/PATH/db/yc/yc -outfmt 6 -out "result"

注意那个路径后面yc 那个文件夹后面再加一个yc这个就是刚刚构建的数据库的名称,不能忘了加

cat result

2017.11.30-第一次解决实际问题,用本地blast 找SNP位置-blast构建本地库_第2张图片
结果

看第二列就可以了。

当然输出 xml格式也OK,信息更加丰富,用之前的python 解析xml格式。

虽然这么简单的一个操作步骤,但是我却花了2天多的时间,主要失误在下面:

  1. 数据库找错了,最开始的时候用的数据库对于染色体的具体位置不是很清楚
  2. format 数据库的时候出现重复序列,虽然我现在还是不知道怎么解决,但是我换了一个数据库,所以。。。
  3. 一开始还有一个思路,花了很多时间,不过最后没行的同,就是递交8000条SNP到网上,然后网络在线blast,得到结果后,解析网页源码,然后用python 提取信息,思路应该正确,但是操作起来有点复杂。

你可能感兴趣的:(2017.11.30-第一次解决实际问题,用本地blast 找SNP位置-blast构建本地库)