AGS Remote API介绍:
阿里云基因计算服务(AGS)是一个依托于云计算平台,使用容器、工作流等云原生技术,针对生信行业基因数据处理的整体解决方案。您可以不用关心基因数据处理过程中的计算资源、处理逻辑、数据缓存等细节,只需要将您的源数据(Fastq文件)地址提供给ags,ags既可高效、快速完成整个数据分析流程,并将结果数据上传到您期望的存储空间。
AGS目前支持通用的生信流程包括:
wgs流程:支持GATK标准流程进行全基因组测序,支持GPU加速;
Mapping:支持输出包含MarkUp和不包含MarkUp的Bam数据;
AGS提供用户命令行工具,通过命令行可以实现远程提交任务。根据您的数据处理需求,通过定义具体参数指定Fastq数据源,和处理逻辑。AGS Remote API目前主要基于阿里云公共云服务,推荐的数据提供方式为将源数据放在阿里云OSS存储空间,ags获取数据后进程处理,并将处理结果上传到OSS存储。
用户如果使用阿里云AGS服务,您的资产包括:本地IDC机房(生成数据)、阿里云OSS存储服务(保存数据);阿里云AGS服务为您的数据进行计算、分析,并回传结果数据;
AGS处理流程:
- 用户IDC环境内,基因数据下线暂存;
- 用户通过数据传输工具(Ossutil)将待处理的fastq数据上传到阿里云OSS存储服务(用户账号下的OSS);
- 用户通过AGS命令行工具,向AGS服务提交测序任务,需在参数中定义作业的详细信息;
- AGS拉取Fastq数据;
- AGS处理数据;
- AGS上传结果数据(vcf/bam);
下面为您提供一个使用AGS Remote API实现基因数据处理的示例,您可以参考其中的操作步骤执行数据处理任务。
前置准备:
1. 安装ossutil:
数据上传您可以通过阿里云提供的Ossutil工具,具体安装过程可参考:ossutil安装
2. 数据上传
阿里云AGS服务目前只开通了深圳、北京2个Region,所以您的OSS Bucket需要选择这两个Region之一。
假设您的数据规划如下:
在深圳申请Bucekt名为:my-gene-shenzhen
fastq的保存目录为:fastq/task*/
vcf的保存目录为:vcf/task*/
bam的保存目录为:bam/task*/
上传fastq数据上传命令为:
ossutil cp {fastq}_1.fastq.gz oss://my-gene-shenzhen/fastq/task1/{fastq}_1.fastq.gz
ossutil cp {fastq}_2.fastq.gz oss://my-gene-shenzhen/fastq/task1/{fastq}_2.fastq.gz
3. AGS命令行工具下载:
可以通过下面地址下载AGS命令行工具:
Mac:http://ags-hub.oss-cn-hangzhou.aliyuncs.com/ags-mac
Linux: http://ags-hub.oss-cn-hangzhou.aliyuncs.com/ags-linux
下载后修改为可执行权限,并放到节点可执行目录($PATH目录下);
$ chmod 755 ags-linux && mv ags-linux /usr/local/bin/ags
4. 命令行配置,OSS授权:
通过ags命令行工具进行任务提交,您需要配置ags的ak权限:
ags config init
注意:配置的AK需要对您的oss bucket具有读写权限;
您还需要对OSS Bucket进行授权,以授权AGS服务账号具备文件的读写、GetBucketInfo权限:
ags config oss <your bucket name>
上述具体配置,可参考使用文档:https://help.aliyun.com/document_detail/148762.html
AGS目前支持两种数据类型,具体由Fastq数据目录结构决定:
一种是:一个样本由两个fastq文件组成,提交任务时,分别指定两个文件的名字;
另一种:一个样本由一个目录下面的多个fastq文件组成,提交任务时,指定目录名字;
任务示例-数据类型1:
一个样本由两个fastq文件组成,分别指定两个文件的名字;
1. Fastq数据源:
对如下bucket下面的fastq数据进行WGS流程分析:
2. 提交任务:
任务提交命令分析:
ags remote run wgs \ # 指定为wgs流程;
--region cn-shenzhen \ # 指定为深圳区域;
--fastq1 fastq/NA12878/NA12878_1.fastq.gz \ # 指定fastq1文件地址;
--fastq2 fastq/NA12878/NA12878_2.fastq.gz \ # 指定fastq2文件地址;
--bucket gene-shenzhen \ # 指定bucket名字;
--output-vcf output/wgs/NA12878.vcf \ # 指定vcf文件输出地址(在gene-shenzhen bucket下面);
--output-bam output/wgs/NA12878.bam \ # 指定bam文件输出地址(在gene-shenzhen bucket下面);
--service "g" \ # 指定service类型,支持s/g/p等服务类型;
--reference hs37d5 # 指定reference类型,支持hs37d5和hg19两个可选类型;
任务提交:
# ags remote run wgs --region cn-shenzhen --fastq1 fastq/NA12878/NA12878_1.fastq.gz --fastq2 fastq/NA12878/NA12878_2.fastq.gz --bucket gene-shenzhen --output-vcf output/wgs/NA12878.vcf --output-bam output/wgs/NA12878.bam --service "g" --reference hs37d5
INFO[0001] {"JobName":"wgs-gpu-vfbqw"}
INFO[0001] Job submit succeed
3. 查看任务信息:
查看当前任务信息:
# ags remote get wgs-gpu-vfbqw
+---------------+------------------+---------+-------------------------------+-----------------+-------------+-------------+
| JOB NAME | JOB NAMESPACE | STATUS | CREATE TIME | DURATION | TOTAL READS | TOTAL BASES |
+---------------+------------------+---------+-------------------------------+-----------------+-------------+-------------+
| wgs-gpu-vfbqw | **************** | Running | 2020-01-19 11:19:00 +0800 CST | 8m31.309941114s | 0 | 0 |
+---------------+------------------+---------+-------------------------------+-----------------+-------------+-------------+
Job Name: 这次任务的名字(唯一代号);
JOB NAMESPACE:任务的名词空间(您的UID);
STATUS:任务的状态;
CREATE TIME:任务创建时间;
DURATION:任务的持续时间;
TOTAL READS:这次提交一共成功处理了多少 Reads;
TOTAL BASES:这次提交一共成功处理了多少Bases;
4. 查看输出结果:
命令行查看任务最终状态:
# ags remote get wgs-gpu-vfbqw
+---------------+------------------+-----------+-------------------------------+----------+-------------------------------+-------------+--------------+
| JOB NAME | JOB NAMESPACE | STATUS | CREATE TIME | DURATION | FINISH TIME | TOTAL READS | TOTAL BASES |
+---------------+------------------+-----------+-------------------------------+----------+-------------------------------+-------------+--------------+
| wgs-gpu-vfbqw | **************** | Succeeded | 2020-01-19 11:19:00 +0800 CST | 34m16s | 2020-01-19 11:53:16 +0800 CST | 1574530218 | 159027552018 |
+---------------+------------------+-----------+-------------------------------+----------+-------------------------------+-------------+--------------+
控制台查看结果文件(bam/vcf):
任务示例-数据类型2:
1. Fastq数据源:
一个样本包含在同一个目录(fastq/MultiFiles/2020011901)下面;
目录下面包含多个子目录:2020011901-73、2020011901-74;
每个子目录下面包含一对Fastq文件:文件以1/2.fq.gz结尾;
2. 提交任务:
任务解析:
ags remote run mapping \ # 指定为mapping流程;
--region cn-shenzhen \ # 指定Region为深圳;
--fastq1 fastq/MultiFiles/2020011901 \ # 指定fastq目录;
--fastq2 fastq/MultiFiles/2020011901 \ # 指定fastq目录,和fastq1一样;
--bucket gene-shenzhen \ # 指定bucket名字;
--output-bam output/mapping/2020011901.bam \ # 指定bam输出目录;
--service "g" \ # 指定服务等级;
--markdup "true" \ # 指定是否进行mark duplicate处理;
--reference hg19 # 指定reference类型;
提交任务:
# ags remote run mapping --region cn-shenzhen --fastq1 fastq/MultiFiles/2020011901 --fastq2 fastq/MultiFiles/2020011901 --bucket gene-shenzhen --output-bam output/mapping/2020011901.bam --service "g" --markdup "true" --reference hg19
INFO[0002] {"JobName":"mapping-gpu-bv8br"}
INFO[0002] Job submit succeed
3. 查看任务信息:
查看任务状态命令:ags remote get *
# ags remote get mapping-gpu-bv8br
+-------------------+------------------+---------+-------------------------------+------------------+-------------+-------------+
| JOB NAME | JOB NAMESPACE | STATUS | CREATE TIME | DURATION | TOTAL READS | TOTAL BASES |
+-------------------+------------------+---------+-------------------------------+------------------+-------------+-------------+
| mapping-gpu-bv8br | **************** | Running | 2020-01-19 11:43:51 +0800 CST | 11m19.728373147s | 261733836 | 26173383600 |
+-------------------+------------------+---------+-------------------------------+------------------+-------------+-------------+
4. 查看输出结果:
命令行查看任务最终状态:
~# ags remote get mapping-gpu-bv8br
+-------------------+------------------+-----------+-------------------------------+----------+-------------------------------+-------------+-------------+
| JOB NAME | JOB NAMESPACE | STATUS | CREATE TIME | DURATION | FINISH TIME | TOTAL READS | TOTAL BASES |
+-------------------+------------------+-----------+-------------------------------+----------+-------------------------------+-------------+-------------+
| mapping-gpu-bv8br | **************** | Succeeded | 2020-01-19 11:43:51 +0800 CST | 11m45s | 2020-01-19 11:55:36 +0800 CST | 261733836 | 26173383600 |
+-------------------+------------------+-----------+-------------------------------+----------+-------------------------------+-------------+-------------+
到控制台查看任务输出文件(bam):
结果验证:
任务执行完成,您可以到oss控制台查看任务输出目录,是否获取到期望的结果文件。
如果没有获取结果文件,请及时与我们联系。