Claude cho Bio Research: QC dữ liệu single-cell RNA-seq
Điểm nổi bật
Nhấn để đến mục tương ứng
- 1 Khi triển khai định dạng input được hỗ trợ, điều cốt lõi là h5ad: AnnData format từ scanpy/Python workflows .h5: 10X Genomics Cell Ranger output filtered_feature_bc_matrix.h5 — hiểu đúng nguyên lý này giúp bạn tránh sai lầm phổ biến và đạt kết quả tốt hơn ngay từ đầu.
- 2 Điểm cần cân nhắc khi sử dụng hai cách tiếp cận: Cách 1: Complete QC Pipeline khuyến nghị Cho phân tích chuẩn với ngưỡng có thể điều chỉnh: # File h5ad python3 scripts/qc_analysis.py input.h5ad # File 10X Genomics h5 python3 scripts/qc_analysis.py raw_feature_bc_matrix — không phải mọi trường hợp đều phù hợp, cần đánh giá bối cảnh cụ thể trước khi áp dụng.
- 3 Theo phân tích output files, Tất cả files được lưu vào <input_basename>_qc_results/ : input_filtered.h5ad — Dataset sạch, sẵn sàng cho downstream analysis input_with_qc.h5ad — Dataset gốc với QC annotations được bảo tồn 3 file PNG visualizations — con số thực tế này đáng để tham khảo khi lập kế hoạch triển khai cho dự án của bạn.
- 4 Khi triển khai ví dụ thực tế, điều cốt lõi là Prompt cho quy trình chuẩn: Tôi có file scRNA-seq từ mô não chuột: brain_cells.h5ad ~15,000 tế bào, mixed cell types Hãy chạy QC theo scverse best practices: 1. Tính metrics với mt_pattern"^mt-" chuột 2. MAD filtering permissive n_mads5 3 — hiểu đúng nguyên lý này giúp bạn tránh sai lầm phổ biến và đạt kết quả tốt hơn ngay từ đầu.
- 5 Góc nhìn thực tế về các bước downstream sau qc: Sau khi có dataset sạch, quy trình điển hình tiếp theo: Ambient RNA correction: SoupX hoặc CellBender Doublet detection: scDblFinder Normalization: Log-normalize hoặc scran Feature selection và dimensionality reduction Clustering và cell type annotation xem hướng dẫn scvi — hiệu quả phụ thuộc nhiều vào cách triển khai và ngữ cảnh sử dụng cụ thể.
Quality Control (QC) là bước không thể bỏ qua trong pipeline single-cell RNA-seq. Dữ liệu kém chất lượng — tế bào chết, doublets, ambient RNA — sẽ làm nhiễu mọi phân tích downstream từ clustering đến differential expression. Claude hỗ trợ quy trình QC theo chuẩn scverse với MAD-based filtering, phù hợp cho cả file .h5ad lẫn output 10X Genomics .h5.
Định dạng input được hỗ trợ
- .h5ad: AnnData format từ scanpy/Python workflows
- .h5: 10X Genomics Cell Ranger output (filtered_feature_bc_matrix.h5)
Hai cách tiếp cận
Cách 1: Complete QC Pipeline (khuyến nghị)
Cho phân tích chuẩn với ngưỡng có thể điều chỉnh:
# File h5ad
python3 scripts/qc_analysis.py input.h5ad
# File 10X Genomics h5
python3 scripts/qc_analysis.py raw_feature_bc_matrix.h5
Script tự động phát hiện format file và thực hiện toàn bộ quy trình.
Cách 2: Modular Building Blocks (cho workflow tùy chỉnh)
Khi cần logic lọc không chuẩn, như lọc khác nhau cho từng loại tế bào:
import anndata as ad
from qc_core import calculate_qc_metrics, detect_outliers_mad, filter_cells
from qc_plotting import plot_qc_distributions
adata = ad.read_h5ad('input.h5ad')
calculate_qc_metrics(adata, inplace=True)
# ... custom logic tại đây
Quy trình QC chi tiết
Bước 1: Tính QC metrics
Claude sẽ tính các metrics cho từng tế bào:
- n_counts: Tổng số UMI (độ sâu sequencing)
- n_genes: Số gene được phát hiện
- pct_counts_mt: Phần trăm reads từ gene mitochondria
- pct_counts_ribo: Phần trăm reads ribosomal (tùy chọn)
- pct_counts_hb: Phần trăm reads hemoglobin (tùy chọn)
Pattern phát hiện gene theo loài:
# Người
mt_pattern = "^MT-" # MT-CO1, MT-ND1, v.v.
ribo_pattern = "^RP[SL]"
hb_pattern = "^HB[^P]"
# Chuột
mt_pattern = "^mt-" # mt-Co1, mt-Nd1, v.v.
Bước 2: MAD-based filtering (lọc thông minh)
Tại sao dùng MAD thay vì ngưỡng cứng? MAD (Median Absolute Deviation) tự động thích nghi với phân phối của từng dataset, thay vì dùng một ngưỡng cố định áp lên tất cả dữ liệu.
Nguyên lý: một tế bào là outlier nếu giá trị của nó lệch quá N lần MAD so với median:
# MAD-based outlier detection
outlier_mask = detect_outliers_mad(adata, metric='log1p_n_counts', n_mads=5)
# n_mads mặc định là 5 (permissive — giữ nhiều tế bào)
Tham số có thể điều chỉnh:
python3 scripts/qc_analysis.py input.h5ad --mad-counts 5 # MAD cho tổng counts
--mad-genes 5 # MAD cho số genes
--mad-mt 3 # MAD cho %MT (thường strict hơn)
--mt-threshold 20 # Hard cutoff tối đa cho %MT
Bước 3: Lọc gene ít phổ biến
# Loại bỏ genes chỉ có ở rất ít tế bào
filter_genes(adata, min_cells=20) # mặc định: gene phải có ít nhất 20 tế bào
Bước 4: Visualizations
Script tự động tạo bộ plots trước và sau lọc:
- qc_metrics_before_filtering.png: Violin plots và scatter plots QC metrics ban đầu
- qc_filtering_thresholds.png: Hiển thị ngưỡng MAD overlay lên phân phối
- qc_metrics_after_filtering.png: Metrics sau khi lọc
Output files
Tất cả files được lưu vào <input_basename>_qc_results/:
-
input_filtered.h5ad— Dataset sạch, sẵn sàng cho downstream analysis -
input_with_qc.h5ad— Dataset gốc với QC annotations được bảo tồn - 3 file PNG visualizations
Ví dụ thực tế
Prompt cho quy trình chuẩn:
Tôi có file scRNA-seq từ mô não chuột: brain_cells.h5ad
(~15,000 tế bào, mixed cell types)
Hãy chạy QC theo scverse best practices:
1. Tính metrics với mt_pattern="^mt-" (chuột)
2. MAD filtering permissive (n_mads=5)
3. Tạo visualizations trước/sau
4. Xuất filtered dataset
Ví dụ cho QC với logic tùy chỉnh (neurons chịu được %MT cao hơn):
import anndata as ad
from qc_core import calculate_qc_metrics, apply_hard_threshold, filter_cells
adata = ad.read_h5ad('brain.h5ad')
calculate_qc_metrics(adata, mt_pattern="^mt-", inplace=True)
# Neurons tolerate %MT cao hơn (đặc điểm sinh học)
neurons = adata.obs['initial_cluster'] == 'neuron'
other = ~neurons
neuron_mt_mask = apply_hard_threshold(adata[neurons], 'pct_counts_mt', 15, operator='>')
other_mt_mask = apply_hard_threshold(adata[other], 'pct_counts_mt', 8, operator='>')
# Kết hợp và filter
combined_remove = neurons & neuron_mt_mask | other & other_mt_mask
adata_clean = filter_cells(adata, ~combined_remove)
Best practices cần ghi nhớ
- Permissive filtering mặc định: Ngưỡng mặc định (n_mads=5) giữ nhiều tế bào — tránh mất rare populations
- Luôn xem visualizations: Review plots trước/sau để đảm bảo filtering có ý nghĩa sinh học
- Cân nhắc mô/loài: Một số mô tự nhiên có %MT cao (neurons, cardiomyocytes)
- Kiểm tra gene annotations: mt- cho chuột, MT- cho người
- Lặp lại nếu cần: QC parameters có thể cần điều chỉnh theo experiment cụ thể
Các bước downstream sau QC
Sau khi có dataset sạch, quy trình điển hình tiếp theo:
- Ambient RNA correction: SoupX hoặc CellBender
- Doublet detection: scDblFinder
- Normalization: Log-normalize hoặc scran
- Feature selection và dimensionality reduction
- Clustering và cell type annotation (xem hướng dẫn scvi-tools)
Prompt để kiểm tra thống kê QC:
Sau khi QC, hãy cho tôi biết:
- Bao nhiêu tế bào bị loại và vì lý do gì?
- Phân phối n_counts và n_genes sau lọc có ổn không?
- Có cụm tế bào nào đáng ngờ (potential doublets) không?
Bước tiếp theo
Sau khi có dataset đã QC, bước tự nhiên là chạy phân tích với scvi-tools để tích hợp batch và phân loại tế bào. Khám phá thêm tại bộ sưu tập Ứng dụng.
Bài viết liên quan
Bai viet co huu ich khong?
Bản quyền thuộc về tác giả. Vui lòng dẫn nguồn khi chia sẻ.



