本项目提供了一个基于 Python 实现的 RNA-seq 数据分析流程,涵盖从原始数据的质量控制到差异表达分析的所有关键步骤。该流程集成了多个主流的生物信息学工具,如 FastQC、Trim Galore、Hisat2 和 FeatureCounts,并使用 R 语言中的 DESeq2 进行差异表达分析。
要在本项目中运行 RNA-seq 数据分析流程,请确保在系统上满足以下要求:
- 操作系统:Linux 或 macOS(Windows 用户建议使用 Windows 子系统 Linux (WSL))
- Python 版本:3.6 或更高
- R 版本:3.5 或更高(用于差异表达分析所需的 DESeq2)
- 硬件要求:充足的存储和内存资源,以处理较大规模的 RNA-seq 数据集
请确保安装以下生物信息学工具,所有命令应通过命令行执行:
-
FastQC:用于评估原始 RNA-seq 数据的质量。
sudo apt-get install fastqc
-
Trim Galore:用于去除低质量碱基和接头序列。
sudo apt-get install trim-galore
-
Hisat2:用于将 RNA-seq 读段高效比对到参考基因组。
sudo apt-get install hisat2
-
FeatureCounts(Subread 包的一部分):用于从比对结果生成基因表达计数。
sudo apt-get install subread
-
DESeq2(R 包):用于差异基因表达分析。 在 R 控制台中运行以下命令安装 DESeq2:
install.packages("BiocManager") BiocManager::install("DESeq2")
本项目依赖几个 Python 库。可以通过以下命令安装这些库:
pip install pandas matplotlib seaborn rpy2
pandas
:用于处理表格数据(如基因计数矩阵)。matplotlib
&seaborn
:用于生成图表和可视化结果。rpy2
:用于在 Python 环境下调用 R 语言功能,包括 DESeq2。
该项目的目录结构如下所示:
.
├── data/
│ ├── fastq/ # 存放原始 FASTQ 数据
├── genome/
│ ├── hisat2_index/ # 存放 Hisat2 索引文件
│ ├── annotations.gtf # 基因组注释文件(GTF 格式)
├── results/ # 存储分析输出结果
│ ├── fastqc/ # FastQC 质量控制结果
│ ├── trimmed/ # 修剪后的 FASTQ 文件
│ ├── hisat2/ # 比对结果(SAM/BAM 文件)
│ ├── counts.txt # FeatureCounts 生成的计数矩阵
│ ├── deseq2_results.csv # 差异表达分析结果
│ ├── significant_genes.csv # 显著差异基因结果
│ ├── volcano_plot.png # 差异表达基因的火山图
├── conditions.csv # 样本条件文件,定义差异表达分析中的实验组别
├── rnaseq_analysis.py # 实现 RNA-seq 全流程分析的 Python 脚本
└── README.md # 项目说明文档(即本文件)
-以上为规划,还未完全完成项目
- 将 RNA-seq 的原始 FASTQ 文件放置在
./data/fastq/
目录下。 - 将 Hisat2 的参考基因组索引文件放置在
./genome/hisat2_index/
目录下。 - 确保基因组注释文件(
annotations.gtf
)位于./genome/
目录中。
在项目根目录下创建文件 conditions.csv
,用于定义各个样本对应的实验条件。文件格式如下:
sample,condition
sample1,treatment
sample2,control
sample3,treatment
sample4,control
- sample:样本名称,需与 FASTQ 文件名对应。
- condition:样本所属的实验条件(如处理组或对照组)。
通过命令行在项目根目录下运行以下命令
python rnaseq_analysis.py
该脚本将依次执行以下步骤:
- 数据质量评估:使用 FastQC 对原始数据进行初步质量控制。
- 数据修剪:使用 Trim Galore 去除接头和低质量序列。
- 比对到参考基因组:使用 Hisat2 将修剪后的读段比对到参考基因组。
- 读段计数:使用 FeatureCounts 生成每个基因的表达计数矩阵。
- 差异表达分析:使用 DESeq2 进行差异基因表达分析。
- 可视化:生成火山图,用于展示差异表达基因的显著性和倍数变化。
所有分析结果将保存在 ./results/
目录中。主要结果包括:
- 差异表达分析结果:
deseq2_results.csv
文件包含差��基因表达分析的详细结果。 - 显著差异基因:
significant_genes.csv
包含筛选出的显著差异基因。 - 火山图:
volcano_plot.png
文件展示了差异表达基因的可视化结果。
rnaseq_analysis.py
:主分析脚本,涵盖从数据质量控制到差异表达分析的整个流程。conditions.csv
:定义样本与实验条件关系的文件,用于差异表达分析。counts.txt
:由 FeatureCounts 生成的基因表达计数矩阵。deseq2_results.csv
:DESeq2 生成的差异表达分析结果,包括基因的倍数变化、p 值和调整后的 p 值。significant_genes.csv
:包含显著差异基因的结果文件。volcano_plot.png
:火山图,展示差异表达基因的显著性与倍数变化。
火山图展示了所有差异表达基因的显著性(p 值)与倍数变化(log2FoldChange)的关系。下图为火山图的示例:
DESeq2 生成的差异表达结果保存在 deseq2_results.csv
文件中,主要包括以下字段:
- log2FoldChange:基因表达的对数倍数变化,表示在实验条件间的差异表达。
- pvalue:差异表达的显著性 p 值。
- padj:使用 Benjamini-Hochberg 方法校正的 p 值,用于控制多重检验的假阳性率。
- 姓名:Xiexuan
- 邮箱:xiexuan@njfu.edu.cn
- 单位:南京林业大学
- FastQC:Andrews, S. (2010). FastQC: A Quality Control Tool for High Throughput Sequence Data.
- Trim Galore:Krueger, F. (2012). Trim Galore: A Wrapper Tool Around Cutadapt and FastQC to Consistently Apply Quality and Adapter Trimming to FastQ Files.
- Hisat2:Kim, D., et al. (2015). HISAT: A fast spliced aligner with low memory requirements. Nature Methods, 12(4), 357-360.
- FeatureCounts:Liao, Y., et al. (2014). featureCounts: an efficient general-purpose program for assigning sequence reads to genomic features. Bioinformatics, 30(7), 923-930.
- DESeq2:Love, M.I., et al. (2014). Moderated estimation of fold change and dispersion for RNA-seq data with DESeq2. Genome Biology, 15(12), 550.