Docker封裝生物信息學(xué)分析有參流程

1.環(huán)境配置

下載docker到服務(wù)器委刘,并啟動(dòng)

問題:

1.docker權(quán)限

2.選擇系統(tǒng)

3.軟件安裝

4.掛載加上目錄 -v

5.json文件參數(shù)配置

6.鏡像與容器

7.封裝

容器封裝鏡像命令

docker commit 容器ID rna:v1.0

首先后臺(tái)運(yùn)行鏡像

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

進(jìn)入容器

docker exec -it 容器ID /bin/bash

配置容器環(huán)境

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

配置環(huán)境變量

sudo vim /etc/profile #打開環(huán)境變量配置文件

增加下面內(nèi)容到該文件最后

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

使環(huán)境生效

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)

從另一個(gè)服務(wù)器復(fù)制文件到其他服務(wù)器命令

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

從服務(wù)器復(fù)制文件到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

網(wǎng)址  [https://github.com/dayedepps/q30/find/master](https://github.com/dayedepps/q30/find/master)

fastq模塊也在這個(gè)網(wǎng)址下

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目錄下可執(zhí)行程序路徑

注意要先添加STAR軟件路徑到環(huán)境變量

18.報(bào)錯(cuò)02-alignSummary.sh: line 18: bc: command not found

解決:apt-get install bc

19.STAR比對(duì)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 腳本運(yùn)行正常  生成樣本轉(zhuǎn)錄本文件

bash 03-gtfMerge.sh 腳本運(yùn)行正常  

轉(zhuǎn)錄本重新組裝cuffmerge、gffread定量

Cuffcompare是將組裝后的轉(zhuǎn)錄本與參考基因組的轉(zhuǎn)錄本進(jìn)行比較,從而對(duì)比對(duì)結(jié)果進(jìn)行分類

對(duì)于stringtie組裝后的gtf文件卿嘲,想將組裝后的轉(zhuǎn)錄本的序列從對(duì)應(yīng)的參考基因組上提取出來,這時(shí)就可以用gffread

21.cuffdiff轉(zhuǎn)錄本定量

bash  04-dge.sh  

22.篩選差異基因閾值 q-value < 0.05

23.dge基因圖片展示

bash 05-cuffPlot.sh

報(bào)錯(cuò)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")

報(bào)錯(cuò)

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正常運(yùn)行圖片生成正常

生成DGE目錄

24魄揉,dge基因富集分析GO KEGG

報(bào)錯(cuò) 缺失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富集分析報(bào)錯(cuò)

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.鏡像導(dǎo)出入導(dǎo)入

整個(gè)流程測試完成后鏡像name為rna:1.0

使用save命令將鏡像打包成tar文件,cp到其他服務(wù)器用load命令導(dǎo)入金赦,完成流程部署

鏡像導(dǎo)入: docker save -o rna_seq.tar rnaseq:v2.0

鏡像導(dǎo)出:docker load -i rna_seq.tar

27.融合基因分析

數(shù)據(jù)庫下載

[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 報(bào)錯(cuò)

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

安裝缺少perl模塊

install Set::IntervalTree

再次報(bào)錯(cuò)缺少模塊

install  JSON::XS

再次報(bào)錯(cuò)

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

數(shù)據(jù)庫版本

重新下載star-fusion-1.9.0軟件 STAR暫時(shí)不換 數(shù)據(jù)庫版本符合

下載地址:

[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)

不用編譯

再次運(yùn)行腳本

* 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)

進(jìn)行進(jìn)度json文件生成

思路:

每運(yùn)行一個(gè)模塊音瓷,生成該模塊的結(jié)果json,并判斷是否出錯(cuò)夹抗,通過err = 0控制

通過config文件傳參绳慎,得到樣本,任務(wù)ID漠烧,模塊名稱杏愤,索引等信息,

新建固定字典已脓,通過上面json文件里的值更新字典珊楼,并生成結(jié)果json文件

運(yùn)行腳本例子:

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

修改流程

1.新建run_rna_seq.py 整理json 并生成job配置文件,運(yùn)行pipeline.sh

2.修改pipeline.sh 添加step.py 目的流程中增加進(jìn)度反饋度液,

每運(yùn)行一個(gè)bash腳本厕宗,判斷err,并進(jìn)行下一步bash

3.發(fā)送QC報(bào)告與結(jié)果報(bào)告

run_rna_seq.py 總運(yùn)行腳本--目的 生成最終json文件 并運(yùn)行bash模塊

sendMessage.sh 發(fā)送信息腳本里調(diào)用sh為另一個(gè)bash腳本

step.py 判斷出錯(cuò)

發(fā)送QC報(bào)告

將模板QC_json文件填充堕担,然后發(fā)送

發(fā)送結(jié)題報(bào)告

流程測試問題:

1.中文顯示問題:導(dǎo)致發(fā)送進(jìn)度日志報(bào)錯(cuò)

export LANG="C.UTF-8"

source /etc/profile

使用Dockerfile 生成鏡像

docker build -t second:v1.0 .

然后集群啟動(dòng)bash腳本 通過-v 掛載目錄 運(yùn)行成功已慢!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市霹购,隨后出現(xiàn)的幾起案子佑惠,更是在濱河造成了極大的恐慌,老刑警劉巖齐疙,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兢仰,死亡現(xiàn)場離奇詭異,居然都是意外死亡剂碴,警方通過查閱死者的電腦和手機(jī)把将,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來忆矛,“玉大人察蹲,你說我怎么就攤上這事请垛。” “怎么了洽议?”我有些...
    開封第一講書人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵宗收,是天一觀的道長。 經(jīng)常有香客問我亚兄,道長混稽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任审胚,我火速辦了婚禮匈勋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘膳叨。我一直安慰自己洽洁,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開白布菲嘴。 她就那樣靜靜地躺著饿自,像睡著了一般。 火紅的嫁衣襯著肌膚如雪龄坪。 梳的紋絲不亂的頭發(fā)上昭雌,一...
    開封第一講書人閱讀 49,111評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音健田,去河邊找鬼城豁。 笑死,一個(gè)胖子當(dāng)著我的面吹牛抄课,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播雳旅,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼跟磨,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了攒盈?” 一聲冷哼從身側(cè)響起抵拘,我...
    開封第一講書人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎型豁,沒想到半個(gè)月后僵蛛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡迎变,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年充尉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片衣形。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡驼侠,死狀恐怖姿鸿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情倒源,我是刑警寧澤苛预,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站笋熬,受9級(jí)特大地震影響热某,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜胳螟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一昔馋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧旺隙,春花似錦绒极、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至周拐,卻和暖如春铡俐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背妥粟。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來泰國打工审丘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人勾给。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓滩报,卻偏偏與公主長得像,于是被迫代替她去往敵國和親播急。 傳聞我的和親對(duì)象是個(gè)殘疾皇子脓钾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345