查看: 1467|回复: 6

[Linux系统] Linux系统中的BLAST+操作教程

  [复制链接]
  • TA的每日心情

    2017.11.10 13:58
  • 签到天数: 353 天

    连续签到: 2 天

    [LV.8]以坛为家I

    管理员

    Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

    主题
    422
    奥币
    7451
    积分
    6608
    注册时间
    2015.11.23
    在线时间
    952 小时

    宣传达人优秀版主


    发表于 2016.3.28 22:56:36 | 显示全部楼层 |阅读模式
    今天分享本地BLAST的教程,分享Linux系统中进行NCBI BLAST+本地化的方法。实测环境为Linux64位系统,无ROOT权限。
    今天这篇文章面向初学者(最好还是懂得基本的linux使用哈),高手可直接忽视。Windows系统与Linux系统的安装方法,两个系统安装BLAST的思路一致,不熟悉Linux系统的同学可能倾向选择Windows系统操作,但在Linux中BLAST效率更高,系统更稳定,不会卡死。所以,我们建议用Linux服务器,我想你也不忍心让自己心爱的本本跑几十个小时的程序吧。

    请不要因为篇幅长,而觉得很困难,只是为了初学者能懂,叙述比较详(luo)细(suo)而已。

    全文转载自:http://blog.shenwei.me/

    -----------[ 做好心理准备,开始了]-----------

    1. 安装配置BLAST+程序

    ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/中下载最新的BLAST可执行程序(不要下载源代码,源码编译非常慢),选择预编译版本,如ncbi-blast-2.2.30+-x64-linux.tar.gz。如果服务器能联网,可直接用wget下载。或者,下载后用SFTP客户端传输到服务器上。

    解压缩:
    1
    tar -zxvf ncbi-blast-2.2.30+-x64-linux.tar.gz

    (按理说解压缩后就可以通过绝对路径直接使用了,但为了今后的方便,还是继续配置吧)为了方便,将其移动到我安装本地程序的目录,并重命名(固定命名,不带版本号,避免因升级而修改配置文件),统一管理。
    1
    2
    3
    mv ncbi-blast-2.2.30+ ~/local/app/ # 移动
    cd ~/local/app/       # 进入本地程序安装路径
    mv ncbi-blast-2.2.30+ blast   # 修改目录名

    现在,已经将BLAST+安装到~/local/app/blast中了(~知道吧,就是用户的家目录,可用环境变量$HOME代替)。

    1
    2
    3
    4
    [shenwei@mu01 blast]$ pwd # 查看当前目录的绝对路径
    /db/home/shenwei/local/app/blast
    [shenwei@mu01 blast]$ ls  # 查看当前目录的内容
    bin ChangeLog doc LICENSE ncbi_package_info README

    将BLAST+可执行程序所在目录(bin)的绝对路径加入到环境变量$PATH中,方便通过程序名直接调用。编辑~/.bashrc文件,在最后加入以下行:
    1
    export PATH=/db/home/shenwei/local/app/blast/bin:$PATH

    如果不会使用vi/vim等编辑器,可直接运行下列一行命令,将上述内容添加到~/.bashrc文件(看清楚,和上面不同的是:$被转义了的):
    1
    echo "export PATH=/db/home/shenwei/local/app/blast/bin:\$PATH" >> ~/.bashrc

    让配置生效:
    1
    source ~/.bashrc

    到此,你就可以直接输入BLAST的子程序,如blastn进行比对了。试试输入 blast -version ,看看是否如下显示:
    1
    2
    3
    [shenwei@mu01 blast]$ blastn -version
    blastn: 2.2.30+
    Package: blast 2.2.30, build Dec 10 2013 14:41:40

    -----------[ 休息一下,鼓励一下自己 ]-----------

    2. 配置本地BLAST库

    当需要进行大量比对的时候,将BLAST数据库本地化能极大提高效率。

    我存放库文件的目录为 ~/data/blast。建立并编辑(如果还不会编辑,就复制到本地的一个文本文件ncbirc.txt,然后传到服务器,再改名 mv ncbirc.txt .ncbirc )NCBI BLAST全局配置文件(在家目录),内容如下:


    配置好后,后面选择库的时候就可以只输入名称(比如nr),不用输入绝对路径了。

    3. 下载库文件

    配置好之后,使用BLAST+自带的update_blastdb.pl脚本下载nr和nt等库文件(不建议下载序列文件,一是因为后者文件更大,二是因为可以从库文件中提取序列,最主要是建库需要花费很长时间),直接运行下列命令即可自动下载。

    1 update_blastdb.pl nt nr

    提醒:下载文件较大,耗费时间较长,最好将任务转入后台。简单的做法,也可用nohup命令(下面nohup后面用了time命令,是为了看看整个消耗的时间):

    1
    nohup time update_blastdb.pl nt nr > log &
    监控库文件是否下载完成,如何判断? 1. 查看log文件是否有提示;2. 查看update_blastdb.pl是否还在运行:执行ps -aef | grep update_blastdb.pl | grep -v update_blastdb.pl命令,如过没有结果,则说明没有运行了。

    下载完成后解压所有tar.gz文件(用通配符)即可:
    1
    nohup time tar -zxvf *.tar.gz > log2 &

    提示:今后要更新库文件的时候,按照上述方法重新下载解压即可。

    常用的BLAST库文件(比如基因组参考序列)也可以加入其中,今后调用的时候就不用输入库 文件的绝对路径了。

    ----------- [ 赞扬一下自己 ]-----------

    4. 基本用法

    可直接Google中文教程。更权威,更详细的请参考BLAST手册《BLAST Command Line Applications User Manual》

    具体参数信息可直接输入blastn -help查阅。

    提示:blast输出格式有多种,其中11包含信息最全,其它格式都可用blast_formatter程序由11转化为其它格式。所以,比对结果请使用11格式。

    1)如果本地化了nt库,直接在nt库中比对。
    1
    blastn -query test.fa -db nt -outfm 11 -out "test.blastn@nr.asn" -num_threads 8

    其中输出文件名test.blastn@nr.asn是个人习惯,即“序列文件名.blast子程序名@库名.结果格式”,这样是不是很直观?

    转换格式(如自定义表格格式):
    1 blast_formatter -archive "test.blastn@nr.asn" -outfmt "7 qseqid sseqid pident length mismatch gapopen qstart qend sstart send evalue bitscore staxids salltitles" > "test.blastn@nr.tab"

    转为默认格式 :
    1
    blast_formatter -archive "test.blastn@nr.asn" -outfmt 0 > "test.blastn@nr.blast"

    2)如果没有本地化nt库,可添加-remote选项(就不能使用-num_threads参数了),进行在线比对(当然要慢一些,适合数据不多的情况):
    1
    blastn -query test.fa -db nt -outfm 11 -out "test.blastn@nr.asn" -remote

    3)用自己的序列建库
    1 makeblastdb -in db.fasta -dbtype nucl -parse_seqids -out dbname

    如果该库需要经常使用,可将库文件移到前面配置的库文件的目录,今后在其它目录运行blast的时候,便可直接输入库名(不用输入绝对路径),直接使用。
    1
    mv dbname.* ~/data/blast

    全文结束,大家要在在实践中学习,不会的请google、看手册哈~

    全文转载自:http://blog.shenwei.me/



    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    有问题请发贴提问
    回复

    使用道具 举报

  • TA的每日心情

    2016.6.15 09:18
  • 签到天数: 15 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    钵水母

    Rank: 3Rank: 3

    主题
    0
    奥币
    433
    积分
    116
    注册时间
    2016.4.8
    在线时间
    106 小时

    发表于 2016.4.9 10:23:57 | 显示全部楼层
    蟹蟹,非常实用。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    好棒
    2018.10.30 09:38
  • 签到天数: 193 天

    连续签到: 1 天

    [LV.7]常住居民III

    版主

    Rank: 10Rank: 10Rank: 10

    主题
    26
    奥币
    3344
    积分
    1546
    注册时间
    2016.1.13
    在线时间
    234 小时

    突出贡献优秀版主


    发表于 2016.4.9 20:43:52 | 显示全部楼层
    绝对的好教程!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2016.6.1 10:26
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    草履虫

    Rank: 2

    主题
    0
    奥币
    421
    积分
    19
    注册时间
    2016.4.12
    在线时间
    3 小时

    发表于 2016.4.12 00:52:29 | 显示全部楼层
    非常实用
    回复

    使用道具 举报

  • TA的每日心情

    2016.12.13 14:32
  • 签到天数: 8 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    帝王蝶

    Rank: 4

    主题
    2
    奥币
    648
    积分
    401
    注册时间
    2016.4.10
    在线时间
    36 小时

    发表于 2016.5.23 10:00:07 | 显示全部楼层
    很好的资料
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2018.4.20 15:04
  • 签到天数: 47 天

    连续签到: 1 天

    [LV.5]常住居民I

    中华鲟

    Rank: 5Rank: 5

    主题
    3
    奥币
    783
    积分
    878
    注册时间
    2016.4.22
    在线时间
    34 小时

    发表于 2016.5.24 09:58:38 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    yes!
    4 小时前
  • 签到天数: 618 天

    连续签到: 8 天

    [LV.9]以坛为家II

    中华鲟

    Rank: 5Rank: 5

    主题
    7
    奥币
    2419
    积分
    918
    注册时间
    2016.4.8
    在线时间
    290 小时

    最佳新人


    发表于 2016.8.12 15:27:26 | 显示全部楼层
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表