
# 如何将生物信息学软件封装为镜像并上传
本章节提供了在AI科学计算平台创建FastQC应用的样例，帮助您快速熟悉平台的使用方法。
FastQC是一款高通量序列数据的质量检查工具，此样例基于开源的FastQC软件，将软件制作成镜像，上传至平台，并基于此镜像创建应用。应用创建完成后可以直接使用FastQC应用，或将其编排至流程，和其他应用一起使用。
创建FastQC应用时，需要您熟悉该软件的使用，并具备一定的开发经验。FastQC的详细介绍请参考[FastQC介绍](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/)。使用AI科学计算平台创建FastQC应用的详细步骤如下所示：
[步骤1：搭建Docker环境]
[步骤2：制作镜像]
[步骤3：上传镜像]
[步骤4：创建应用]
 #### 步骤1：搭建Docker环境
1. 搭建Docker环境，您可以任选以下两种方式搭建Docker环境。
   - 使用自己的电脑搭建Docker环境。
   
   - 使用华为云弹性云服务器ECS搭建Docker环境。
   
   
   本示例中使用华为云弹性服务器ECS，并通过ECS搭建Docker环境。在创建ECS时，可以选择ECS的操作系统。例如，在Linux操作系统下，可以使用如下命令快速安装容器引擎。
   ```
   curl -fsSL get.docker.com -o get-docker.sh
   sh get-docker.sh
   ```
   
2. 检查安装结果。 执行**docker --version**命令，如果显示如下类似信息，表示Docker安装成功。
   图1Docker安装成功   
   ![](https://support.huaweicloud.com/ai4sservice_faq/zh-cn_image_0000002144114549.png "点击放大") 
 
 #### 步骤2：制作镜像
**方法1：直接下载官方的FastQC镜像。**
执行如下命令下载FastQC镜像。
```
docker pull biocontainers/fastqc:v0.11.5
```
**方法2：通过Dockerfile制作FastQC镜像。**
1. 执行**vi Dockerfile** 命令，进入Dockerfile文件中，编写文件。
   ```
   FROM ubuntu:16.04
   # FastQC依赖java运行，需安装java环境。安装执行下载、解压缩的软件包
   RUN apt-get update && apt-get upgrade -y \
       && apt-get install -y default-jre perl wget zip
   # 下载FastQC，解压缩，设置FastQC可执行权限
   RUN wget https://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.5.zip \
       && unzip fastqc_v0.11.5.zip \
       && rm fastqc_v0.11.5.zip \
       && chmod +x /FastQC/fastqc
   # 将FastQC添加到环境变量中
   ENV PATH "/FastQC:$PATH
   ```
   
2. 按Esc键，并执行**:wq**退出Dockerfile。
3. 制作镜像。
   ```
   docker build -t fastqc:v0.11.5 .
   ```
   详细的Dockerfile指令请参见[Dockerfile参考](https://docs.docker.com/engine/reference/builder/)。
   
 
 #### 步骤3：上传镜像
1. [下载命令行工具并进行初始化配置](https://support.huaweicloud.com/clilist-ai4sservice/ai4sservice_05_0004.html)。
2. 使用**ai4s switch project** 命令进入到所需的空间中。
   ```
   # 命令结构
   ai4s switch project <project-name>
   # 命令示例，例如进入到名为ai4s-user-project的空间中
   ai4s switch project ai4s-user-project
   ```
   
3. 使用命令行工具上传镜像到AI科学计算平台。
   1. 使用**ai4s docker tag** 命令给要上传的镜像打标签。
      ```
      ai4s docker tag biocontainers/fastqc:v0.11.5 fastqc:v0.11.5
      ```
      
   
   2. 使用**ai4s docker push** 命令上传镜像。
      ```
      ai4s docker push fastqc:v0.11.5
      ```
      
   
   
   执行**ai4s** **docker images**命令查看已有的镜像。
   详细的命令介绍请参见["命令行工具 \> 镜像管理命令"](https://support.huaweicloud.com/clilist-ai4sservice/ai4sservice_05_0038.html)章节。
   
4. 登录AI科学计算平台，在镜像列表中查看已上传的镜像。
 
 #### 步骤4：创建应用
1. 在"我的空间"页面"应用"页签中，单击"创建应用"。
2. 填写应用的基本信息。 "名称"填写fastqc，"版本"填写v0.11.5.2。"短描述"、"图标"、"长描述"、"标签"可选填。
   图2填写基本信息   
   ![](https://support.huaweicloud.com/ai4sservice_faq/zh-cn_image_0000002302586165.png "点击放大") 
3. 选择镜像。 单击"选择镜像"，在镜像列表中选择fastqc镜像和镜像版本。
   
4. 依据[FastQC命令说明](https://github.com/s-andrews/FastQC/blob/master/fastqc)填写镜像启动命令。
   镜像启动命令需要引用输入、输出参数中的变量，并以大括号扩起，以$符号进行引用。
   fastqc软件输入参数填写为input-file、threads，输出参数为output-dir，则镜像启动命令如下所示。
   使用**-t** 命令，指定运行所需的线程数量。**-o**命令，指定存放输出结果的文件夹。输入文件夹已在填写参数时指定。
   ```
   fastqc -t ${threads} -o ${output-dir} ${input-file}
   ```
   
5. 选择"X86"CPU架构，CPU需求建议0.2起。GPU类型选择"无"。
6. 按需填写内存大小，单位为GB。FastQC运行中所需内存大小依赖于输入数据大小，建议至少1GB。
   图3CPU、内存、GPU   
   ![](https://support.huaweicloud.com/ai4sservice_faq/zh-cn_image_0000002302684525.png "点击放大") 
7. 填写参数。
   1. 通过阅读[FastQC命令说明](https://github.com/s-andrews/FastQC/blob/master/fastqc)，了解命令。
      图4FastQC命令   
      ![](https://support.huaweicloud.com/ai4sservice_faq/zh-cn_image_0000002144114561.png "点击放大") 
   
   2. 填写所需的输入参数。
      图5输入参数   
      ![](https://support.huaweicloud.com/ai4sservice_faq/zh-cn_image_0000002268880652.png "点击放大") 
   
   
   
   3. 填写所需的输出参数。 因镜像启动命令中指定了输出参数，设置输出参数时，需勾选"必传"，并填写"默认值"。例如，输出结果默认存放在fastqc_output文件夹中。
      图6输出参数   
      ![](https://support.huaweicloud.com/ai4sservice_faq/zh-cn_image_0000002303417765.png "点击放大") 
    
8. 单击"立即创建"，完成fastqc应用的创建。 创建完成后的应用，将显示在应用列表中，您可以使用该应用创建分析作业。
   
 
