3 tháng 05, 2026

Pipeline gọi biến thể somatic từ dữ liệu đọc ngắn với Nextflow

image

Chúng tôi sử dụng deep-somatic như một trong những công cụ gọi biến thể somatic trong pipeline này. DeepSomatic là phương pháp học sâu để phát hiện các biến thể nucleotide nhỏ cùng các insertion và deletion somatic từ cả dữ liệu đọc ngắn lẫn đọc dài. Nó liên tục vượt trội so với các công cụ gọi biến thể hiện có trên nhiều mẫu và nhiều công nghệ giải trình tự.

Ở đây, chúng tôi chọn deep-somatic làm engine chính cho việc gọi biến thể somatic, đồng thời tái sử dụng các module đã được kiểm chứng từ những pipeline trước đó để tạo ra một workflow hiện đại nhất.

Tài liệu tham khảo: DeepSomatic: Accurate somatic variant calling with deep learning

nf-core/sarek được xem là một pipeline hàng đầu cho việc gọi biến thể từ dữ liệu đọc ngắn ở cả quy trình germline lẫn somatic, với sự hậu thuẫn của một cộng đồng lớn và năng động. Tuy nhiên, nó vẫn tồn tại một số hạn chế:

  • Định kiến về danh tiếng: Những công cụ được sử dụng rộng rãi thường được giữ làm mặc định, kể cả khi chúng có thể không còn mang lại hiệu năng tốt nhất. Điều này có thể dẫn đến việc tiêu tốn tài nguyên không cần thiết và hiệu quả dưới mức tối ưu ở một số bước.
  • Tính năng cũ tồn đọng: Một số công cụ được tích hợp đã không còn được duy trì tích cực trong nhiều năm, dẫn đến khoảng cách về hiệu năng. Dù vậy, chúng thường vẫn được giữ lại để đảm bảo tương thích ngược, làm tăng độ phức tạp của codebase và gánh nặng bảo trì khi bổ sung tính năng mới.
  • Hạn chế về khả năng tùy biến: Pipeline được thiết kế cho mục đích đa dụng và hướng nghiên cứu. Trong môi trường sản xuất công nghiệp, các workflow thường cần được tinh gọn — chỉ giữ lại những bước thiết yếu và đạt khả năng mở rộng gần như tuyến tính theo tài nguyên. Trong những trường hợp như vậy, một cách tiếp cận tối giản và được thiết kế chuyên biệt thường hiệu quả hơn.

Vì vậy, chúng tôi phát triển nf-somatic-short-read-variant-calling pipeline nhằm hỗ trợ cụ thể việc gọi biến thể somatic quy mô lớn từ dữ liệu giải trình tự đọc ngắn được ghép cặp tumor-normal.

Kiến trúc

Tính năng chính

  • Nhiều định dạng đầu vào: FASTQ (toàn bộ pipeline), BAM và CRAM (bỏ qua alignment, tự động chuyển đổi)
  • Nhiều công cụ gọi biến thể: Mutect2, Strelka, DeepSomatic (mặc định)
  • Gọi biến thể cấu trúc: Manta
  • Kiểm soát chất lượng: Fastp, bcftools stats, bcftools query, bedtools genomecov
  • Chú giải biến thể: SnpEff, VEP
  • Ghép cặp Tumor-Normal: Hỗ trợ sẵn cho các mẫu tumor-normal tương ứng
  • Nén CRAM: Tích hợp sẵn chuyển đổi CRAM→BAM để gọi lại biến thể hiệu quả
  • Cấu hình linh hoạt: Hỗ trợ container (Docker/Singularity), nhiều profile

Các công cụ gọi biến thể

DeepSomatic

DeepSomatic là phương pháp học sâu để phát hiện các biến thể nucleotide nhỏ cùng các insertion và deletion somatic từ cả dữ liệu đọc ngắn lẫn đọc dài. Phương pháp này có các chế độ cho giải trình tự toàn hệ gen và toàn bộ exon, đồng thời có thể chạy trên các mẫu tumor–normal, chỉ tumor và mẫu formalin-fixed paraffin-embedded.

Ưu điểm chính:

  • Liên tục vượt trội so với các công cụ gọi biến thể hiện có trên nhiều mẫu và nhiều công nghệ giải trình tự
  • Hỗ trợ cả dữ liệu đọc ngắn (Illumina) và đọc dài (PacBio HiFi, Oxford Nanopore)
  • Có sẵn cho các workflow WGS và WES

Mutect2

GATK Mutect2 là công cụ gọi biến thể somatic được sử dụng rộng rãi, dùng local assembly để phát hiện biến thể somatic. Đây là tiêu chuẩn vàng cho việc gọi biến thể somatic từ dữ liệu đọc ngắn.

Strelka

Strelka là công cụ gọi biến thể somatic nhanh, được tối ưu cho việc phát hiện biến thể nhỏ trong các mẫu tumor-normal.

Bắt đầu nhanh

Cấu hình cho trường hợp sử dụng chính

Cấu hình mặc định sử dụng:

  • Mutect2 làm công cụ gọi biến thể nhỏ
  • Manta làm công cụ gọi biến thể cấu trúc
  • Hệ gen tham chiếu GRCh38
  • Lọc chất lượng bằng FASTP
  • Bỏ qua tiền xử lý (skip_preprocessing: true)
  • Bật chú giải SnpEff + VEP
Terminal window
pixi run nextflow run main.nf -profile docker -resume

Chuẩn bị samplesheet

Tạo một samplesheet CSV với dữ liệu đầu vào của bạn. Pipeline yêu cầu các mẫu được ghép cặp tumor-normal và hỗ trợ ba chế độ đầu vào:

- Đầu vào FASTQ (toàn bộ pipeline)

patient,sex,status,sample,lane,fastq_1,fastq_2
P001,M,0,P001_N,L001,/path/to/P001_N_R1.fastq.gz,/path/to/P001_N_R2.fastq.gz
P001,M,1,P001_T,L001,/path/to/P001_T_R1.fastq.gz,/path/to/P001_T_R2.fastq.gz

- Đầu vào BAM (bỏ qua alignment)

patient,sex,status,sample,lane,bam,bai
P001,M,0,P001_N,L001,/path/to/P001_N.bam,/path/to/P001_N.bam.bai
P001,M,1,P001_T,L001,/path/to/P001_T.bam,/path/to/P001_T.bam.bai

- Đầu vào CRAM (bỏ qua alignment + tự động chuyển đổi)

patient,sex,status,sample,lane,cram,crai
P001,M,0,P001_N,L001,/path/to/P001_N.cram,/path/to/P001_N.cram.crai
P001,M,1,P001_T,L001,/path/to/P001_T.cram,/path/to/P001_T.cram.crai

Lợi ích của CRAM:

  • Đầu vào được nén: Tệp CRAM nhỏ hơn BAM khoảng 4 lần (nén 78%)
  • Pipeline nhanh hơn: Bỏ qua bước alignment khi chạy lại việc gọi biến thể
  • Chuyển đổi tự động: Chuyển đổi CRAM→BAM được tích hợp vào pipeline
  • Hỗ trợ mọi công cụ gọi biến thể: Mutect2, Strelka, DeepSomatic và Manta

Các cột trong samplesheet:

  • patient: Định danh bệnh nhân (giống nhau cho cặp normal/tumor)
  • sex: Giới tính của bệnh nhân (M/F)
  • status: Loại mẫu (0 = normal, 1 = tumor)
  • sample: Định danh mẫu
  • lane: Lane giải trình tự (tùy chọn, mặc định là L001)
  • Chế độ FASTQ: fastq_1, fastq_2 (tệp FASTQ nén gzip)
  • Chế độ BAM: bam, bai (BAM đã align + index)
  • Chế độ CRAM: cram, crai (alignment đã nén + index)

Chạy pipeline

Pipeline sẽ tự động phát hiện định dạng đầu vào (FASTQ, BAM hoặc CRAM) để chạy các bước phù hợp:

Terminal window
nextflow run main.nf \
--input samplesheet.csv \
--profile docker \
-resume

Tùy chọn nâng cao

Terminal window
# Use DeepSomatic with WGS model
nextflow run main.nf \
--input samplesheet.csv \
--small_variant_caller deepsomatic \
--deepsomatic_model_type WGS \
--profile docker \
-resume
# Use Strelka instead of Mutect2
nextflow run main.nf \
--input samplesheet.csv \
--small_variant_caller strelka \
--profile docker \
-resume
# With Manta for structural variants
nextflow run main.nf \
--input samplesheet.csv \
--structural_variant_caller manta \
--profile docker \
-resume
# Skip annotation for faster processing
nextflow run main.nf \
--input samplesheet.csv \
--skip_annotation \
--profile docker \
-resume
# Enable alignment preprocessing (e.g., BQSR)
nextflow run main.nf \
--input samplesheet.csv \
--preprocessor gatk \
--profile docker \
-resume

Để chạy chế độ test với dữ liệu mẫu:

Terminal window
nextflow run main.nf -profile docker,test -resume

Xem kết quả

Các tệp đầu ra sẽ được tạo trong thư mục results/. Cấu trúc tệp phụ thuộc vào chế độ đầu vào:

-Kết quả đầu vào FASTQ:

  • results/alignment/*.bam - Tệp BAM đã align
  • results/variant_calling/*.vcf.gz - Kết quả gọi biến thể thô
  • results/variant_annotation/*.vcf - Biến thể đã chú giải
  • results/qc/ - Chỉ số chất lượng (thống kê biến thể, bedgraph độ phủ)

-Kết quả đầu vào CRAM:

  • results/variant_calling/*.vcf.gz - Kết quả gọi biến thể thô (từ BAM đã chuyển đổi)
  • results/variant_annotation/*.vcf - Biến thể đã chú giải
  • results/qc/ - Chỉ số chất lượng (thống kê biến thể, bedgraph độ phủ)
  • Không có tệp BAM trung gian (bị loại bỏ sau khi gọi biến thể trừ khi được cấu hình khác)

-Các tệp đầu ra chung:

  • results/multiqc_report.html - Báo cáo kiểm soát chất lượng tương tác
  • results/pipeline_info/ - Timeline thực thi và trace log

Để biết thêm các cách sử dụng nâng cao và tùy chọn cấu hình, xem tài liệu Pipeline Architecture.

Tài liệu tham khảo

  1. nf-core/sarek: Pipeline phân tích để phát hiện biến thể germline hoặc somatic (tiền xử lý, gọi biến thể và chú giải) từ WGS / giải trình tự targeted
  2. DeepSomatic: Accurate somatic variant calling with deep learning: Bài báo trên Nature Biotechnology về DeepSomatic
  3. https://github.com/vieomics/nf-somatic-short-read-variant-calling: Pipeline cấp production cho việc gọi biến thể somatic từ dữ liệu đọc ngắn sử dụng Nextflow

Bài viết gần đây