GWAS分析docker镜像使用的方法
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要介绍"GWAS分析docker镜像使用的方法",在日常操作中,相信很多人在GWAS分析docker镜像使用的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
千家信息网最后更新 2025年01月20日GWAS分析docker镜像使用的方法
这篇文章主要介绍"GWAS分析docker镜像使用的方法",在日常操作中,相信很多人在GWAS分析docker镜像使用的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"GWAS分析docker镜像使用的方法"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
#############################################################################################北京组学生物科技有限公司#author huangls#date 2020.05.06#version 1.0#linux 基础:# https://study.163.com/course/introduction/1006346005.htm?share=1&shareId=1030291076#更多docker使用及Linux服务器搭建:# https://study.163.com/course/introduction/1209757831.htm?share=1&shareId=1030291076######################################################################################################################################################################################下载基因组GWAS分析docker镜像#docker pull /pop-evol-gwas:v1.1 #启动docker容器并交互式进入#docker desktop方法#docker run --rm -it -m 4G --cpus 1 -v D:\gwas:/work /pop-evol-gwas:v1.2#docker toolbox方法#docker run --rm -it -m 4G --cpus 1 -v /d/gwas:/work /pop-evol-gwas:v1.2##################################################### 创建目录,以及准备一些路径变量,方便后续调用#####################################################docker run --rm -it -v /share/work/huangls/piplines//pop-evol-gwas/scripts/:/work/scripts -v /share/nas1/huangls/test/gwas_rice:/work /pop-evol-gwas:v1.2workdir=/work/ #设置工作路径refdir=$workdir/refdatadir=$workdir/datascriptdir=$workdir/scriptstmpdir=$workdir/tmpexport TMPDIR=$tmpdir # 设置临时目录 防止容器中默认临时目录写满报错export PATH=$scriptdir:$PATH #组学大讲堂提供的脚本 添加到环境变量中方便使用#一些关键文件所在的路径变量GFF=$refdir/all.gff3REF=$refdir/all.con.faFAI=$refdir/all.con.fa.faiGROUP=$datadir/pop_group.txt#水稻GWAS数据来源:https://www.nature.com/articles/ng.3596#分组:根据自己的分组名称进行拆分cat $GROUP |grep GROUP1 |cut -f 1 >$datadir/pop1.txtcat $GROUP |grep GROUP2 |cut -f 1 >$datadir/pop2.txt#####################################################################数据过滤#####################################################################cd $workdir #回到工作目录mkdir 00.filtercd 00.filter#对数据进行过滤##过滤1:vcfutils.pl 过滤掉indel附近的snp# -w INT SNP within INT bp around a gap to be filtered [3]# -W INT window size for filtering adjacent gaps [10]##vcfutils.pl varFilter -w 5 -W 10 "gzip -dc $datadir/rice.raw.vcf.gz|" |gzip - >all.varFilter.vcf.gz##过滤2:vcftools#--max-missing Exclude sites on the basis of the proportion of missing data #(defined to be between 0 and 1, where 0 allows sites that are completely missing #and 1 indicates no missing data allowed).##vcftools --gzvcf all.varFilter.vcf.gz --recode --recode-INFO-all --stdout --maf 0.05 --max-missing 0.7 --minDP 2 --maxDP 1000 \# --minQ 30 --minGQ 0 --min-alleles 2 --max-alleles 2 --remove-indels |gzip - > clean.vcf.gz ##排序 , 如果不排序有可能会导致后面tassel的命令出错#run_pipeline.pl -Xmx30G -SortGenotypeFilePlugin -inputFile clean.vcf.gz \# -outputFile clean.sorted.vcf.gz -fileType VCF###########################################################进化树分析############################################################cd $workdir #回到工作目录#mkdir 01.phylo_tree#cd 01.phylo_tree#文件格式转换#run_pipeline.pl -Xmx5G -importGuess $workdir/00.filter/clean.sorted.vcf.gz \# -ExportPlugin -saveAs supergene.phy -format Phylip_Inter##最大似然法构建进化树#方法1:fasttree 构建进化树#fasttree -nt -gtr supergene.phy > fasttree.nwk##进化树绘制#ggtree.r -t fasttree.nwk -f $GROUP -g Group -n fasttree#进化树手动美化:https://www..com/article/671##########################################################PCA分析##########################################################cd $workdir #回到工作目录#mkdir 02.PCA#cd 02.PCA## plink分析PCA#plink --vcf $workdir/00.filter/clean.sorted.vcf.gz --pca 10 --out plink_pca \# --allow-extra-chr --set-missing-var-ids @:# --vcf-half-call missing#绘图#pca_plink_plot.r -i plink_pca.eigenvec -f $GROUP -g Group --name plink_pca############################################################群体结构STRUCTURE分析#######################################################cd $workdir #回到工作目录#mkdir 03.STRUCTURE#cd 03.STRUCTURE## filter LD #50 10 0.2 50个SNP 窗口 step 10个 r2 0.2 ; 50 5 0.4#plink --vcf $workdir/00.filter/clean.sorted.vcf.gz --indep-pairwise 50 10 0.2 --out ld \# --allow-extra-chr --set-missing-var-ids @:# #plink --vcf $workdir/00.filter/clean.sorted.vcf.gz --make-bed --extract ld.prune.in \# --out LDfiltered --recode vcf-iid --keep-allele-order --allow-extra-chr --set-missing-var-ids @:# ##转换成plink格式#vcftools --vcf LDfiltered.vcf --plink \# --out plink#转换成admixture要求的bed格式#plink --noweb --file plink --recode12 --out admixture \# --allow-extra-chr --keep-allele-order##admixture 群体结构分析#for k in {2..10};do# echo "admixture -j8 -C 0.01 --cv admixture.ped $k >admixture.log$k.out"# admixture -j8 -C 0.01 --cv admixture.ped $k >admixture.log$k.out#done#绘图展示 #structure_plot.r -d ./ -s admixture.nosex #确定最佳K,CV值最小时对应的K值为最佳K#grep "CV error" *out############################################################连锁不平衡分析 LDdecay##########################################################cd $workdir #回到工作目录#mkdir 04.LDdecay#cd 04.LDdecay##分组:根据自己的分组名称进行拆分#cat $GROUP |grep Line |cut -f 1 >popid.txt##PopLDdecay -InVCF $workdir/00.filter/clean.sorted.vcf.gz \# -SubPop popid.txt -MaxDist 500 -OutStat ld.stat#Plot_OnePop.pl -inFile ld.stat.gz -output ld####################################################################性状数据分析####################################################################基因型填充cd $workdir #回到工作目录mkdir 04.traitcd 04.traitRscript $scriptdir/trait_plot.r -i $datadir/traits_gapit.txt #如果有多年或者多点的数据可以计算BLUP值再做GWAS分析:https://www..com/article/1380Rscript $scriptdir/blup_year_or_site.r -i heading_days.rm_outers.txt#查看 性状数据分布,去掉一些极端值样本或者不去标记为NA####################################################################GWAS分析 数据来源:doi:10.1038/ng.3596####################################################################基因型填充cd $workdir #回到工作目录mkdir 05.imputecd 05.imputejava -Xmx4g -Djava.io.tmpdir=$TMPDIR -jar /biosoft/beagle.18May20.d20.jar \ gt=$workdir/00.filter/clean.sorted.vcf.gz out=all.impute impute=true window=10 nthreads=2####################################################################利用tassel进行GWAS分析###################################################################cd $workdir #回到工作目录mkdir 06.gwas_tasselcd 06.gwas_tasseltassel_trait=$workdir/04.trait/heading_days_BLUP_value.tsv#计算PCA和kinship, 也可以使用前面的群体遗传进化分析的结果run_pipeline.pl -Xmx30G -fork1 -vcf $workdir/00.filter/clean.sorted.vcf.gz \ -PrincipalComponentsPlugin -ncomponents 3 -covariance true -endPlugin \ -export pca -runfork1 run_pipeline.pl -Xmx30G -vcf $workdir/00.filter/clean.sorted.vcf.gz \ -KinshipPlugin -method Centered_IBS -endPlugin -export kinship.txt -exportType SqrMatrix kinship=$workdir/06.gwas_tassel/kinship.txtstructure=$workdir/06.gwas_tassel/pca1.txt#也可以用structure计算的Q矩阵,但是需要去掉最后一列#GLM方法,不考虑亲缘关系的影响run_pipeline.pl -Xmx30G -fork1 -vcf $workdir/00.filter/clean.sorted.vcf.gz \ -fork2 -t $tassel_trait -fork3 -q $structure -excludeLastTrait \ -combine5 -input1 -input2 -input3 -intersect -FixedEffectLMPlugin \ -endPlugin -export gwas_hd_GLMcut -f 3,4,6 gwas_hd_GLM1.txt>glm_pvalue.txtRscript $scriptdir/gwas_manhattan_plot.r -i glm_pvalue.txt -F $FAI -T heading_days -n heading_days_glm_manhattan -c 1.5e-5Rscript $scriptdir/qq_plot.r -i glm_pvalue.txt -n heading_days_glm_qq#MLM方法#单个表型数据关联 run_pipeline.pl -Xmx30g -fork1 -vcf $workdir/00.filter/clean.sorted.vcf.gz \ -fork2 -r $tassel_trait -fork3 -q $structure -excludeLastTrait \ -fork4 -k $kinship -combine5 -input1 -input2 -input3 \ -intersect -combine6 -input5 -input4 -mlm -mlmVarCompEst P3D \ -mlmCompressionLevel None -export gwas_hd_MLM -runfork1 -runfork2 -runfork3 -runfork4cut -f 3,4,7 gwas_hd_MLM2.txt|grep -v "NaN" >mlm_pvalue.txtRscript $scriptdir/gwas_manhattan_plot.r -i mlm_pvalue.txt -F $FAI -T heading_days -n heading_days_mlm_manhattan -c 1.5e-5Rscript $scriptdir/qq_plot.r -i mlm_pvalue.txt -n heading_days_mlm_qq#CMLM run_pipeline.pl -Xmx30g -fork1 -vcf $workdir/00.filter/clean.sorted.vcf.gz \ -fork2 -r $tassel_trait -fork3 -q $structure -excludeLastTrait \ -fork4 -k $kinship -combine5 -input1 -input2 -input3 \ -intersect -combine6 -input5 -input4 -mlm -mlmVarCompEst P3D \ -mlmCompressionLevel Optimum -export gwas_hd_CMLM -runfork1 -runfork2 -runfork3 -runfork4cut -f 3,4,7 gwas_hd_CMLM2.txt|grep -v "NaN" >cmlm_pvalue.txtRscript $scriptdir/gwas_manhattan_plot.r -i cmlm_pvalue.txt -F $FAI -T heading_days -n heading_days_cmlm_manhattan -c 1.5e-5Rscript $scriptdir/qq_plot.r -i cmlm_pvalue.txt -n heading_days_cmlm_qq####################################################################利用emmax进行GWAS分析###################################################################cd $workdir #回到工作目录mkdir 08.gwas_emmaxcd 08.gwas_emmax## prepare vcfplink --vcf $workdir/00.filter/clean.sorted.vcf.gz --maf 0.05 --geno 0.1 --recode12 --output-missing-genotype 0 --transpose --out snp_filter --set-missing-var-ids @:# --allow-extra-chr## prepare phenotypeperl $scriptdir/sort_trait.pl snp_filter.tfam ../06.gwas_tassel/hd.txt > hd.sort.txt#kinshipemmax-kin-intel64 -v -d 10 -o ./pop.kinship snp_filter#关联分析emmax-intel64 -v -d 10 -t snp_filter -p hd.sort.txt -k pop.kinship -o emmax.out 1> emmax.log 2>emmax.err#合并数据paste snp_filter.map emmax.out.ps | awk 'BEGIN{print "CHR\tPOS\tP"}{if($2==$5){print $1"\t"$4"\t"$NF}}' > emmax.pvalueRscript $scriptdir/gwas_manhattan_plot.r -i emmax.pvalue -F $FAI -T heading_days -n heading_days_emmax_manhattan -c 1.5e-5Rscript $scriptdir/qq_plot.r -i emmax.pvalue -n heading_days_emmax_qq###########################emmax +Q################################## #注意Q矩阵要去掉最后一列paste LDfiltered.nosex admixture.5.Q |awk '{print $1" "$2" 1 "$3" "$4" "$5" "$6}' > pop.Qmatrixemmax-intel64 -v -d 10 -t snp_filter -p trait.sort.txt -k pop.kinship -c pop.Qmatrix -o emmax.out.Q 1> emmax.log 2>emmax.errpaste snp_filter.map emmax.out.Q.ps | awk 'BEGIN{print "CHR\tPOS\tP"}{if($2==$5){print $1"\t"$4"\t"$NF}}' > emmax.q.pvalueRscript $scriptdir/gwas_manhattan_plot.r -i emmax.q.pvalue -F $FAI -T heading_days -n heading_days_emmax.q_manhattan -c 1.5e-5Rscript $scriptdir/qq_plot.r -i emmax.q.pvalue -n heading_days_emmax.q_qq####################################################################利用gapit进行GWAS分析###################################################################cd $workdir #回到工作目录mkdir 07.gwas_gapitcd 07.gwas_gapit#vcf 转换成 hmp格式:run_pipeline.pl -Xms10G -Xmx64G -fork1 -vcf $workdir/00.filter/clean.sorted.vcf.gz \ -export ./hapmap -exportType Hapmap#排序run_pipeline.pl -Xms10g -Xmx100g -vcf genotype.filter.vcf -sortPositions -export genotype.filter.hapmap -exportType HapmapDiploid#关联分析for m in GLM MLM MLMLM CMLM ECMLM SUPER FarmCPU Blink FaST EMMA EMMAx;do echo "gapit_gwas.r -i hapmap.hmp.txt -t hd.txt -o $m -m $m" gapit_gwas.r -i hapmap.hmp.txt -t hd.txt -o $m -m $mdone#可视化绘图cd GLMcut -d "," -f 2-4 GAPIT.GLM.heading_days.GWAS.Results.csv|sed 's#,#\t#g'>pvalue.txtRscript $scriptdir/gwas_manhattan_plot.r -i pvalue.txt -F $FAI -T heading_days -n heading_days_manhattan -c 1.5e-5Rscript $scriptdir/qq_plot.r -i pvalue.txt -n heading_days_qq####################################################################利用GEMMA进行GWAS分析###################################################################cd $workdir #回到工作目录mkdir 09.gwas_GEMMAcd 09.gwas_GEMMAvcftools --gzvcf $workdir/00.filter/clean.sorted.vcf.gz --plink --out outplink --file out --make-bed --out test --noweb#因为GEMMA是通过识别plink格式的fam文件中的表型来进行关联分析的,所以我们需要预处理一下,#把表型数据添加进去。添加到fam文件的6,7,8...等等列。#性状排序perl $scriptdir/sort_trait.pl test.fam ../06.gwas_tassel/hd.txt |cut -f 3 > hd.sort.txt#合并文件cat test.fam | cut -d " " -f 1-5 |paste -d " " - hd.sort.txt >test.fam1mv -f test.fam1 test.fam#获得kinship矩阵,使用混合线性模型进行分析。#-gk 2 标准化的方法计算G矩阵gemma -bfile test -gk 2 -o kin#关联分析gemma -bfile test -k output/kin.sXX.txt -lmm 1 -o hd#其中:#chr:SNP所在染色体号#rs: SNP名称#ps: SNP物理位置#n_miss: SNP缺失个体数#allele1: 次等位基因#allele0: 主等位基因#af:SNP频率#beta: SNP效应值#se: beta估计标准误#l_remle: 计算该SNP效应时对应的lamda的remle估计值。#p_wald :wald检验P值#其中,我们最关心的三个结果是chr, ps, p_wald,我们可以借助这三个结果画曼哈顿图和QQ图。l_remle比较难理解,需要懂模型才知道它的含义,但对分析来说,不是很重要。cat hd.assoc.txt|sed 's#S##' |awk -F "[\t_]" 'BEGIN{OFS="\t"}{print $2,$4,$NF}'>pvalue.txtRscript $scriptdir/gwas_manhattan_plot.r -i pvalue.txt -F $FAI -T heading_days -n heading_days_manhattan -c 1.5e-5Rscript $scriptdir/qq_plot.r -i pvalue.txt -n heading_days_qq
到此,关于"GWAS分析docker镜像使用的方法"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
分析
目录
工作
方法
数据
进化
镜像
基因
文件
格式
关联
矩阵
分组
学习
排序
变量
名称
性状
更多
结果
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
工作站 管理服务器
数据库建e
数据库服务器负载均衡
南关区网络安全服务至上
网络安全技术课外笔记
数据库中超市系统
重庆应用软件开发收费报价表
网络安全产业集中签约活动
漂浮悬浮时f服务器
软件开发去那个网站
大专电脑软件开发
软件实施工程师和软件开发
ie不能设置代理服务器
阿里服务器正常的收费标准
家电电控软件开发区别知乎
银行行业网络安全
数据库节点什么意思
30多台电脑组建局域网服务器
服务器不稳定
青海朵航互联网科技有限公司
山西开源软件开发哪家强
诚涛网络技术
国产硬核数据库
江宁区智能化软件开发创新服务
网络安全法正式实行时间为
数据库快照是什么
ie不能设置代理服务器
国家网络安全立法的核心
机房里服务器是什么品牌的
苏州软件开发工程师学习班