前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >计算资源及编程-仅针对生信人员

计算资源及编程-仅针对生信人员

作者头像
生信技能树
发布2018-03-09 09:26:35
2.1K0
发布2018-03-09 09:26:35
举报
文章被收录于专栏:生信技能树

第 5 章 计算资源及编程

5.1 硬件配置

理论上在个人Windows电脑上面做生物信息学数据分析是不实际的,因为太多的生物信息学相关软件的开发者对windows并不熟练,没办法提供完善的基于windows操作系统的软件。 而且个人Windows电脑配置肯定不会太高,一般的组学测序数据都是10~500G一个样本,而且很多软件运行的时候对内存要求很高,最后这些数据的分析过程会非常耗时,个人电脑在硬盘,内存,cpu方面均不足以承担这个重任。

所以一般建议使用配置比较高的服务器,而且建议给服务器安装linux系统,ubuntu及centos均可。

  • 单人使用,人民币2万以内,可以配置16线程+64G内存+4T硬盘
  • 1到5人课题组,人民币10~50万,可以配置64线程+512G内存+64T硬盘
  • 5人以上的课题组,一般是学校的超算中心有专门的IT来负责服务器。

服务器主要用来做计算,数据分析的时候使用,并不需要直接接触它。所以大家会用个人电脑来远程登录到服务器,在上面执行各种各样的数据处理命令。 如果是windows电脑,那么建议安装winscp+xshell来连接服务器。 如果是MAC电脑,建议用自带的终端即可,还可以用FileZilla软件进行文件传输。

如果是超算中心提供账号即可使用,不需要看攻略了,自然会有专门的对应的培训。 如果是1到5人课题组,找到练习,IBM等商家自然会给详细报价,设置会上门进行ppt讲解。 那么需要在本文详细讲解的就是个人服务器,预算2万左右,改如何配置。

生信领域所涉及的计算往往是非持续性的,我相对较熟悉的RNASeq中计算量较大的就是比对步骤了,而比对往往只需要一次就可以! 这导致配备了一台豪华服务器使用率缺很低,用更少的钱做更多的事,配置一台可用于生物分析的PC机! 这篇配置适用于生物信息实验室、学校、研究所这样的单位,没有专业机房和运维人员,服务器使用率不高,经费有限等请场景下,不差钱的豪门请回避。

以下数据来自2017年6月22日京东数据

配件

配置

单价

主板

微星(MSI)X99A RAIDER 主板 (Intel X99/LGA2011-3)

2299

CPU

英特尔(Intel)Extreme系列 酷睿八核i7-6900K 2011-V3

7699

内存

金士顿(Kingston)骇客神条 Fury系列 DDR4 2400 16G

999*8=7992

电源

安钛克(Antec)额定650W EAG650 PRO 模组电源

649

散热器

九州风神(DEEPCOOL)大霜塔 CPU散热器

219

硬盘

西部数据(WD)红盘 8TB SATA6Gb/s 128Mb

2999

机箱

酷冷至尊(CoolerMaster)特警342U3版

209

总价

配置

总价

优缺点

8核128G内存8T存储

22066

适合小基因组de novo分析,有参比对分析,主要针对的是de novo需要大内存

6核128G内存8T存储

18666

比上一套速度慢些,性价比较高,适用于数据不多情况

8核64G内存8T存储

18070

常规分析+小数据存储

8核64G内存2T存储

15520

常规分析,存储能力几乎没有

6核64G内存2T存储

12120

小数据分析,会有速度影响不过影响不大

10核128G内存8T存储

29366

速度相对快一些,性价比较低,比上不足比下有余

其中存储是独立于服务器配置的,取决于课题组项目的多少,可以进行按需扩容,下面给出一个42T的raid5磁盘阵列的配置方案,可用于普通主板,配置简单,适用于数据备份存储! 磁盘阵列,麦沃(MAIWO)K8FSAS 全铝 八盘位磁盘阵列柜 单价4999 硬盘选择希捷(SEAGATE)酷鹰系列 6TB 7200转256M总计1599*8=12792 最后总价是17791,当然,大部分实验室可能并没有这么多的数据,不需要配置这个存储。

5.2 软件安装

大部分的数据分析最重要的就是学习使用各种各样的软件了,一般生物信息学软件发布的时候会提供多种种形式以供下载,比如sratoolkit

代码语言:javascript
复制
sratoolkit.2.6.3-centos_linux64.tar.gz 2016-05-25 17:24   61M  
sratoolkit.2.6.3-mac64.tar.gz          2016-05-25 17:25   52M  
sratoolkit.2.6.3-ubuntu64.tar.gz       2016-05-25 17:25   61M  
sratoolkit.2.6.3-win64.zip             2016-05-25 17:23   27M 

又或者 NCBI的 blast

代码语言:javascript
复制
ncbi-blast-2.6.0+-1.x86_64.rpm  172 MB  
ncbi-blast-2.6.0+-src.tar.gz    19.1 MB 
ncbi-blast-2.6.0+-src.zip   22.3 MB 
ncbi-blast-2.6.0+-win64.exe 79.7 MB 
ncbi-blast-2.6.0+-x64-linux.tar.gz  212 MB  
ncbi-blast-2.6.0+-x64-macosx.tar.gz 122 MB  
ncbi-blast-2.6.0+-x64-win64.tar.gz  79.5 MB 
ncbi-blast-2.6.0+.dmg   123 MB  

可以看到软件开发单位提供的有src后缀的源代码文件,还有适用于各个操作系统的预编译版本

5.2.1 二进制软件(预编译版本)

作为新手,建议大家直接根据自己的系统下载预编译版本软件,并且直接解压就可以使用啦。 例子如下:

代码语言:javascript
复制
cd ~/biosoft
mkdir sratoolkit &&  cd sratoolkit
wget http://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/2.6.3/sratoolkit.2.6.3-centos_linux64.tar.gz
tar zxvf sratoolkit.2.6.3-centos_linux64.tar.gz
~/biosoft/sratoolkit/sratoolkit.2.6.3-centos_linux64/bin/fastdump -h ## 

我的系统是linux,所以用上面的代码软件就安装成功可以使用啦,是不是非常简单呢。

5.2.2 源码软件

一般的开源软件发布的时候肯定会把源代码放出来,如果是在linux系统下以源代码方式安装软件,那么一般自己的linux系统要有gcc编译器,还需要有一些库文件,这也是大多数新手被坑的地方。

源代码安装三部曲是:

  • step1:配置 ./configure
  • step2:编译 make
  • step3:安装 sudo make install

这个时候就需要对计算机的操作系统有一定的了解了,比如第一个步骤可以设置–prefiex=安装路径,参数指定软件编译后的可执行文件放在具体哪个路径下,默认的路径需要有root权限。 而第二步经常会遇到的库文件缺失,比如安装bwa软件的zlib,安装samtools的 等等。 总之遇到的坑越多,学到的知识越多,只是对初学者来说,这些知识点是否有必要学习,是否应该这么早学习这些。 如果直接用bioconda来管理生物信息学软件,这些坑就可以避免啦。 例子如下:

代码语言:javascript
复制
cd ~/biosoft
mkdir samtools &&  cd samtools
wget https://github.com/samtools/samtools/releases/download/1.3.1/samtools-1.3.1.tar.bz2 
tar xvfj samtools-1.3.1.tar.bz2 
cd samtools-1.3.1 
./configure --prefix=/home/jianmingzeng/biosoft/myBin
make
make install
~/biosoft/myBin/bin/samtools --help
~/biosoft/myBin/bin/plot-bamstats --help

5.2.3 系统自带软件中心

大家都知道,操作系统只是一个生态环境而已,没有上面丰富多彩的软件,它的用处很有限,就好像购买之初的手机,不下载QQ,微信,音频视频软件,根本没办法玩。同样的,做生物信息学数据分析也是如此。 唯一比较麻烦的事情是我们想安装的软件不是QQ、微信这种高频软件,而是科研相关的生物信息学数据分析软,大部分软件都不在系统自带软件中心。不过还是需要了解一下。 首先,不同的系统,安装方式不一样,windows基本没有自带软件中心,MAC有appstore,但是生物信息学相关的很少,linux根据发行版不一样,安装命令不一样,ubuntu的用apt-get,centos的用yum,其余的自己去搜索了解即可。

5.2.4 conda软件管理

正是因为软件安装的各种坑,有些软件所需环境的配置同样令人头疼,会不断报错提醒你那些东西没有安装。 而系统自带的软件中心又不太可能包含所有的软件,所以出现了conda这样的软件管理中心来弥补,详情请看[conda 官网(]https://bioconda.github.io/)

bioconda里面几乎涵盖了引用率较高的,好用的工具的打包资源,一键式安装,并且各自依赖的环境相互分隔。 每次使用source activate env_name 来激活,使用source deactivate 来退出。 具体软件列表见:https://anaconda.org/bioconda/repo 但是列表不支持搜索,可以去它的github里面去搜索 https://bioconda.github.io/

首先需要安装这个conda 在官网找到安装包:复制链接,在linux下执行如下代码:

代码语言:javascript
复制
wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh
sh Miniconda2-latest-Linux-x86_64.sh

之后出现yes /no 一律选择yes,这样会默认在你的home目录下新建一个miniconda2的文件夹,然后一切默认即可~ 而且默认修改了你的环境变量文件, 即bashrc文件:输入source ~/.bashrc这样conda命令就可以使用了.

然后就可以用conda来安装其它软件,比如cutadapt,如下图所示:

然后进入miniconda2文件夹里面的pkgs文件夹下面找到安装好的cutadapt软件,直接使用即可: python /home/jmzeng/miniconda2/pkgs/cutadapt-1.10-py27_0/bin/cutadapt –help 大功告成!!!

当然,也并不是所有的生物信息学相关软件都在conda的安装市场里面,如果要详细掌握它的用法,可以自己慢慢研究它的说明书,一些简单的命令如下:

代码语言:javascript
复制
conda search bwa查看可选版本 
在安装时输入conda install bwa=版本号
conda list 查看所有安装的软件
conda update 软件名       可以对软件进行升级:eg.    conda update bwa
conda remove 卸载已经安装的软件

5.2.5 语言类软件(包)

比如perl,R,python,java,matlab,ruby,C等等

  • 其中C源码就是./configure,make,make install,也有的就是make,取决于readme,这个也是报错最多的,一般就是没有权限,缺库,很头疼。Bwa/samtools/perl/python
  • 然后perl和python软件呢,主要就是模块依赖的问题。Htseq/macs/circos
  • R,java,软件非常简单了。Haploview/fastqc/Trimmomatic
  • matlab软件,你要是在windows界面用到还好,想去linux用,也折腾好几个星期。
  • ruby其它我没有用过啦。

我曾经在论坛上面发过一千个生物信息学软件安装,http://www.biotrainee.com/thread-856-1-1.html

5.3 环境变量

Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。 通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义。 环境变量是全局的,设置好的环境变量可以被所有当前用户所运行的程序所使用。 用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。

环境变量有很多,需要重点理解的就是PATH,很多时候大家看到教程某些软件的使用,比如

代码语言:javascript
复制
cd tmp/chrX_Y/hg19/
wget http://hgdownload.cse.ucsc.edu/goldenPath/hg19/chromosomes/chrX.fa.gz  
wget http://hgdownload.cse.ucsc.edu/goldenPath/hg19/chromosomes/chrY.fa.gz 
gunzip chrX.fa.gz
gunzip chrY.fa.gz
~/biosoft/bwa/bwa-0.7.15/bwa index chrX.fa
~/biosoft/bwa/bwa-0.7.15/bwa mem -t 5 -M chrX.fa read*.fa >read.sam
samtools view -bS read.sam >read.bam
samtools flagstat read.bam
samtools sort -@ 5 -o read.sorted.bam read.bam
samtools view -h -F4 -q 5 read.sorted.bam |samtools view -bS|samtools rmdup - read.filter.rmdup.bam
samtools index read.filter.rmdup.bam
samtools mpileup -ugf ~/tmp/chrX_Y/hg19/chrX.fa read.filter.rmdup.bam |bcftools call -vmO z -o read.bcftools.vcf.gz

bwa软件就没有添加到环境变量,所以需要用全路径,指明使用电脑里面什么地方的bwa软件来做数据分析。

而把安装好的软件添加到环境变量的方法有:

5.3.1 第一种方法:

代码语言:javascript
复制
export PATH=/usr/local/webserver/mysql/bin:$PATH  ## 先添加
echo $PATH        ### 再查看

上述方法的PATH 在终端关闭后就会消失。所以还是建议通过编辑/etc/profile来改PATH,也可以修改家目录下的.bashrc(即:~/.bashrc)。

5.3.2 第二种方法:

代码语言:javascript
复制
vim /etc/profile
在最后,添加:
export PATH="/usr/local/webserver/mysql/bin:$PATH"
保存,退出,然后运行:                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
source /etc/profile,不报错则成功。

当然,还有很多其它的环境变量,如下:

代码语言:javascript
复制
PATH:             决定了shell将到哪些目录中寻找命令或程序
ROOTPATH:     这个变量的功能和PATH相同,但它只罗列出超级用户(root)键入命令时所需检查的目录。
HOME:            当前用户主目录
USER:               查看当前的用户
LOGNAME:    查看当前用户的登录名。
UID:                当前用户的识别字,取值是由数位构成的字串。
SHELL:           是指当前用户用的是哪种Shell。
TERM :           终端的类型。
PWD                 当前工作目录的绝对路径名,该变量的取值随cd命令的使用而变化。
MAIL:             是指当前用户的邮件存放目录。
HISTSIZE:     是指保存历史命令记录的条数
HOSTNAME: 是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。
PS1:              是基本提示符,对于root用户是#,对于普通用户是$,也可以使用一些更复杂的值。
PS2:              是附属提示符,默认是“>”。可以通过修改此环境变量来修改当前的命令符,比如下列命令会将提示符
                        修改成字符串“Hello,My NewPrompt :) ”。# PS1=" Hello,My NewPrompt :) "
IFS:               输入域分隔符。当shell读取输入时,用来分隔单词的一组字符,它们通常是空格、制表符和换行符。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-08-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第 5 章 计算资源及编程
    • 5.1 硬件配置
      • 5.2 软件安装
        • 5.2.1 二进制软件(预编译版本)
        • 5.2.2 源码软件
        • 5.2.3 系统自带软件中心
        • 5.2.4 conda软件管理
        • 5.2.5 语言类软件(包)
      • 5.3 环境变量
        • 5.3.1 第一种方法:
        • 5.3.2 第二种方法:
    相关产品与服务
    腾讯云 BI
    腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档