一、背景介绍
差异表达基因(differentially expressed genes, DEGs)指的是在不同样本之间表达量显著不同的基因。区分出这些基因对于深入了解物种内部基因表达的变化和表征特定生物学过程至关重要。在生物医学研究方面,差异基因的研究可以发现与疾病的关联性,有助于深入理解疾病的发生机制和治疗方式。因此,DEG分析成为了当前生物信息学领域一大热门研究课题。
二、DEG分析流程
DEG分析的一般流程包括基因差异表达的检测和分析,结果的生物信息学功能注释和验证,以及生信数据的可视化。下图展示了一个简单的DEG分析流程:
样本准备 -> RNA提取 -> RNA质量检测和准备 -> (RNA-seq 或者 Microarray)转录组测序 -> 原始数据清洗和过滤 -> 读数比对和基因表达矩阵的计算 -> 差异基因分析和生物学分析 -> 可视化结果呈现
三、差异基因工具与算法
常见的DEG分析工具有edgeR、DESeq2、limma、Cuffdiff等。这些工具往往采用负二项分布、泊松分布和线性模型等多种统计学方法,结合False discovery rate(FDR)等多种校正方法,来确定差异基因。
四、关键步骤解析
4.1 数据预处理
对于RNA-seq和Microarray数据,必须进行质量控制和过滤,去除无用的数据和噪声干扰,生成一个高质量的差异表达矩阵。
# Quality control fastqc raw_data.fastq -o output_folder fastqc processed_data.fastq -o output_folder # Trimming and Filtering trimmomatic -trimlog samples.log PE read1.fastq read2.fastq output_forward_paired.fq output_forward_unpaired.fq output_reverse_paired.fq output_reverse_unpaired.fq < trimming_parameters.txt # Read Mapping and Counting hisat2 -x index -1 read1.fq -2 read2.fq --rna-strandness RF -S samfile.sam samtools view -bS -o bamfile.bam samfile.sam samtools sort bamfile.bam -o sorted.bam samtools index sorted.bam featureCounts -p -T 8 -a gene_annotation.gtf -t exon -g gene_id -o reads_count.txt sorted.bam
4.2 差异基因检测
根据基因表达矩阵,使用统计学方法来检测差异表达基因,并根据p值、FDR等指标筛选出显著差异基因。
# Differential Expression Analysis library(DESeq2) library(edgeR) dds <- DESeqDataSetFromMatrix(countData, colData, design= ~ condition) dds <- DESeq(dds) res <- results(dds) dge <- DGEList(counts=countData, group=group) dge <- calcNormFactors(dge) dge <- estimateCommonDisp(dge) dge <- estimateTagwiseDisp(dge) fit <- glmQLFit(dge) qlf <- glmQLFTest(fit, coef=2) topTags(qlf, n=10)
4.3差异基因生物学功能注释
对于差异基因进行生物学功能注释,确定DEGs对于生物学过程、通路和分子功能的影响。
# Gene Ontology Analysis library(clusterProfiler) library(org.Hs.eg.db) gene.list <- rownames(res)[which(res$padj < 0.05 & abs(res$log2FoldChange) > 1)] ego <- enrichGO(gene = gene.list, OrgDb = org.Hs.eg.db, keyType = "ENSEMBL", ont = "BP", pAdjustMethod = "BH", qvalueCutoff =0.05, universe = NULL) head(summary(ego)) # Functional Annotation Clustering ego_bp_clusters <- enrichResult(ego)$Description ego_bp_clusters <- gsub(pattern = "\\(GO\\:[0-9]{7}.*?\\)$", replacement = "", x = ego_bp_clusters) ego_bp_clusters <- gsub(pattern = "^.*?\\.", replacement = "", x = ego_bp_clusters) ego_bp_clusters <- data.frame(Cluster = ego_bp_clusters, Term = enrichResult(ego)$Description, geneCount = enrichResult(ego)$Count) biplotAnnotations(ego, which = "prcomp", xlab = "PC1(16%)", ylab = "PC2(12.5%)")
4.4 可视化展示
根据差异基因筛选结果,用图表的方式展示DEGs在不同条件下的表达变化。
# Heatmap Visualization library(pheatmap) library(RColorBrewer) heatmap_data <- as.matrix(countData[c(1:10, 20:30, 40:50), ]) heatmap_data <- heatmap_data[rowMeans(heatmap_data) > 10, ] heatmap_metadata <- metadata[c(1:10, 20:30, 40:50), ] heatmap_colors <- colorRampPalette(brewer.pal(9, "YlOrRd"))(100) pheatmap(heatmap_data, color = heatmap_colors, border_color = NA, fontsize_row = 10, fontsize_col = 10, main = "Differential Expression Analysis", clustering_distance_rows = "euclidean", clustering_distance_cols = "euclidean", clustering_method = "complete", show_rownames = F, show_colnames = T, annotation_col = heatmap_metadata)
五、总结
差异表达基因作为生物信息学领域的热点研究,应用广泛。对于DEG分析,研究人员应根据数据量、数据类型和数据质量等特点,确定适合的方法和流程。以上的DEG分析流程仅为一个示例,实际应用中还需要根据数据类型和生物学特点进行差异基因分析。相信在不断的探索和实践中,DEG分析技术将会不断完善,并为生物医学、农业科技等领域的研究提供有力支持。