• Docker初探:利用Docker运行samtools


    # Dockerfile 文件
    
    From ubuntu:18.04
    LABEL maintainer="luo <@ibnesayeed>"
    
    WORKDIR /app
    
    RUN apt-get update
    RUN apt-get install -y samtools
    COPY runsamtools.py /app/
    RUN chmod 777 runsamtools.py
    
    ENTRYPOINT ["./runsamtools.py"]
    # runsamtools.py 文件
    
    #!/usr/bin/env python
    import sys, os
    
    sam = sys.argv[1]
    bam = sys.argv[2]
    
    ans = os.system("samtools view -bS "+sam+' > '+bam)
    
    print("well done runsamtools")

     跟着Dockerfile描述的过成,Docker创建一个类似虚拟机的环境,里面装好了runsamtools.py这个脚本要运行需要的东西。

    写好了Dockerfile,准备好相关文件后,就创建image

    docker image build -t test2_docker:2.0 .
    
    lgh@n100:~/learnDocker/docker_test2$ docker image build -t test2_docker:2.0 .
    Sending build context to Docker daemon  3.072kB
    Step 1/8 : From ubuntu:18.04
     ---> 20bb25d32758
    Step 2/8 : LABEL maintainer="luo <@ibnesayeed>"
     ---> Using cache
     ---> b9a27f206137
    Step 3/8 : WORKDIR /app
     ---> Using cache
     ---> 9fc1b9cdab27
    Step 4/8 : RUN apt-get update
     ---> Using cache
     ---> cb459d9b1272
    Step 5/8 : RUN apt-get install -y samtools
     ---> Using cache
     ---> ddc302bf1173
    Step 6/8 : COPY runsamtools.py /app/
     ---> Using cache
     ---> 2430e293231b
    Step 7/8 : RUN chmod 777 runsamtools.py
     ---> Running in f848bfae98ff
    Removing intermediate container f848bfae98ff
     ---> 589f25feb073
    Step 8/8 : ENTRYPOINT ["./runsamtools.py"]
     ---> Running in 99de85f31e02
    Removing intermediate container 99de85f31e02
     ---> 0f307b71f219
    Successfully built 0f307b71f219
    Successfully tagged test2_docker:2.0
    

     成功后运行这个装在Docker中的脚本:

    docker run -v /simm/home/lgh/lgh/gatk_pegasus:/app/files -it --rm test2_docker:2.0 /app/files/test_pe_ans.sam /app/files/create_by_docker.bam

     这里要考虑一个Docker容器和宿主机之间沟通的问题,Dockerfile中指定这个‘虚拟机’的WORKDIR是/app,这里将本地要处理文件的文件夹mount到‘虚拟机’的WORKDIR下,这样,这个‘虚拟机’中的操作就可以在本地文件夹里进行。

    (黄底部分是mount的方法:-v /path/in/host:/path/in/docker),完成后最后本地目录下是这样的。

    create_by_docker.bam  test_pe_ans.sam
    
  • 相关阅读:
    jQuery事件
    jQuery选择器
    jQuery对象和语法
    jQuery简介
    残差的正态性检验——概率图和QQ-plot图
    https://oldpan.me/深度学习博客
    深度学习的内存消耗在哪里?
    图片缩放
    随机梯度下降批尺寸的影响
    利用PIL.ImageOps.invert实现二值图像黑白反转
  • 原文地址:https://www.cnblogs.com/lokwongho/p/11429725.html
Copyright © 2020-2023  润新知