Docker封装生物信息学分析有参流程

1.环境配置

下载docker到服务器,并启动

问题:

1.docker权限

2.选择系统

3.软件安装

4.挂载加上目录 -v

5.json文件参数配置

6.镜像与容器

7.封装

容器封装镜像命令

docker commit 容器ID rna:v1.0

首先后台运行镜像

docker run -itd --name rna_test -v /data/xczhang/RNA_seq/pipline/RNA-seq_pipeline:/data/RNA  ubuntu

进入容器

docker exec -it 容器ID /bin/bash

配置容器环境

1.apt-getinstall vim

2.apt-getinstall wget

3.安装R

apt-getinstall  r-base

4.安装java

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%[2Fwww.oracle.com%2F;](http://2fwww.oracle.com%2f%3b/)oraclelicense=accept-securebackup-cookie" "[http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz](http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz)"

tar -zxvf jdk-8u161-linux-x64.tar.gz #解压

#重命名为JDK8

mv jdk1.8.0_161 jdk8

配置环境变量

sudo vim /etc/profile #打开环境变量配置文件

增加下面内容到该文件最后

export JAVA_HOME=/usr/local/src/jdk8

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

使环境生效

source /etc/profile

2.软件安装

5.安装FastQC-0.11.5

nohup wget -c[http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.5.zip](http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.5.zip)

unzip 不用编译直接使用

6.Trimmomatic-0.38安装

wget[http://www.usadellab.org/cms/uploads/supplementary/Trimmomatic/Trimmomatic-0.38.zip](http://www.usadellab.org/cms/uploads/supplementary/Trimmomatic/Trimmomatic-0.38.zip)

java -jar trimmomatic-0.38.jar

7.samtools-1.4下载

wget [https://github.com/samtools/samtools/releases/download/1.4/samtools-1.4.tar.bz2](https://github.com/samtools/samtools/releases/download/1.4/samtools-1.4.tar.bz2)

./configure --prefix=/home/vip47/biosoft/samtools-1.9

make

make install

8.hisat2-2.1.0下载

直接可以用

wget

[ftp://ftp.ccb.jhu.edu/pub/infphilo/hisat2/downloads/hisat2-2.1.0-Linux_x86_64.zip](ftp://ftp.ccb.jhu.edu/pub/infphilo/hisat2/downloads/hisat2-2.1.0-Linux_x86_64.zip)

9.StringTie下载

直接可以用

wget   [http://ccb.jhu.edu/software/stringtie/dl/stringtie-1.3.3b.Linux_x86_64.tar.gz](http://ccb.jhu.edu/software/stringtie/dl/stringtie-1.3.3b.Linux_x86_64.tar.gz)

10.cufflinks下载

直接可以用

wget

[http://cole-trapnell-lab.github.io/cufflinks/assets/downloads/cufflinks-2.2.1.Linux_x86_64.tar.gz](http://cole-trapnell-lab.github.io/cufflinks/assets/downloads/cufflinks-2.2.1.Linux_x86_64.tar.gz)

从另一个服务器复制文件到其他服务器命令

scp cufflinks-2.2.1.Linux_x86_64.tar.gz  zhangxc@IP:/data/xczhang/RNA_seq/pipline/RNA-seq_pipeline/PE/

从服务器复制文件到docker容器命令

docker cp cufflinks-2.2.1.Linux_x86_64.tar.gz rna_test:/home/ubuntu/SSD/software/

11.STAR下载

直接可以用

wget -c[https://github.com/alexdobin/STAR/archive/2.7.3a.tar.gz](https://github.com/alexdobin/STAR/archive/2.7.3a.tar.gz)

12.STAR-Fusion下载

wget[https://github.com/STAR-Fusion/STAR-Fusion/releases/download/STAR-Fusion-v1.8.1/STAR-Fusion-v1.8.1.FULL.tar.gz](https://github.com/STAR-Fusion/STAR-Fusion/releases/download/STAR-Fusion-v1.8.1/STAR-Fusion-v1.8.1.FULL.tar.gz)

13.jq命令安装

apt-get install jq

14.q30下载q30-master/q30.py

网址  [https://github.com/dayedepps/q30/find/master](https://github.com/dayedepps/q30/find/master)

fastq模块也在这个网址下

15.python安装

apt-get install python

pip命令未找到

/etc/apt/sources.list 文件添加软件源

wget[https://bootstrap.pypa.io/get-pip.py](https://bootstrap.pypa.io/get-pip.py)

下载并 python get-pip.py

16.homo基因组下载建立hisat索引

直接下载hisat2索引文件

mwget -n 30[https://cloud.biohpc.swmed.edu/index.php/s/grch37_tran/download](https://cloud.biohpc.swmed.edu/index.php/s/grch37_tran/download)

17.STAR-fusion安装

安装conda

conda install -c bioconda star-fusion

从pkgs中找到 STAR-Fusion-v1.8.1.FULL.tar.gz 重新解压修改bin目录下可执行程序路径

注意要先添加STAR软件路径到环境变量

18.报错02-alignSummary.sh: line 18: bc: command not found

解决:apt-get install bc

19.STAR比对fa文件

wget   

[ftp://ftp.ensembl.org/pub/release-75/fasta/homo_sapiens/dna/Homo_sapiens.GRCh37.75.dna.toplevel.fa.gz](ftp://ftp.ensembl.org/pub/release-75/fasta/homo_sapiens/dna/Homo_sapiens.GRCh37.75.dna.toplevel.fa.gz)

gtf文件

20.cufflinks测试

bash 03-assemblyCuff.sh 脚本运行正常  生成样本转录本文件

bash 03-gtfMerge.sh 脚本运行正常  

转录本重新组装cuffmerge、gffread定量

Cuffcompare是将组装后的转录本与参考基因组的转录本进行比较,从而对比对结果进行分类

对于stringtie组装后的gtf文件,想将组装后的转录本的序列从对应的参考基因组上提取出来,这时就可以用gffread

21.cuffdiff转录本定量

bash  04-dge.sh  

22.筛选差异基因阈值 q-value < 0.05

23.dge基因图片展示

bash 05-cuffPlot.sh

报错R包缺失there is no package called 'cummeRbund'

安装依赖包install.packages("RSQLite") 

install.packages("ggplot2") 

install.packages("plyr") 

install.packages("fastcluster") 

install.packages("BiocManager")

BiocManager::install("rtracklayer")

BiocManager::install("Gviz")

BiocManager::install("BiocGenerics")

BiocManager::install("cummeRbund")

报错

library安装未成功

apt-get install libcurl4-gnutls-dev

apt-get install libxml2-dev

apt-get install openssl 

apt-get install libssl-dev

安装成功!

bash 05-cuffPlot.sh正常运行图片生成正常

生成DGE目录

24,dge基因富集分析GO KEGG

报错 缺失R包

1.there is no package called 'topGO'

2.there is no package called 'clusterProfiler'

3.there is no package called 'org.Hs.eg.db'

解决办法:

BiocManager::install("topGO")

BiocManager::install("Rgraphviz")

BiocManager::install("clusterProfiler")

BiocManager::install("org.Hs.eg.db")

25.KEGG富集分析报错

Error in setReadable(kegg, OrgDb = org.Hs.eg.db, keytype = "ENTREZID") :

  unused argument (keytype = "ENTREZID")

解决办法:

kegg2<-setReadable(kegg, OrgDb = org.Hs.eg.db, keytype = "ENTREZID")

改为:

kegg2<-setReadable(kegg, OrgDb = org.Hs.eg.db, keyType = "ENTREZID")

26.镜像导出入导入

整个流程测试完成后镜像name为rna:1.0

使用save命令将镜像打包成tar文件,cp到其他服务器用load命令导入,完成流程部署

镜像导入: docker save -o rna_seq.tar rnaseq:v2.0

镜像导出:docker load -i rna_seq.tar

27.融合基因分析

数据库下载

[https://data.broadinstitute.org/Trinity/CTAT_RESOURCE_LIB/__genome_libs_StarFv1.8/GRCh37_gencode_v19_CTAT_lib_Oct012019.plug-n-play.tar.gz](https://data.broadinstitute.org/Trinity/CTAT_RESOURCE_LIB/__genome_libs_StarFv1.8/GRCh37_gencode_v19_CTAT_lib_Oct012019.plug-n-play.tar.gz) 

选择版本下载

bash 06-fusionDetc.sh 报错

Can't locate Set/IntervalTree.pm in @INC (you may need to install the Set::IntervalTree module)

安装缺少perl模块

install Set::IntervalTree

再次报错缺少模块

install  JSON::XS

再次报错

Argument "brkpt_donorA" isn't numeric in preincrement (++) at /home/ubuntu/SSD/software/star-fusion/lib/STAR-Fusion/util/STAR-Fusion.map_chimeric_reads_to_genes line 379, <$fh> line 1.

Can't use an undefined value as an ARRAY reference at /home/ubuntu/SSD/software/star-fusion/lib/STAR-Fusion/util/STAR-Fusion.map_chimeric_reads_to_genes line 511, <$fh> line 1.

谷歌显示版本未兼容

解决办法:

软件版本:star-fusion-1.6.0-0.tar.bz2

STAR-2.7.3a

数据库版本

重新下载star-fusion-1.9.0软件 STAR暂时不换 数据库版本符合

下载地址:

[https://github.com/STAR-Fusion/STAR-Fusion/releases/download/STAR-Fusion-v1.9.0/STAR-Fusion.v1.9.0.FULL.tar.gz](https://github.com/STAR-Fusion/STAR-Fusion/releases/download/STAR-Fusion-v1.9.0/STAR-Fusion.v1.9.0.FULL.tar.gz)

不用编译

再次运行脚本

* STAR-Fusion complete.  See output: /data/RNA/RNA_test/nCov9/FusionDetc/star-fusion.fusion_predictions.tsv (or .abridged.tsv version)

![image](https://upload-images.jianshu.io/upload_images/14081483-7b8c71155a26459c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

进行进度json文件生成

思路:

每运行一个模块,生成该模块的结果json,并判断是否出错,通过err = 0控制

通过config文件传参,得到样本,任务ID,模块名称,索引等信息,

新建固定字典,通过上面json文件里的值更新字典,并生成结果json文件

运行脚本例子:

python star_pipline.py -i /data/analysis-dir/config.json

修改流程

1.新建run_rna_seq.py 整理json 并生成job配置文件,运行pipeline.sh

2.修改pipeline.sh 添加step.py 目的流程中增加进度反馈,

每运行一个bash脚本,判断err,并进行下一步bash

3.发送QC报告与结果报告

run_rna_seq.py 总运行脚本--目的 生成最终json文件 并运行bash模块

sendMessage.sh 发送信息脚本里调用sh为另一个bash脚本

step.py 判断出错

发送QC报告

将模板QC_json文件填充,然后发送

发送结题报告

流程测试问题:

1.中文显示问题:导致发送进度日志报错

export LANG="C.UTF-8"

source /etc/profile

使用Dockerfile 生成镜像

docker build -t second:v1.0 .

然后集群启动bash脚本 通过-v 挂载目录 运行成功!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343