在CentOS7下安装chrome谷歌浏览器

CentOS7可以支持chrome浏览器的安装,而CentOS6不行。生信软件中HGAP4必须要使用chrome浏览器进行操作。

安装chrome浏览器方法:

首先添加google的yum源。
# echo '[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=0
#gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub' > /etc/yum.repos.d/google-chrome.repo

然后yum安装chrome软件
# yum install google-chrome-stable

安装完毕,即可在Applications – Internet – Google Chrome打开谷歌浏览器。

在CentOS系统下使用VNC提供远程桌面服务

1. 为什么我要使用VNC

我使用VNC,是为了能远程连接到服务器的桌面。有些特殊的操作必须在服务器的桌面上完成。比如我需要通过百度网盘上传和下载高通量测序数据以及分析结果。这个时候,必须要安装windows虚拟机,而使用虚拟的windows系统必须要在服务器CentOS系统的桌面界面进行操作。

此外,我也使用了简单易用的teamviewer软件,但是该软件存在问题是,整个服务器系统仅能一个用户使用teamviewer软件。当我正在使用teamviewer的时候,某天,另外一个管理员人直接在服务器上登录了另外的账户桌面,我可能就无法再使用teamviewer连接服务器了。而VNC应该可以多用户同时远程访问各自的桌面。

以下讲解如何在家里通过一台公网服务器作为跳板,访问内网服务器的CentOS7系统桌面。

1. 在内网服务器安装VNC软件并进行设置

使用root用户联网安装软件
# yum install vnc vnc-server tiger*
开启5901、5902和5903端口。每增加一个用户使用VNC,则端口号加1,需要额外开放端口。 # firewall-cmd --zone=public --add-port=5901/tcp --permanent # firewall-cmd --zone=public --add-port=5902/tcp --permanent # firewall-cmd --zone=public --add-port=5903/tcp --permanent 重启防火墙,使开放的端口生效 # systemctl restart firewalld.service 查看被开启的端口 # firewall-cmd --list-ports 使用普通用户启动VNC软件 $ vncserver Password: 设置使用VNC连接服务器的密码 Verify: 再次输入一遍密码 Would you like to enter a view-only password (y/n)? 选择n,以使连接到服务器后可以操作服务器 启动VNC后,在用户家目录下会生成 .vnc 配置文件夹,查看其中的log文件,得到启用的端口号,比如我启动了5901端口。 再使用普通用户在内网服务器上构建反向隧道 $ ssh -N -f -R 4499:localhost:5901 chenlianfu@115.29.105.12 我在aliyun上有一台服务器,以之为跳板,以上命令将内网服务器的5092端口映射到了跳板服务器的4499端口。 查看vncserver的服务情况 $ vncserver -list 关闭编号为:1的vncserver $ vncserver -kill :1 修改vncserver的配置文件~/.vnc/config,尾部添加分辨率信息 geometry=1400x900 再次开启vncserver以获得更好的分辨率支持 $ vncserver

2. 在跳板服务器上的设置

在跳板服务器的防火墙设置中开放4499端口
# firewall-cmd --zone=public --add-port=4499/tcp --permanent
# systemctl restart firewalld.service

在跳板服务器的sshd配置中设置GatewayPorts参数值为yes
# perl -p -i -e 's/.*GatewayPorts.*/GatewayPorts yes/' /etc/ssh/sshd_config
# systemctl restart sshd.service

3. 在家里的笔记本电脑上连接

下载VNC viewer软件,安装完毕后,输入115.29.105.12:4499地址,再输入密码,即可连接到内网服务器的CentOS7桌面。默认画面质量可能较差,可以点击软件的设置图标,在Option选项卡的General栏下的Picture quality菜单中选择High,即可让画面显示清晰。

4. CentOS8下vncserver会出的bug及其解决方法

在CentOS8下安装vnc-server后,第一次能正常使用VNC,但重启服务器后,则可能无法再次启动VNC服务端了,即使重新安装vnc软件也不行。原因是因为Xvnc启动失败。报错如下:

/home/chenlianfu/.vnc/xstartup: line 5: 114069 Terminated /etc/X11/xinit/xinitrc
Killing Xvnc process ID 114063
(EE)
(EE) Backtrace:
(EE) 0: /usr/bin/Xvnc (xorg_backtrace+0x7d) [0x55e88a8250ad]
(EE) 1: /usr/bin/Xvnc (0x55e88a63a000+0x1eeaed) [0x55e88a828aed]
(EE) 2: /usr/lib64/libpthread.so.0 (0x7f8357cf4000+0x12dd0) [0x7f8357d06dd0]
(EE) 3: /usr/bin/Xvnc (_ZN14XserverDesktopD2Ev+0xd3) [0x55e88a789a23]
(EE) 4: /usr/bin/Xvnc (_ZN14XserverDesktopD0Ev+0xd) [0x55e88a789b7d]
(EE) 5: /usr/bin/Xvnc (vncExtensionClose+0x28) [0x55e88a77dfd8]
(EE) 6: /usr/bin/Xvnc (CloseDownExtensions+0x39) [0x55e88a7e8be9]
(EE) 7: /usr/bin/Xvnc (dix_main+0x3ab) [0x55e88a7d910b]
(EE) 8: /usr/lib64/libc.so.6 (__libc_start_main+0xf3) [0x7f8355b366a3]
(EE) 9: /usr/bin/Xvnc (_start+0x2e) [0x55e88a6ace6e]
(EE)
(EE) Segmentation fault at address 0x8
(EE)
Fatal server error:
(EE) Caught signal 11 (Segmentation fault). Server aborting
(EE)

安装mesa软件即可解决:

yum install mesa*

此外,可能还会如下错误而不能成功运行VNC服务:

Failed to import environment: Process org.freedesktop.systemd1 exited with status 1

需要开启相应的服务:

systemctl restart dbus-org.freedesktop.import1.service 

5. 出现Authentication is required to access the PC/SC daemon提示

当画面变黑,弹出Authentication is required to access the PC/SC daemon提示时。可以输入密码来解决。若绝对很烦,执行如下操作:

首先,生成配置文件/etc/polkit-1/rules.d/03-allow-pcscd.rules,内容如下:

polkit.addRule(function(action, subject) {
    if (action.id == "org.debian.pcsc-lite.access_pcsc" ||
        action.id == "org.freedesktop.color-manager.create-device" ||
        action.id == "org.freedesktop.color-manager.create-profile" ||
        action.id == "org.freedesktop.color-manager.delete-device" ||
        action.id == "org.freedesktop.color-manager.delete-profile" ||
        action.id == "org.freedesktop.color-manager.modify-device" ||
        action.id == "org.freedesktop.color-manager.modify-profile" ||
        subject.isInGroup("{wheel}")) {
            return polkit.Result.YES;
    }
});

然后,使用root用户执行命令,将目标用户chenlianfu添加到wheel用户组,并重启相关服务。

# usermod -a -G wheel chenlianfu
# systemctl restart polkit
# systemctl restart pcscd

6. 出现提示The login keyring did not get unlocked when you logged into your computer

当使用google浏览器时,可能弹出窗口,提示密钥环未解锁。考虑删除密钥环,打开google浏览器并按提示重新设置密钥即可。

rm -rf .local/share/keyrings/*

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

1. 简介

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

2. 安装软件

由于SequenceServer软件采用Ruby编程,其部署需要先使用root用户安装所需要依赖的ruby软件。由于当前最新版本SequenceSever 2.1.0版本的安装和使用需要依赖高于3.0.6版本的ruby软件,而Rocky 9.2系统默认安装的ruby软件版本为3.0.4,不能满足需求。因此需要独立安装高版本的ruby软件后,再安装最新版本的SequenceServer软件。

# 首先使用dnf命令安装ruby和rbenv。
sudo dnf install ruby ruby-devel rbenv gem

# 然后,使用rbenv的ruby-build命令安装高版本ruby。
sudo ruby-build --list
sudo ruby-build 3.1.2 /opt/sysoft/ruby-3.1.2

# 最后,使用高版本ruby安装sequenceserver
sudo /opt/sysoft/ruby-3.1.2/bin/gem install sequenceserver

echo 'PATH=/opt/sysoft/ruby-3.1.2/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

3. 使用sequenceserver

3.1 简单使用方法

使用sequenceserver要求安装有NCBI-blast+程序及其数据库。

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

常用参数:
-b | --bin 
    输入ncbi-blast+的bin文件路径

-d | --database_dir
    输入blast数据库路径

-n | --num_threads
    设置使用的CPU线程数

-H | --host
    设置运行程序的主机信息,默认为localhost,则启动程序后,可以在本机上访问localhost:4567。若需要提供远程访问服务,则需要填写对外的IP地址。

-p | --port
    设置使用的端口号,默认为4567。

3.2 提供稳定的网站服务

先准备程序的配置文件/etc/sequenceserver.conf,用于设置程序运行参数和输入数据。其内容示例如下,根据实际情况修改host为对外的IP地址,修改NCBI-Blast+的bin目录路径和数据库文件夹路径,修改防火墙端口开放设置。

---
:host: 10.0.0.5
:port: 4567
:databases_widget: tree
:options:
  :blastn:
    :default:
    - "-task blastn"
    - "-evalue 1e-5"
    :custom:
    - "-task blastn"
    - "-evalue 1e-5 -num_alignments 20"
  :blastp:
    :default:
    - "-evalue 1e-5"
    :custom:
    - "-evalue 1e-5 -num_alignments 20"
  :blastx:
    :default:
    - "-evalue 1e-5"
    :custom:
    - "-evalue 1e-5 -num_alignments 20"
  :tblastx:
    :default:
    - "-evalue 1e-5"
    :custom:
    - "-evalue 1e-5 -num_alignments 20"
  :tblastn:
    :default:
    - "-evalue 1e-5"
    :custom:
    - "-evalue 1e-5 -num_alignments 20"
:num_threads: 32
:num_jobs: 4
:job_lifetime: 43200
:cloud_share_url: https://share.sequenceserver.com/api/v1/shared-job

:bin: "/opt/biosoft/ncbi-blast-2.14.0+/bin"
:database_dir: "/disks/xxx/NCBI_blast_databases"

然后,生成文件/etc/systemd/system/sequenceserver.service,用于作开机启动。其内容如下:

[Unit]
Description=SequenceServer server daemon
Documentation="file://sequenceserver --help" "http://sequenceserver.com/doc"
After=network.target

[Service]
Type=simple
User=root
ExecStart=/opt/sysoft/ruby-3.1.2/bin/sequenceserver -c /etc/sequenceserver.conf
KillMode=process
Restart=on-failure
RestartSec=42s
RestartPreventExitStatus=255

[Install]
WantedBy=multi-user.target

让开机启动配置文件生效,并启动服务。

sudo systemctl restart sequenceserver.service
sudo systemctl enable sequenceserver.service

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隐藏文件夹。其实没有太大意义,只是对完美主义的强迫症犯者有帮助而已。

3. 修改cpan源

cpan
cpan[1]> o conf urllist http://mirrors.163.com/cpan
cpan[2]> o conf commit

生物信息学平台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/openmandriva/3.0/repository/x86_64/non-free/release/megacli-8.02.21-4-omv2015.0.x86_64.rpm
# wget http://mirror.rosalab.ru/openmandriva/3.0/repository/x86_64/media/non-free/release/megacli-8.02.21-4-omv2015.0.x86_64.rpm # yum install megacli-8.02.21-4-omv2015.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,则表示磁盘可能坏掉了。
megalci命令的参数后接其值,中间没有空格。-a参数表示使用的adapter编号。 # megacli -LDInfo -LALL -aAll 此命令查看所有逻辑磁盘的信息。

# megacli -LdPdInfo -a1
此命令列出第2个阵列卡上各逻辑磁盘及其所属的物理磁盘信息。 # megacli -AdpAllInfo -aALL 查看阵列卡信息 # megacli -AdpBbuCmd -aAll 查看阵列卡电池信息

3. 使用megalci命令删除或创建阵列

我有一台服务器,其第一个阵列卡上有3块硬盘发生了损坏,导致10块硬盘组RAID6的逻辑盘数据丢失。现在拔掉损坏的硬盘,将后面位置的2块硬盘拔下补入到前面的硬盘位上,再对剩下的硬盘重新组阵列。

首先,删除第一个阵列卡上的第二个逻辑盘。该逻辑盘由于物理硬盘损坏数据丢失,数据咱也不要了,直接删除它。
# megacli -CfgLdDel -L1 -a0
-L参数接逻辑磁盘的ID编号,-a参数接阵列卡编号。

当拔掉后面的硬盘插入前面损坏盘的槽位时,硬盘状态变为Unconfigured(bad),需要将其变为Unconfigured(good)。将第一阵列卡上的Enclosure Device ID: 3/Slot Number: 2硬盘变为Unconfigured(good)。
# megacli -PDMakeGood -PhysDrv[3:2] -a0
# megacli -PDMakeGood -PhysDrv[3:4] -a0

若插拔硬盘换位发生在删除逻辑分区之前,则移位的硬盘没有删除逻辑分区信息,变为Foreign配置,需要清除其Foreign信息。若不清楚Foreign信息,后续使用其硬盘组RAID会报错:Mix of configured and unconfigured drives are not possible.
# megacli -CfgForeign -Scan -a0
# megacli -CfgForeign -Clear -a0
将外源磁盘阵列导入到阵列卡中
# megacli -CfgForeign -Import -a0

对剩下的7块硬盘组RAID6,并使其中一个硬盘为热备盘。这些磁盘可能都比较脆弱了,可能容易坏,做非常安全的RAID策略。
# megacli -CfgLdAdd -r6[3:1,3:2,3:3,3:4,3:5,3:6] WB ADRA Direct CachedBadBBU -Hsp[3:7] -a0
设置WB ADRA Direct CachedBadBBU等缓存策略参数为该逻辑盘的默认策略。

对磁盘换成策略解释如下:

WT/WB: 设置磁盘写入策略。WT为Write Through,即直写,表示将数据写入硬盘时,不经过阵列卡缓存直接写入,是默认策略;WB为Write Back,即回写,表示数据写入硬盘时,先写入阵列卡缓存,当缓存写满时再写入硬盘。毫无疑问,缓存写入速度快,将数据写入缓存能提高读写速度,极大减少真实的磁盘写入时间。这样使用回写策略既能提高逻辑盘写入性能,也能增加磁盘寿命。使用回写策略,数据可能会留在缓存,在服务器断电且阵列卡没有电池时会导致数据丢失。
NORA/RA/ADRA:设置磁盘读取策略。NORA为NO Read Ahead,即不预读;RA为Read Ahead,即强制预读,在进行读取操作时,预先把后面顺序的数据载入阵列卡卡缓存,这样能在顺序读写环境提供很好的性能,但是在随机读的环境中反而降低读取性能,它适合文件系统,而不适合数据库系统;ADaptive Read Ahead,即自适应预读,在缓存和I/O空闲时进行预读,是默认策略。
Direct/Cached:Direct表示读取操作不缓存到阵列卡缓存,是默认策略;Cached表示读取操作先缓存到阵列卡,这有利于数据的再次快速读取。
CachedBadBBU/NoCachedBadBBU:CachedBadBBU为Write Cache OK if Bad BBU,即在电池损坏时依然采取回写缓存策略;后者表示当电池损坏时采取只写缓存策略。

在本台服务器上,第二个阵列卡由于电池容量低需要更换,导致该阵列卡上第一个逻辑磁盘的写入策略变为Write Through,通过megacli命令修改该阵列卡上第一个逻辑磁盘的缓存策略:

# megacli -LDSetProp CachedBadBBU -L0 -a1

使用高版本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和密码来控制远程服务器。