GradingPool-Seq使用方法
1. 安装必要的软件和包
在开始之前,你需要确保系统中已经安装了以下软件和包:
- Perl (v5.22.1)
- Perl 模块 (Statistics::Distributions)
- R (v3.2.5)
- R 包 (ggplot2)
- BWA (v0.71)
- GATK (v4.1.0.0)
- Picard (v1.119)
安装这些软件和包的步骤在文档中已经提供了链接,你可以按照以下步骤进行安装:
- 安装 Perl:访问 https://www.perl.org/get.html
- 安装 R:访问 https://www.r-project.org/
- 安装 BWA:访问 https://github.com/lh3/bwa
- 安装 GATK:访问 https://software.broadinstitute.org/gatk/
- 安装 Picard:访问 https://broadinstitute.github.io/picard/
安装这些工具可能需要一些时间,预计在两小时内完成。
2. 安装 Pipeline 框架
将 GradingPoolSeq
pipeline 框架安装到你的系统中:
-
下载框架文件
假设你已经获得了GradingPool_framework.tar.gz
文件,将其解压到工作目录中:cd /path/to/working/directory cp /path/to/GradingPool_framework.tar.gz . tar zxvf GradingPool_framework.tar.gz
-
进入解压后的目录
cd GradingPool_framework
3. 准备数据
你需要准备以下数据:
- 参考基因组文件 (
ref.fa
) - 每个批量的 Fastq 文件 或者
- 通过 SNP calling 得到的 VCF 文件(如果已经完成)
4. 执行 Pipeline
根据你的数据情况,选择以下两种方式之一:
4.1 如果你没有 VCF 文件(从 Fastq 文件开始)
-
建立参考基因组索引
使用 BWA 建立参考基因组索引:bwa index ref.fa
-
对每个样本的 Fastq 文件进行比对
假设有 6 个批量(4 个 F2 代和 2 个亲本):bwa mem -M -R "@RG\tID:Pool1\tSM:Pool1" ref.fa Pool1.fastq.gz > Pool1.sam bwa mem -M -R "@RG\tID:Pool2\tSM:Pool2" ref.fa Pool2.fastq.gz > Pool2.sam bwa mem -M -R "@RG\tID:Pool3\tSM:Pool3" ref.fa Pool3.fastq.gz > Pool3.sam bwa mem -M -R "@RG\tID:Pool4\tSM:Pool4" ref.fa Pool4.fastq.gz > Pool4.sam bwa mem -M -R "@RG\tID:Parent1\tSM:Parent1" ref.fa Parent1.fastq.gz > Parent1.sam bwa mem -M -R "@RG\tID:Parent2\tSM:Parent2" ref.fa Parent2.fastq.gz > Parent2.sam
-
将 SAM 文件转换为 BAM 文件
samtools sort -o Pool1.bam Pool1.sam samtools sort -o Pool2.bam Pool2.sam samtools sort -o Pool3.bam Pool3.sam samtools sort -o Pool4.bam Pool4.sam samtools sort -o Parent1.bam Parent1.sam samtools sort -o Parent2.bam Parent2.sam
-
标记重复序列
使用 Picard 工具标记重复序列:java -jar picard.jar MarkDuplicates INPUT=Pool1.bam OUTPUT=Pool1.dedup.bam METRICS_FILE=Pool1.metrics java -jar picard.jar MarkDuplicates INPUT=Pool2.bam OUTPUT=Pool2.dedup.bam METRICS_FILE=Pool2.metrics java -jar picard.jar MarkDuplicates INPUT=Pool3.bam OUTPUT=Pool3.dedup.bam METRICS_FILE=Pool3.metrics java -jar picard.jar MarkDuplicates INPUT=Pool4.bam OUTPUT=Pool4.dedup.bam METRICS_FILE=Pool4.metrics java -jar picard.jar MarkDuplicates INPUT=Parent1.bam OUTPUT=Parent1.dedup.bam METRICS_FILE=Parent1.metrics java -jar picard.jar MarkDuplicates INPUT=Parent2.bam OUTPUT=Parent2.dedup.bam METRICS_FILE=Parent2.metrics
-
索引 BAM 文件
samtools index Pool1.dedup.bam samtools index Pool2.dedup.bam samtools index Pool3.dedup.bam samtools index Pool4.dedup.bam samtools index Parent1.dedup.bam samtools index Parent2.dedup.bam
-
进行 SNP calling
使用 GATK 的 HaplotypeCaller:java -jar gatk --java-options "-Xmx4g" HaplotypeCaller -R ref.fa -I Pool1.dedup.bam -I Pool2.dedup.bam -I Pool3.dedup.bam -I Pool4.dedup.bam -I Parent1.dedup.bam -I Parent2.dedup.bam -O Results.vcf
4.2 如果你已经有 VCF 文件
你可以跳过上述步骤,直接从 VCF 文件开始。
5. 数据过滤
使用 Perl 脚本对 VCF 文件进行过滤:
-
过滤低质量变异
perl Filter_Quality.pl Results.vcf > filter1.txt 100
-
选择合适深度的变异
perl Filter_Depth.pl filter1.txt > filter2.txt 6 0.05 0.95
-
筛选亲本中基因型不同的变异
perl Filter_Parent.pl filter2.txt > filter3.txt 5 6
-
过滤所有池中非参考碱基的 SNP
perl Filter_SNP.pl filter3.txt > filter4.txt 6 1 2 3 4
6. 计算 P 值
使用 Perl 脚本计算 P 值:
perl Ridit.pl filter4.txt > pvalue.txt 1 2 3 4
7. 去噪策略
使用 Perl 脚本进行去噪:
perl denoise.pl pvalue.txt > ratio.txt 4 10 12
8. 图形分析
使用 R 脚本生成图形:
-
生成 P 值图
Rscript pos-pvalue.R
-
生成比例图
Rscript pos-ratio.R
9. 识别峰值区间
使用 Perl 脚本识别峰值区间:
perl p-max.pl ratio.txt 1
10. 查看结果
- P 值图:查看
pvalue.png
文件。 - 比例图:查看
ratio.png
文件。 - 峰值区间:查看
p-max.pl
的输出。
注意事项
- 参数调整:根据你的数据和需求,可能需要调整脚本中的参数(如质量阈值、深度范围等)。
- 脚本路径:确保所有脚本文件(如
Filter_Quality.pl
、Ridit.pl
等)的路径正确。 - 运行时间:整个流程可能需要较长时间,具体取决于数据量和计算资源。