通過AGS可以快速處理全基因組測序WGS(Whole Genome Sequencing)的全流程任務,包括基因比對、排序、去重和變異檢測。本文介紹如何通過AGS命令列管理WGS工作流程。
前提條件
已提交阿里雲基因服務公測申請,加入公測白名單。
如果您使用的是RAM使用者(子帳號),公測申請時請提供RAM使用者(子帳號)的UID。請登入帳號管理主控台查詢UID。
準備工作
完成許可權的配置和資料的準備。
配置AGS。
關於AGS的下載和安裝,請參見AGS命令列協助。
ags config init準備Bucket,並授權AGS服務讀寫權限和GetBucketInfo許可權。
說明請確保指定Bucket的Owner是您當前的帳號,否則建議您建立一個Bucket後再進行GetBucketInfo的授權。
如果您使用的是RAM使用者(子帳號),需要為RAM使用者(子帳號)授予AliyunOSSFullAccess許可權,請參見為RAM使用者授權。
如果您使用的是RAM使用者(子帳號),建議您重新建立OSS Bucket,以確保該帳號是所使用Bucket的Owner。執行以下命令確認Bucket的Owner。
ossutil stat oss://<your new bucket name>
Usage: ags config oss <your bucket name> e.g. ags config oss my-test-shenzhen通過ossutil上傳FASTQ資料到OSS Bucket。
關於ossutil的下載和安裝,請參見安裝ossutil。
說明目前只支援人類基因資料 WGS、WES等,暫不支援甲基化資料,以及動植物資料的比對。
普通上傳。
Usage: ossutil cp -r <local dir of fastq> <path of oss bucket > e. g. ossutil cp -r ./MGISEQ oss://my-test-shenzhen/MGISEQ大規模資料上傳。
按照如下樣本成對整理樣本,存放至不同的目錄。
./samples ├── sample1 │ ├── fastq_L1.tgz │ └── fastq_L2.tgz └── sample2 ├── fastq_L1.tgz └── fastq_L2.tgz使用以下命令進行批量上傳,
ossutil命令支援斷點續傳。Usage: ossutil--recursivecp-r-u--parallel<numberofconcurrenttasks><localdiroffastqornfspath><pathofossbucket> e. g. ossutil --recursive cp -r -u --parallel 16 ./samples oss://mybucket/samples
啟動WGS流程
關於參考基因組--reference,推薦和預設使用hg19基因組(hs37d5版本)。
hg19基因組(hs37d5版本)主要有以下特點:
不包含ALT contigs
Hard mask了chrY上的PARs地區
包含decoy contig
雖然AGS是ALT-Aware,可以識別並處理ALT contigs,而UCSC hg19基因組包含了ALT contigs,但是由於UCSC hg19基因組不具備後面兩個特點,仍會造成變異檢測的品質下降。詳情參見Which human reference genome to use?。
Usage:
ags remote run wgs \
--region cn-shenzhen # region of oss, e.g. cn-shenzhen, cn-beijing and etc\
--fastq1 MGISEQ/MGISEQ2000_PCR-free_NA12878_1_V100003043_L01_1.fq.gz # filename of fastq pair 2, fastq-path\filename \
--fastq2 MGISEQ/MGISEQ2000_PCR-free_NA12878_1_V100003043_L01_2.fq.gz # filename of fastq pair 1\
--bucket my-test-shenzhen # Bucket name\
--output-bam bam/MGISEQ_NA12878_hs37d5.bam, # Output BAM to bucket, By default empty, non output of BAM \
--output-vcf vcf/MGISEQ_NA12878_hs37d5_5.vcf # Output filename \
--service "g" #SLA: [n:normal|s:silver|g:gold|p:platinum]\
--reference [hg19|hg38|<reference path on OSS>] # hg19: it is hs37d5 version, GRCh37/hg19 include decoy contig, no support for UCSC hg19. hg38: GRCh38/hg38 include decoy
--reference-group "\"@RG\\tID:TEST\\tSM:12878\\tPL:MGISEQ2000\"" # allow to specify reference groups for PL/SM/ID and etc
e.g.
ags remote run wgs \
--region cn-shenzhen \
--fastq1 MGISEQ/MGISEQ2000_PCR-free_NA12878_1_V100003043_L01_1.fq.gz \
--fastq2 MGISEQ/MGISEQ2000_PCR-free_NA12878_1_V100003043_L01_2.fq.gz \
--bucket my-test-shenzhen \
--output-vcf vcf/MGISEQ_NA12878_hs37d5_5.vcf \
--output-bam bam/MGISEQ_NA12878_hs37d5_5.bam \
--service "s" \
--reference hg19
### 批量多Lane多樣本的下機樣本的處理
MGISAMPLE001是一組WGS多Lane測序樣本,可以通過指定樣本目錄--fastq1 MGISAMPLE001,--fastq2 MGISAMPLE001 實現對多Lane測序結果的合并和計算。
oss://my-test-shenzhen/MGISAMPLE001/L1/MGISEQ2000_PCR-free_NA12878_1_V100003043_L01_1.fq.gz
oss://my-test-shenzhen/MGISAMPLE001/L2/MGISEQ2000_PCR-free_NA12878_1_V100003043_L02_1.fq.gz
oss://my-test-shenzhen/MGISAMPLE001/L1/MGISEQ2000_PCR-free_NA12878_1_V100003043_L01_2.fq.gz
oss://my-test-shenzhen/MGISAMPLE001/L2/MGISEQ2000_PCR-free_NA12878_1_V100003043_L02_2.fq.gz
ags remote run wgs \
--region cn-shenzhen \
--fastq1 MGISAMPLE001 \
--fastq2 MGISAMPLE001 \
--bucket my-test-shenzhen \
--output-vcf vcf/MGISEQ_NA12878_hs37d5_6.vcf \
--output-bam bam/MGISEQ_NA12878_hs37d5_6.bam \
--service "g" \
--reference hg19
ags remote run wgs \
--region cn-shenzhen \
--fastq1 MGISAMPLE002 \
--fastq2 MGISAMPLE002 \
--bucket my-test-shenzhen \
--output-vcf vcf/MGISEQ_NA12878_hs37d5_7.vcf \
--output-bam bam/MGISEQ_NA12878_hs37d5_7.bam \
--service "g" \
--reference hg19以下將為您示範如何通過命令調用AGS WGS。
啟動Mapping流程
通過--fastq1和--fastq2指定fastq,通過--output指定bam的輸出路徑。
Usage:
ags remote run mapping \
--region cn-shenzhen # region of oss, e.g. cn-shenzhen, cn-beijing and etc\
--fastq1 MGISEQ/MGISEQ2000_PCR-free_NA12878_1_V100003043_L01_1.fq.gz # filename of fastq pair 2, fastq-path\filename \
--fastq2 MGISEQ/MGISEQ2000_PCR-free_NA12878_1_V100003043_L01_2.fq.gz # filename of fastq pair 1\
--bucket my-test-shenzhen # Bucket name\
--output-bam bam/MGISEQ_NA12878_hs37d5.bam # Output filename of BAM \
--service "g" #SLA: [n:normal|s:silver|g:gold|p:platinum]\
--markdup [true|false|default true] #Mark Duplicated, by default true
--reference [hg19|hg38|<reference path on OSS>]
e.g.
ags remote run mapping \
--region cn-shenzhen \
--fastq1 MGISEQ/MGISEQ2000_PCR-free_NA12878_1_V100003043_L01_1.fq.gz \
--fastq2 MGISEQ/MGISEQ2000_PCR-free_NA12878_1_V100003043_L01_2.fq.gz \
--bucket my-test-shenzhen \
--output-bam bam/MGISEQ_NA12878_hs37d5.bam # Output filename of BAM \
--service "g" \
--markdup "true" \
--reference hg19
以下將為您示範如何通過命令調用AGS Mapping。
列出遠程流程
Usage:
ags remote list
e.g.
ags remtoe list
+---------------+-------------------------------+
| JOB NAME | CREATE TIME |
+---------------+-------------------------------+
| wgs-gpu-ckw96 | 2020-01-07 19:08:32 +0000 UTC |
| wgs-gpu-djzws | 2020-01-07 18:31:22 +0000 UTC |
| wgs-gpu-pd659 | 2020-01-03 20:34:09 +0000 UTC |
+---------------+-------------------------------+擷取流程的詳細資料
Usage:
ags remote get <workflow id> --show
--show show detail of input parameters of workflow
e.g.
ags remote get wgs-gpu-sjtlw
+---------------+------------------+-----------+-------------------------------+----------+-------------------------------+
| JOB NAME | JOB NAMESPACE | STATUS | CREATE TIME | DURATION | FINISH TIME |
+---------------+------------------+-----------+-------------------------------+----------+-------------------------------+
| wgs-gpu-sjtlw | XXXXXXXXXXXXXXXX | Succeeded | 2020-01-07 21:38:05 +0800 CST | 12m25s | 2020-01-07 21:50:30 +0800 CST |
+---------------+------------------+-----------+-------------------------------+----------+-------------------------------+
ags remote get wgs-gpu-97xfn --show
+---------------+------------------+-----------+-------------------------------+----------+-------------------------------+
| JOB NAME | JOB NAMESPACE | STATUS | CREATE TIME | DURATION | FINISH TIME |
+---------------+------------------+-----------+-------------------------------+----------+-------------------------------+
| wgs-gpu-sjtlw | XXXXXXXXXXXXXXXX | Succeeded | 2020-01-07 21:38:05 +0800 CST | 12m25s | 2020-01-07 21:50:30 +0800 CST |
+---------------+------------------+-----------+-------------------------------+----------+-------------------------------+
+-----------------------+---------------------------------+
| JOB DETAIL | |
+-----------------------+---------------------------------+
| wgs_reference_file | hg19 |
| wgs_service | g |
| wgs_oss_region | cn-shenzhen |
| wgs_fastq_first_name | MGISAMPLE001 |
| wgs_fastq_second_name | MGISAMPLE001 |
| wgs_bucket_name | my-test-shenzhen |
| wgs_vcf_file_name | vcf/MGISEQ_NA12878_hs37d5_6.vcf |
| wgs_bam_file_name | bam/MGISEQ_NA12878_hs37d5_6.bam |
+-----------------------+---------------------------------+
取消運行中的工作流程
Usage:
ags remote cancel <workflow id>
e.g.
ags remote cancel wgs-gpu-zls6r
INFO[0000] Successed to cancel wgs-gpu-zls6r刪除結束的工作流程
您可以刪除成功和失敗的工作流程,但不能刪除運行中的工作流程。
Usage:
ags remote remove <workflow id>
e.g.
ags remote remove wgs-gpu-zls6r
INFO[0000] Successed to remove wgs-gpu-zls6r