GWAS数据分析流程—SNP、Indel提取

1、测序质量评估

## conda安装fastqc
fastqc *.fastq.gz -t 8 -o fastqc_out/

可选(合并质控报告)
## conda安装multiqc (可能会要求安装latex,为生成PDF文件所需)
multiqc .

2、数据过滤(重复、接头等)

## conda安装fastp(fastp也会生成过滤前后的质量报告,如果需要的话,需要对报告文件重命名)
fastp -i in.R1.fq.gz -I in.R2.fq.gz -o out.R1.fq.gz -O out.R2.fq.gz

3、下载参考基因组(以玉米v5参考基因组为例)

## 下载参考基因组数据
wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/902/167/145/GCF_902167145.1_Zm-B73-REFERENCE-NAM-5.0/GCF_902167145.1_Zm-B73-REFERENCE-NAM-5.0_genomic.fna.gz

##解压基因组文件
gunzip GCF_902167145.1_Zm-B73-REFERENCE-NAM-5.0_genomic.fna.gz

##更改名字
mv GCF_902167145.1_Zm-B73-REFERENCE-NAM-5.0_genomic.fna genome.fasta

4、构建索引

## 构建BWA索引
bwa index genome.fasta

bwa index的用法和参数:
bwa index [-p prefix] [-a algoType] <in.db.fasta>
-p  #输出数据库的前缀,默认与输入文件名一致
-a  #设置参考基因组构建index的算法(is和bwtsw两种)

bwa构建参考基因组index的两种算法:
-is 用于构建后缀数组的线性时间算法:缺点:比较耗内存(需要参考基因组5.37倍的内存);优点:速度快。
 is是构建index的默认算法,但是不适合 “参考基因组” 大于2GB的文件。
-bwtsw 使用BWT-SW算法,多用于人类基因组。

##构建基因组索引,该命令会在运行目录下创建一个genome.fai索引文件
samtools faidx genome.fasta

##构建字典序文件,生成dict文件
gatk CreateSequenceDictionary -R example.fasta -O example.dict  或
picard CreateSequenceDictionary -R genome.fasta

GATK (全称The Genome Analysis Toolkit)是Broad Institute开发的二代重测序数据分析软件,是基因分析的工具集。在4.0以后,GATK包含有Picard工具集,所有Picard工具都能够使用GATK完成。

5、将过滤后的reads比对到参考基因组上,并将生成的sam文件转换成bam文件

## ID:S027为样品ID,SM:S027为样品名称,PL:illumina为测序平台,输入文件为参考基因组和质控过滤后的文件
bwa mem -t 10 -R '@RG\tID:S027\tSM:S027\tPL:illumina' genome.fasta S027.R1.fq.gz S027.R2.fq.gz | samtools sort -@ 4 -m 1G -o s027.sort.bam -
# bwa比对命令最好不要使用nohup,nohup的输出信息会被bwa输出到目标文件,可能会影响后续步骤。
# mem算法 -t 运行线程数 -R添加头部信息,-R一定不能省略或写错。
# bwa的mem的效率更高,且更加准确。 

6、查看及统计比对结果

##查看bam文件
samtools view -h test.bam | less -S

##统计bam文件信息
samtools flagstat test.bam > test.bam.flagstat 

7、去除重复

##去除bam文件中的重复
picard -Xmx4g MarkDuplicates I=test.sorted.bam O=test.sorted.rmdup.bam CREATE_INDEX=true REMOVE_DUPLICATES=true M=test.marked_dup_metrics.txt 

# I 输入排序后的文件; O 输出文件; M 输出重复矩阵。 

9、检测变异位点

##检测变异
nohup gatk --java-options "-Xmx10g" HaplotypeCaller -R genome.fasta -I test.sorted.rmdup.bam -ERC GVCF -O test.g.vcf &

10、合并变异位点

##生成合并列表
ls *.g.vcf > gvcf.list 

##合并GVCF文件
nohup gatk --java-options "-Xmx10g"  CombineGVCFs -R genome.fasta -V gvcf.list -O all.g.vcf &

11、提取所有样本变异位点

nohup gatk --java-options "-Xmx4g" GenotypeGVCFs -R genome.fasta -V all.g.vcf -O all.var.vcf &

12.1、分选SNP

## 从变异里提取所有SNP
gatk --java-options "-Xmx4g" SelectVariants -R genome.fasta -V all.var.vcf --select-type SNP -O all.raw.snp.vcf

## 过滤不符合条件的SNP
gatk  --java-options "-Xmx4g" VariantFiltration -R genome.fasta -V all.raw.snp.vcf  --filter-expression "QD < 2.0 || MQ<40.0 || FS > 60.0 ||  SOR > 3.0 || MQRankSum < -12.5 || ReadPosRankSum < -8.0"  --filter-name 'LowQualFilter' -O all.snp.fil.vcf  

## 提取过滤后的SNP
gatk  --java-options "-Xmx4g" SelectVariants -R genome.fasta -V all.snp.fil.vcf  --exclude-filtered -O all.snp.filed.vcf

12.2、分选Indel

## 从变异里提取所有Indel
gatk --java-options "-Xmx4g" SelectVariants -R genome.fasta -V all.var.vcf  --select-type INDEL -O all.raw.indel.vcf

## 过滤不符合条件的Indel
gatk  --java-options "-Xmx4g" VariantFiltration -R genome.fasta -V all.raw.indel.vcf  --filter-expression "QD < 2.0 ||  FS > 200.0 ||  SOR > 10.0 || MQRankSum < -12.5 || ReadPosRankSum < -8.0"  --filter-name 'LowQualFilter' -O all.indel.fil.vcf  

##提取过滤后的Indel
gatk  --java-options "-Xmx4g" SelectVariants -R genome.fasta -V all.indel.fil.vcf   --exclude-filtered -O all.indel.filed.vcf

  • 11
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: GWAS meta分析可以用来发现与多个疾病共同相关的SNP,以下是一个Python脚本的例子,用于进行GWAS meta分析,并筛选出共病风险SNP: ```python import pandas as pd import numpy as np import statsmodels.api as sm # 读取所有研究的GWAS结果文件 study1 = pd.read_csv("study1.csv") study2 = pd.read_csv("study2.csv") study3 = pd.read_csv("study3.csv") # 将每个研究的p值进行变换,转化为z值 study1["z"] = np.sqrt(2) * sm.stats.proportion.proportions_ztest(study1["n_cases"], study1["n_total"], value=study1["OR"])[0] study2["z"] = np.sqrt(2) * sm.stats.proportion.proportions_ztest(study2["n_cases"], study2["n_total"], value=study2["OR"])[0] study3["z"] = np.sqrt(2) * sm.stats.proportion.proportions_ztest(study3["n_cases"], study3["n_total"], value=study3["OR"])[0] # 将每个研究的z值和样本量进行合并 meta_data = pd.concat([study1[["SNP", "z", "n_cases", "n_total"]], study2[["SNP", "z", "n_cases", "n_total"]], study3[["SNP", "z", "n_cases", "n_total"]]]) # 计算每个SNP的z值和加权样本量 meta_data["wz"] = meta_data["z"] * np.sqrt(meta_data["n_cases"] + meta_data["n_controls"]) meta_data["w"] = np.sqrt(meta_data["n_cases"] + meta_data["n_controls"]) # 计算meta分析的z值和p值 meta_z = meta_data["wz"].sum() / meta_data["w"].sum() meta_p = 2 * (1 - sm.stats.norm.cdf(abs(meta_z))) # 筛选出共病风险SNP threshold = 0.05 / len(meta_data) # Bonferroni校正阈值 meta_data["p"] = 2 * (1 - sm.stats.norm.cdf(abs(meta_data["z"]))) # 计算每个SNP的p值 comorbid_snps = meta_data[meta_data["p"] < threshold]["SNP"] # 筛选出共病风险SNP # 输出结果 print("Meta-analysis result:") print("z value: ", meta_z) print("p value: ", meta_p) print("共病风险SNP: ", comorbid_snps) ``` 这个脚本首先进行GWAS meta分析,计算每个SNP的加权z值和加权样本量,最后计算meta分析的z值和p值。然后,使用Bonferroni校正阈值对每个SNP的p值进行校正,筛选出共病风险SNP,并输出结果。需要注意的是,Bonferroni校正可能过于保守,可以根据具体情况选择其他的多重比较校正方法。 ### 回答2: GWAS (基因组关联研究) meta 分析是通过整合多个独立的 GWAS 研究来寻找与共病风险相关的单核苷酸多态性 (SNP) 代码。这些 SNP 代码代表了基因组中的特定位点,其变异可能与某种疾病的发生风险相关联。 通过 GWAS meta 分析,研究者能够对大量样本进行研究,从而获得更加统计显著的结果。在分析的过程中,SNPs 的频率和效应大小等关键信息会被考虑。 共病风险 SNP 代码是指那些在 GWAS meta 分析中被认为与共病风险相关的 SNP。这些代码能够提供与特定疾病或疾病组群相关的遗传变异信息。 通过 GWAS meta 分析得到的共病风险 SNP 代码对于疾病的研究非常重要。研究者可以通过这些代码来识别可能的疾病风险基因,理解遗传变异对共病风险的贡献程度,并为疾病的预防和治疗提供潜在的靶点。 然而,需要注意的是,共病风险 SNP 代码仅仅代表了相关性,不能直接表明因果关系。进一步的功能研究和验证实验是必不可少的,以确定 SNP 引发的生物过程和其对疾病发展的实际作用。 总结来说,GWAS meta 分析可以提供共病风险 SNP 代码,这些代码对于研究疾病的遗传背景和潜在机制,以及疾病的预防和治疗具有重要意义。然而,我们仍需进一步的研究来厘清 SNPs 与疾病之间的因果关系。 ### 回答3: GWAS(基因组范围的关联研究)是一种常用的遗传学研究方法,用于研究基因与疾病之间的关联关系。在进行GWAS研究时,研究者会收集来自不同研究中心的数据,并进行meta分析。 meta分析是一种将多个独立研究的结果进行合并和整合的统计分析方法。在进行GWAS meta分析时,研究者会按照特定的标准,选择符合要求的研究,并提取其中的共病风险SNP代码。 共病风险SNP代码是指在GWAS meta分析中被发现与某种疾病共同关联的单核苷酸多态性(Single Nucleotide Polymorphism)。这些SNP代码代表了基因组上特定位点的变异情况,与疾病的发生和发展有一定的相关性。 在GWAS meta分析中,研究者会对收集到的数据进行整合和比对,找出共病风险SNP代码。这些代码可以用于进一步的遗传学研究,以探究这些SNP与疾病之间的具体关联机制。此外,共病风险SNP代码还可以为疾病的预测、诊断和治疗提供依据。 总之,GWAS meta分析得到的共病风险SNP代码代表了基因与疾病之间的关联关系,对于研究疾病的发生机制和提供个体化医疗具有重要意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值