美文网首页Linux 生物信息学生信软件安装
Docker封装生物信息学分析有参流程

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

作者: 儒雅随和王小板 | 来源:发表于2020-06-12 17:26 被阅读0次

    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://img.haomeiwen.com/i14081483/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 挂载目录 运行成功!

    相关文章

      网友评论

        本文标题:Docker封装生物信息学分析有参流程

        本文链接:https://www.haomeiwen.com/subject/xedntktx.html