论文
Super-pangenome analyses highlight genomic diversity and structural variation across wild and cultivated tomato species
https://www.nature.com/articles/s41588-023-01340-y
西红柿NG_superPan正文.pdf
数据分析的代码
https://github.com/HongboDoll/TomatoSuperPanGenome
论文里提供了绝大部分的数据处理代码,很好的学习材料,今天的推文我们学习一下论文中GWAS分析的相关代码
vcf文件用到的是拟南芥的数据,下载链接
http://1001genomes.org/data/GMI-MPI/releases/v3.1/1001genomes_snp-short-indel_only_ACGTN.vcf.gz
这个数据之前的推文也用过
文献笔记五十四:全基因组关联分析鉴定拟南芥中控制种子大小的调节因子
但是想不起来表型数据是在哪里下载的了
对vcf文件进行过滤
关于vcf文件的操作参考这个链接 https://www.jianshu.com/p/d46d3682637d
代码语言:javascript复制vcftools --gzvcf 1001genomes_snp-short-indel_only_ACGTN.vcf.gz --remove-indels --recode --recode-INFO-all --min-alleles 2 --max-alleles 2 --max-missing 0.9 --out snpOnly
删除indel位点 只保留二等位变异位点 能分型的样本占总样本的比例至少为0.9
代码语言:javascript复制~/biotools/plink19/plink --vcf snpOnly.recode.vcf --recode12 --allow-extra-chr --geno 0.1 --mac 5 --allow-no-sex --out at.snp
~/biotools/plink19/plink --allow-extra-chr --file at.snp --indep-pairwise 50 5 0.2 --recode vcf-iid --out at.snp.LDpruned
~/biotools/plink19/plink --allow-extra-chr --file at.snp --recode vcf-iid --extract at.snp.LDpruned.prune.in --out at.snp.LDpruned
~/biotools/plink19/plink --allow-extra-chr --vcf at.snp.LDpruned.vcf --make-bed --out at.snp.LDpruned.bfile
~/biotools/plink19/plink --bfile at.snp.LDpruned.bfile --allow-extra-chr --allow-no-sex --pca 10 --out PCA
cat PCA.eigenvec | awk '{print $1,$2,"1",$3,$4,$5,$6,$7}' > PCA_snp.txt
~/biotools/plink19/plink --file at.snp --allow-extra-chr --recode 12 --output-missing-genotype 0 --transpose --out at_snp
~/biotools/emmax/emmax-kin-intel64 -v -d 10 at_snp
这里表型数据忘记在哪里下载了,自己随便构造吧
代码语言:javascript复制head -n 20 snpOnly.recode.vcf | grep '#CHROM' | awk 'gsub("t","n")' | tail -n 1135 > pheno.txt
library(tidyverse)
read_delim("D:/R_4_1_0_working_directory/env001/data/20230510/pheno.txt",
delim = "t",
col_names = FALSE) %>%
mutate(X2=X1,
X3=sample(seq(0,100,by=0.05),1135)) %>%
write_delim("D:/R_4_1_0_working_directory/env001/data/20230510/pheno01.txt",
delim = "t",
col_names = FALSE)
最后格式 前两列是样本名,最后一列是表型数据,如果有缺失可以用NA代替 分隔符是制表符
image.png
gwas分析
代码语言:javascript复制~/biotools/emmax/emmax-intel64 -v -d 10 -t at_snp -p pheno01.txt -k at_snp.aBN.kinf -c PCA_snp.txt -o at_snp
cat at_snp.map | paste - at_snp.ps | awk '{print $2,$1,$4,$8}' | sed '1iSNP CHR BP P' | sed 's/ /t/g' > gwas.output
Rscript manhattan_qq.R gwas.output gwas.png 5
manhattan_qq.R 这个脚本是论文中提供的
最后5是显著性的阈值,是自己随便写的,
整个代码能够跑通,但其中有一些细节自己还不是很明白,需要再多看几遍
image.png
推文记录的是自己的学习笔记,内容可能会存在错误,请大家批判着看,欢迎大家指出其中的错误
欢迎大家关注我的公众号
小明的数据分析笔记本
小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!