天天看點

阿裡雲基因計算服務使用最佳實踐 - 通過Remote API實作基因資料處理

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服務為您的資料進行計算、分析,并回傳結果資料;

阿裡雲基因計算服務使用最佳實踐 - 通過Remote API實作基因資料處理

AGS處理流程:

  1. 使用者IDC環境内,基因資料下線暫存;
  2. 使用者通過資料傳輸工具(Ossutil)将待處理的fastq資料上傳到阿裡雲OSS存儲服務(使用者賬号下的OSS);
  3. 使用者通過AGS指令行工具,向AGS服務送出測序任務,需在參數中定義作業的詳細資訊;
  4. AGS拉取Fastq資料;
  5. AGS處理資料;
  6. 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流程分析:

阿裡雲基因計算服務使用最佳實踐 - 通過Remote API實作基因資料處理

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

阿裡雲基因計算服務使用最佳實踐 - 通過Remote API實作基因資料處理

任務示例-資料類型2:

一個樣本包含在同一個目錄(fastq/MultiFiles/2020011901)下面;

目錄下面包含多個子目錄:2020011901-73、2020011901-74;

每個子目錄下面包含一對Fastq檔案:檔案以1/2.fq.gz結尾;

阿裡雲基因計算服務使用最佳實踐 - 通過Remote API實作基因資料處理
阿裡雲基因計算服務使用最佳實踐 - 通過Remote API實作基因資料處理
阿裡雲基因計算服務使用最佳實踐 - 通過Remote API實作基因資料處理

任務解析:

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           

檢視任務狀态指令: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 |
+-------------------+------------------+---------+-------------------------------+------------------+-------------+-------------+           

~# 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):

阿裡雲基因計算服務使用最佳實踐 - 通過Remote API實作基因資料處理

結果驗證:

任務執行完成,您可以到oss控制台檢視任務輸出目錄,是否擷取到期望的結果檔案。

如果沒有擷取結果檔案,請及時與我們聯系。

繼續閱讀