质量控制
FastQC 检查碱基质量、接头污染与序列重复度。
*.fastq.gz → htmlREPRODUCIBLE BIOINFORMATICS
一套清晰、可追溯的转录组分析路径:质量控制、比对、定量与差异表达。每一步,都可以被复现。
THE PIPELINE
从 FASTQ 到生物学解释,每个阶段都有明确的输入、输出与质量指标。
FastQC 检查碱基质量、接头污染与序列重复度。
*.fastq.gz → htmlSTAR 将高质量 reads 快速比对至参考基因组。
FASTQ → sorted BAMfeatureCounts 按注释文件生成基因表达矩阵。
BAM + GTF → countsDESeq2 建模、校正并筛选差异表达基因。
counts → DEG tableREADY TO RUN
根据样本信息调整路径与分组,即可将下面的骨架用于常规双端测序数据。
# 1. QC and adapter trimming
fastqc raw/*.fastq.gz -o results/fastqc -t 8
fastp -i raw/sample_R1.fastq.gz -I raw/sample_R2.fastq.gz \
-o clean/sample_R1.fq.gz -O clean/sample_R2.fq.gz \
--html results/fastp/sample.html --thread 8
# 2. Alignment with STAR
STAR --runThreadN 16 --genomeDir reference/star_index \
--readFilesIn clean/sample_R1.fq.gz clean/sample_R2.fq.gz \
--readFilesCommand zcat --outSAMtype BAM SortedByCoordinate \
--outFileNamePrefix results/star/sample.
# 3. Gene-level quantification
featureCounts -T 8 -p -a reference/genes.gtf \
-o results/counts.txt results/star/*.bam
# Differential expression with DESeq2
library(DESeq2)
counts <- read.delim("results/counts_matrix.tsv", row.names = 1)
meta <- read.csv("metadata.csv", row.names = 1)
dds <- DESeqDataSetFromMatrix(
countData = round(counts), colData = meta, design = ~ condition
)
dds <- dds[rowSums(counts(dds)) >= 10, ]
dds <- DESeq(dds)
res <- results(dds, contrast = c("condition", "treated", "control"))
deg <- subset(res, padj < 0.05 & abs(log2FoldChange) > 1)
write.csv(as.data.frame(deg), "results/DEG.csv")
# Quick QC summary of the DEG table
from pathlib import Path
import pandas as pd
result_dir = Path("results")
deg = pd.read_csv(result_dir / "DEG.csv", index_col=0)
summary = {
"significant": int(deg["padj"].lt(0.05).sum()),
"upregulated": int(deg["log2FoldChange"].gt(1).sum()),
"downregulated": int(deg["log2FoldChange"].lt(-1).sum()),
}
print(pd.Series(summary, name="genes"))
BEFORE YOU RUN
每组建议至少 3 个独立生物学重复;技术重复不能替代生物学重复。
将批次、性别或组织来源写入 metadata,并在设计公式中控制混杂。
在解释单个基因前,先检查 PCA、样本相关性和测序深度是否合理。