全部產品
Search
文件中心

:通過AGS處理全基因組測序WGS

更新時間:Jan 26, 2025

通過AGS可以快速處理全基因組測序WGS(Whole Genome Sequencing)的全流程任務,包括基因比對、排序、去重和變異檢測。本文介紹如何通過AGS命令列管理WGS工作流程。

前提條件

已提交阿里雲基因服務公測申請,加入公測白名單。

說明

如果您使用的是RAM使用者(子帳號),公測申請時請提供RAM使用者(子帳號)的UID。請登入帳號管理主控台查詢UID。

準備工作

完成許可權的配置和資料的準備。

  1. 配置AGS。

    關於AGS的下載和安裝,請參見AGS命令列協助

    ags config init
  2. 準備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
  3. 通過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。

wgs.svg

啟動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。

mapping.svg

列出遠程流程

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