使用sequenceserver搭建本地化blast网页服务

1. 简介

现在NCBI不再提供wwwblast软件下载。且NCBI的wwwblast软件很久没更新,界面简陋,因此不推荐使用该软件进行本地化blast分析。使用sequenceserver部署本地化blast网页服务,界面简单易用,还可以同时勾选多个数据库进行比对分析。以下讲解使用sequenceserver在CentOS7上搭建本地化blast网页服务。

2. 安装软件

使用root用户安装sequenceserver软件。该软件使用Ruby编程,使用Rubygem即可安装软件。在CentOS7系统中需要额外安装ruby-devel软件。

# yum install ruby-devel
# gem install sequenceserver

3. 使用sequenceserver

使用sequenceserver要求安装有NCBI-blast+程序。

# sequenceserver -d /opt/biosoft/wwwblast/db -n 16 -p 8080
程序运行后,在浏览器中打开 localhost:8080 即可访问本地化blast网页服务。

常用参数:
-b | --bin 
    输入ncbi-blast+的bin文件路径
-d | --database_dir
    输入blast数据库路径
-n | --num_threads
    设置使用的CPU线程数
-p | --port
    设置使用的端口号,默认为4567。

CentOS7下安装用户自己的perl模块

CentOS7系统默认设置下,每当用户登录时,会自动在其家目录下生成名为perl5的文件夹。该文件夹是用于安装用户自己的perl模块,以利于用户使用一些生物信息学软件对perl模块的需求。但是有一部分人觉得该文件夹比较打乱家目录的布局,可以采用以下两种方法来解决。

1. 关闭Perl模块local::lib功能

CentOS7系统下,每次登录用户,会运行配置文件/etc/profile.d/perl-homedir.sh,查看该内容,可以发现生成$HOME/perl5文件夹是执行了如下命令:

# perl -Mlocal::lib
    该命令是执行了Perl的local::lib模块,默认设置下,能自动生成$HOME/perl5文件夹,并设置好相关的perl5环境变量,优先使用用户本地的perl模块。

执行以下命令修改/etc/profile.d/perl-homedir.sh文件中的PERL_HOMEDIR值为0,则不会执行以上命令,从而不会自动生成$HOME/perl5文件夹,关闭Perl模块local::lib功能。

# perl -p -i -e 's/PERL_HOMEDIR=1/PERL_HOMEDIR=0/' /etc/profile.d/perl-homedir.sh

此外,也可以考虑删除掉perl-home软件包,相当于删除local::lib模块:

查找系统中的perl-home软件包的名字,并删除之
# rpm -qa | grep perl-home
# rpm -e perl-homedir-1.008010-4.el7.noarch

2. 改变Perl模块local::lib的默认路径

第一种方法关闭了Perl模块local::lib功能,导致没有root权限的人无法安装perl模块,会带来一些软件无法使用。推荐在第一种方法的基础上,再自行安装local::lib模块到用户家目录中指定的文件夹中。

下载local::lib模块并手动安装到家目录下的.perl5隐藏文件夹下:
$ wget https://cpan.metacpan.org/authors/id/H/HA/HAARG/local-lib-2.000024.tar.gz
$ tar zxf local-lib-2.000024.tar.gz
$ cd local-lib-2.000024/
$ perl Makefile.PL --bootstrap=$HOME/.perl5
    通--bootstrap参数将模块安装到指定的文件夹
$ make test && make install
$ cd .. && rm local-lib-2.000024 -rf

设置每次登录用户后,启用local::lib功能并识别$HOME/.perl5目录:
$ echo 'eval "$(perl -I$HOME/.perl5/lib/perl5 -Mlocal::lib=$HOME/.perl5)"' >> ~/.bashrc
    执行perl -Mlocal::lib=$HOME/.perl5命令能建立$HOME/.perl5文件夹并自动设置perl5的环境变量。
$ source ~/.bashrc
$ echo $PERL5LIB
    检查perl5的模块识别路径
$ cpan -i XML::Simple
    安装一个最常用的Perl5模块。

本方法将perl5的模块安装路径由perl5改变到了.perl5隐藏文件夹。其实没有太大意义,只是对完美主义的强迫症犯者有帮助而已。

生物信息学平台Galaxy的安装与使用

1. Galaxy初步安装

推荐使用root用户安装,首先下载软件
$ git clone https://github.com/galaxyproject/galaxy.git
$ cd galaxy
联网下载并安装一些依赖的软件和模块
$ sh run.sh
    安装完毕后,Galaxy开始运行。此时,Galaxy只能在本地机器上访问

若需要联网访问,则生成Galaxy的配置文件,并设置相关参数。
$ cp config/galaxy.yml.sample config/galaxy.yml
运行在其它机器上使用指定的IP地址通过8080端口访问Galaxy
$ perl -p -i -e 's/^(\s+)http:.*/${1}http: 122.205.95.116:8080/' config/galaxy.yml

此外,还需额外开启防火墙8080端口后,再次启动Galaxy
$ sh run.sh

使用BGI Online CLI下载华大基因释放的数据

1. 华大基因释放数据邮件信息

在华大基因测序完成后,释放数据的邮件信息示例:

XXX老师:

您好!

您该项目 XXXXX 数据已上传,请按照以下说明操作:

1. 下载GUI软件并解压,链接:https://pan.genomics.cn/ucdisk/s/AZjime
Windows64位系统(推荐使用):双击GUI-win\GUI-win-3.0目录下Windows批处理文件bgionline_gui.bat,打开登录界面

Windows32位系统:参考上述链接下的帮助文档

OS X和Linux系统:将当前路径移到解压文件夹,在命令行执行“sh bgionline.sh”登录界面

2. 输入账号、密码
账号:20190227F18FTSCCWLI4389
密码:WHFUNrdmE_20190227

2. 安装BGI Online CLI

若在windonws图形化界面中下载数据,则比较简单方便。若数据量较大,推荐使用Linux命令行下载数据,直接下载到服务器上。则需要安装BGI Online CLI软件:

安装软件
$ pip install bgionline
更新软件
$ pip install --upgrade bgionline 

3. 使用命令行方式下载数据

$ bo login
Logging into https://app.bgionline.cn:1001
Username: 20190227F18FTSCCWLI4389
Password: WHFUNrdmE_20190227
    输入邮件中的用户名和密码,即可生成相应的配置文件夹~/.bgionline/。
ou are now logged in. Your configurations are stored in /share/disk02_8T/home/chenlianfu/.bgionline/setting. 

Use bo select to choose your working project...

Available projects:

+-------+--------------------------------------+-------------------------+
| index | project id                           | project name            |
+-------+--------------------------------------+-------------------------+
|   0   | 3d7d64df-b0a6-439a-a443-fb73058f9925 | 20190227F18FTSCCWLJ4389 |
+-------+--------------------------------------+-------------------------+
Pick a numbered choice :0
    选择一个目标项目。
Setting current project to: 20190227F18FTSCCWLJ4389 

$ bo ls
F18FTSCCWLJ4389_FUNrdmD/
    可以列出选定项目中的文件信息
$ bo tree
/
└──F18FTSCCWLJ4389_FUNrdmD
   └──Upload_Delivery_F18FTSCCWLJ4389_FUNrdmD_PureSequence
        ├──BGI_result
        │    └──Separate

4 directories 
    以树形式列出选定项目中所有的文件夹层次信息

$ bo dowload / ./
    将项目中的所有文件夹下载到当前工作目录下。

使用wtdbg2利用三代数据进行基因组de novo组装

wtdbg2软件下载与安装

$ wget https://github.com/ruanjue/wtdbg2/archive/v2.4.tar.gz -O ~/software_packages/wtdbg-v2.4.tar.gz
$ tar zxf /share/disk02_8T/home/chenlianfu/software_packages/wtdbg-v2.2.tar.gz -C /opt/biosoft/
$ cd /opt/biosoft/wtdbg2-2.4/
$ make -j 4
$ echo 'PATH=$PATH:/opt/biosoft/wtdbg2-2.4' >> ~/.bashrc
$ source ~/.bashrc

wtdbg2软件使用

进行基因组装
$ wtdbg2 -t 16 -i reads.fa.gz -fo prefix -L 5000

得到一致性序列
$ wtpoa-cns -t 16 -i prefix.ctg.lay -fo prefix.ctg.lay.fa

利用三代reads的比对结果对基因组序列进行打磨修正
$ minimap2 -t 16 -x map-pb -a prefix.ctg.lay.fa reads.fa.gz | samtools view -Sb - >prefix.ctg.lay.map.bam
$ samtools sort prefix.ctg.lay.map.bam prefix.ctg.lay.map.srt
$ samtools view prefix.ctg.lay.map.srt.bam | ./wtpoa-cns -t 16 -d prefix.ctg.lay.fa -i - -fo prefix.ctg.lay.2nd.fa

Linux系统下使用MegaCli软件对磁盘阵列进行操作

若管理的服务器比较多,服务器的硬盘经常会坏掉。可以使用megacli命令来查看磁盘阵列中的磁盘是否损坏。

1. CentOS6系统下安装MegaCli软件

在一些rpm网站中搜索megacli。然后下载megacli的rpm包进行安装:

# wget http://rpmfind.net/linux/Mandriva/devel/cooker/x86_64/media/non-free/release/megacli-8.02.21-1-mdv2012.0.x86_64.rpm
# rpm -ivh megacli-8.02.21-1-mdv2012.0.x86_64.rpm

megacli的使用需要依赖libsysfs库文件
# yum install libsysfs
# ln -s /usr/lib64/libsysfs.so.2.0.1 /usr/lib64/libsysfs.so.2.0.2

2. 使用megacli命令查看磁盘

# megacli -PDList -aALL 
此命令可以查看所有物理磁盘的信息。
若Media Error Count和Other Error Count的值大于0,则表示磁盘可能坏掉了。

# megacli -LDInfo -LALL -aAll 
此命令查看所有逻辑磁盘的信息。

使用高版本SMRT Analysis软件对Pacbio reads进行基因组De novo组装

1. SMRT Analysis简介

SMRT Analysis软件是由Pacbio Science公司开发的软件,现在是SMRT Link软件的一部分,用于对Pacbio Long Reads数据进行分析。其2.3版本仅能用于对Pacbio RSII测序仪获得的h5格式测序数据进行,该版本持续了较长一段时间。后来Pacbio测序仪增添Sequel平台后,SMRT Analysis软件更新到3.0,增加支持对Pacbio Sequel测序仪获得的bam格式数据进行分析。现在(2018.09.02)最新版本的SMRT Analysis到了5.1版本。

2. 下载并安装SMRT Link软件

将SMRT Link安装到CentOS 6.9系统中。安装软件前需要做一些准备:

首先,确定主机名是localhost并指向127.0.0.1的IP地址。刚安装完毕的系统一般都满足此要求。
保证/etc/hosts文件中含有以下一行信息:
127.0.0.1    localhost

其次,修改/etc/security/limits.conf文件,尾部增添如下4行:
chenlianfu      soft    nproc   10240
chenlianfu      hard    nproc   102400
chenlianfu      soft    nofile  10240   
chenlianfu      hard    nofile  102400
注意chenlianfu是安装SMRT Analysis软件所使用的用户的用户名。
该步骤用于增加chenlianfu用户的权限,这是与SMRT软件较高的资源消耗和较多的并行化相关的。
此外,注意此步骤过后,从新登陆

然后,修改/etc/sysconfig/iptables文件,增加5432(PostGresql数据库需要)、9090和8243(软件网页端使用tomcat提供服务时需要9090和8423)端口。在该文件中正确的位置增加如下两行:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9090 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8243 -j ACCEPT
然后重启防火墙,让修改生效:
# /etc/init.d/iptables restart

最后,启动PostGresql数据库。
# /etc/init.d/postgresql initdb
# /etc/init.d/postgresql start
# chkconfig postgresql on

从Pacbio Science官网下载SMRT Link软件

将SMRT Link安装到 ~/biosoft 目录下
$ mkdir ~/biosoft
$ cd ~/biosoft
$ wget https://downloads.pacbcloud.com/public/software/installers/smrtlink_5.1.0.26412.zip
$ unzip smrtlink_5.1.0.26412.zip
    要求输入密码,可以从下载该软件的网页中找到。
$ ./smrtlink_5.1.0.26412.run
    根据提示一步一步进行配置,基本都是直接使用默认值,按Enter键即可。
    设置软件临时文件夹的时候,要选择一个较大分区所对应的目录。我将其设置为/home/chenlianfu/biosoft/tmp/smrtlink
$ /home/chenlianfu/biosoft/smrtlink/admin/bin/services-start
    启动SMRT Link软件。

3. 使用HGAP4进行基因组De novo组装

1. SMRT Link软件必须要在Chrome浏览器中打开。在Chrome浏览器中输入安装有SMRT Link软件机器的IP地址,并接:9090,例如:192.168.30.1:9090,就可以连接到软件的用户登陆界面,输入用户名admin,密码admin则会进入软件。

2. 点击Data Management,再点击VIEW OR IMPORT SEQUENCE DATA,点击IMPORT并从下拉菜单中点击Sequel Sequence Data,从弹出的浏览设置中选择路径/home/chenlianfu/biosoft/smrtlink/install/smrtlink-release_5.1.0.26412/bundles/smrtinub/install/smrtinub-release_5.1.0.25847/private/pacbio/canneddata/lambdaTINY/m150404_101626_42267_c100807920800000001823174110291514_s1_p0.subreadset.xml,点击IMPORT,运行一段时间后,导入数据成功。

3. 返回到软件主界面,点击SMRT Analysis,点击CREATE NEW ANALYSIS,在Analysis Application下拉菜单中选择Assembly(HGAP 4),Analysis Name栏随便填写字符串Lambda_HGAP4,在Genome Length栏将基因组大小修改为58000,在Data Sets中勾选lambda/007_tiny,最后点击START,开始程序运行。

4. 值得注意的是公司给的测序数据文件夹中常常不包含sts.xml、adapters.fasta和scraps bam等文件,而在总的xml文件中却包含了这些信息,需要将其对应的行(第7行到第15行)删除掉后再运行HGAP4,否则程序运行会失败。

5. 程序运行结果在/home/chenlianfu/biosoft/smrtlink/userdata/jobs_root/目录下的一个数字编号(按运行顺序从000001开始编号)的文件夹中。该文件夹中的的主要结果文件(也可以在网页中下载):
./tasks/pbcoretools.tasks.contigset2fasta-0/file.fasta 最终的基因组组装结果。
./tasks/pbcoretools.tasks.gather_fasta-1/file.fasta 按某个长度

使用TeamViewer突破内网封锁远程连接服务器

1. TeamViewer作用

经常由于学校对端口的封锁,在校外难以使用OpenSSH连接学校内网的服务器。这个时候,可以在学校内网的服务器上开启图形化界面运行TeamViewer软件,同时在外网的笔记本电脑上同时运行TeamViewer软件。在两个软件上输入相同的用户名和密码,则可以通过该软件连接学校内网的服务器桌面,从而对内网服务器进行操作。

2. 内网服务器上安装TeamViewer软件

我的服务器系统是CentOS 6.9 64位系统,在TeamViewer网站上下载Linux 64位版本的TeamViewer软件。目前最新是V13版本的TeamViewer,貌似支持CentOS7。对于CentOS 6则下载V12版本的TeamViewer

# wget https://dl.tvcdn.de/download/version_12x/teamviewer_12.0.93330.i686.rpm
# yum install teamviewer_13.2.13582.x86_64.rpm

然后再内网服务器进入图形化桌面,在桌面上的各种菜单中寻找TeamViewer图标启动软件,输入用户名和密码登陆软件软件或记录其ID和密码。

3. 外网笔记本电脑上TeamViewer软件安装和使用

在TeamViewer官网下载windows系统的软件安装并运行。登陆用户名和密码进入软件控制远程服务器,或输入ID和密码来控制远程服务器。

使用ossutil命令下载诺禾致源释放的数据

1. 诺禾致源的数据释放邮件信息

诺禾致源释放数据的内容在诺禾致源释放数据的邮件中,可以找到如下示例内容:

AccessKeyId: LTAI2SeW6yzC54B2
AccessKeySecret: XTpXkjeqATP29sft8YE30ueN6UafCX
预设OSS路径: oss://novo-data-nj/customer-Cbd6p59N/
区域: 华东1(杭州)

2. 在CentOS系统上安装ossutil软件

诺禾致源的数据存放到aliyun系统上,并支持使用ossutil命令下载。

wget http://gosspublic.alicdn.com/ossutil/1.6.0/ossutil64
 -O ~/bin/ossutil
chmod 755 ~/bin/ossutil

3. 使用ossutil下载数据

首先,配置下载用户名、密码和数据服务器存放区(Endpoint)

ossutil config -e oss-cn-hangzhou.aliyuncs.com -i LTAI2SeW6yzC54B2 -k XTpXkjeqATP29sft8YE30ueN6UafCX

-e 设置数据服务器存放区。华东1(杭州)对应上述的路径。若是其它区域,则使用其它的路径,例如华北2(北京)为oss-cn-beijing.aliyuncs.com。
-i 设置用户名AccessKeyId。
-k 设置密码AccessKeySecret。

然后,下载数据:

ossutil cp -r -f --jobs 3 --parallel 2 oss://novo-data-nj/customer-Cbd6p59N/ ./

-r 表示复制目录
-f 表示强制覆盖已有的文件结果
--jobs 3 表示从3个位置下载同一个文件
--parallel 2 表示同时下载2个文件。

若提示“RequestTimeTooSkewed”错误,则可能是服务器的时间和阿里云服务器的时间差较大,这时同步下时间即可:

sudo ntpdate time.nist.gov

启用windows10的linux子系统

1. 首先,在windows10中启用开发者模式。按windows+x键,打开系统管理菜单;点击应用和功能,再点击主页;点击更新和安全,再点击开发者选项,勾选开发人员模式。在联网情况下,系统会安装高级开发功能。

2. 然后,启用windows10的linux子系统。按windows+x键,打开系统管理菜单,点击页面右边的程序和功能;在弹出的页面中点击启用和关闭windows功能,在继续弹出的页面中勾选适用于Linux的Windows子系统,点击确定,并重启windows10系统。

3. 最后,按windows键,点击并打开应用商店;在搜索栏搜索linux,然后选择一个喜欢的linux发行版本,比如debian或ubuntu等,进行下载和安装。

4. 我选择了debian进行下载和安装,最后,提示输入用户名和密码。该用户自动是超级管理员用户,可以使用sudo su -命令切换到root用户。

5. 使用windows系统下的linux子系统,相比于使用linux虚拟机更加方便,更少消耗内存。

6. window10下的debian子系统是最小安装的系统,很多软件无法使用。需要先对apt源进行修改后再安装软件。对/etc/apt/sources.list文件内容进行修改,将内容修改成如下内容(163源):

deb http://mirrors.163.com/debian/ jessie main non-free contrib
deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib
deb http://mirrors.163.com/debian/ jessie-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib

再安装软件:

# apt-get update
# apt-get install openssh-client
# apt-get install openssh-server

# apt-get remove vim-common
# apt-get install vim