简化基因组群体分析

1.stack寻找位点
1)数据预处理
数据下机经过拆分去接头获得原始数据


图片.png

由于拆分数据用的引物街头长度不一,获得的原始数据的长度也有差异,这对后续stack分析有影响,这里为了减少后续分析的麻烦截取reads的前135bp
使用工具seqtk

seqtk trimfq -L 135 ../data/FNA-7.2.fq.gz > FNA-7.2.fq

2)stack运行流程
由于没有近缘的参考基因组,采用无参流程。该流程参考stack官网步骤(http://catchenlab.life.illinois.edu/stacks/manual/#popmap)。

#!/bin/bash

src=$HOME/research/project

files=”sample_01
sample_02
sample_03”

#
# Build loci de novo in each sample for the single-end reads only. If paired-end reads are available, 
# they will be integrated in a later stage (tsv2bam stage).
# This loop will run ustacks on each sample, e.g.
#   ustacks -f ./samples/sample_01.1.fq.gz -o ./stacks -i 1 --name sample_01 -M 4 -p 8
#
id=1
for sample in $files
do
    ustacks -f $src/samples/${sample}.1.fq.gz -o $src/stacks -i $id --name $sample -M 4 -p 8
    let "id+=1"
done

# 
# Build the catalog of loci available in the metapopulation from the samples contained
# in the population map. To build the catalog from a subset of individuals, supply
# a separate population map only containing those samples.
#
cstacks -n 6 -P $src/stacks/ -M $src/popmaps/popmap -p 8

#
# Run sstacks. Match all samples supplied in the population map against the catalog.
#
sstacks -P $src/stacks/ -M $src/popmaps/popmap -p 8

#
# Run tsv2bam to transpose the data so it is stored by locus, instead of by sample. We will include
# paired-end reads using tsv2bam. tsv2bam expects the paired read files to be in the samples
# directory and they should be named consistently with the single-end reads,
# e.g. sample_01.1.fq.gz and sample_01.2.fq.gz, which is how process_radtags will output them.
#
tsv2bam -P $src/stacks/ -M $src/popmaps/popmap --pe-reads-dir $src/samples -t 8

#
# Run gstacks: build a paired-end contig from the metapopulation data (if paired-reads provided),
# align reads per sample, call variant sites in the population, genotypes in each individual.
#
gstacks -P $src/stacks/ -M $src/popmaps/popmap -t 8

#
# Run populations. Calculate Hardy-Weinberg deviation, population statistics, f-statistics
# export several output files.
#
#populations -P $src/stacks/ -M $src/popmaps/popmap -r 0.65 --vcf --genepop --structure --fstats --hwe -t 8
populations -P run1/ -M popmap_sample.tsv -r 0.8 --vcf --genepop --structure --hwe -t 30 --fasta-samples --plink --phylip_var_all  -O test #最后一步按照自己的需求获取相应的文件

1-1.位点过滤
得到原始的vcf文件后,一般位点会比较多,可能会包含许多假阳性位点等。所以进行一步过滤操作。

vcftools --gzvcf populations.snps.vcf.gz --max-missing 0.5 --mac 3  --recode --recode-INFO-all --out populations_filt 
###最大缺失率50%,等位基因次要基因型频数最少3

获得过滤后的vcf文件进行后续分析。

2.PCA分析
参考(https://zhuanlan.zhihu.com/p/45950835

library(gdsfmt)
library(SNPRelate)
vcf.t <- "study.vcf"
snpgdsVCF2GDS(vcf.t, "new_geno.gds", method = "biallelic.only")
genofile <- snpgdsOpen("new_geno.gds")
pca <- snpgdsPCA(genofile,autosome.only=FALSE)
pc.percent <- pca$varprop * 100
tab <- data.frame(sample.id = pca$sample.id, EV1 = pca$eigenvect[,1], EV2=pca$eigenvect[,2],EV3=pca$eigenvect[,3],EV4=pca$eigenvect[,4],stringsAsFactors =F)
plot(tab$EV2, tab$EV1, xlab="PC2", ylab="PC1")
图片.png

3.进化树分析

set.seed(100)
ibs.hc <- snpgdsHCluster(snpgdsIBS(genofile, num.thread=2,autosome.only = FALSE))
rv <- snpgdsCutTree(ibs.hc)
plot(rv$dendrogram, leaflab="perpendicular", main="Tree")

这里有个地方很奇怪,snpgdsIBS计算的时候矩阵会出现NaN,导致后面snpgdsHCluster聚类不成功,现在不知道什么原因,只能把NaN替换成0

b<-snpgdsIBS(genofile, num.thread=2,autosome.only = FALSE)
b$ibs[is.na(b$ibs)]<-0
ibs.hc <-snpgdsHCluster(b)

图片.png

4.Structure分析
vcf转bed参考(https://www.jianshu.com/p/dc82fcbe3cda)第一列要修改一下
使用admixture软件,输入plink格式的bed文件。
跑之前要对数据先处理一下

plink --vcf populations_filt.recode.vcf --recode --out Arab  --allow-extra-chr
cat  populations.plink.map | sed '1d' | awk '{print "1\t"$2"\t"$3"\t"$4}' > populations.plink1.map #第一列un软件识别不了,改成1
plink --make-bed --ped  populations.plink.ped --map populations.plink1.map

admixture plink.bed 2 
admixture plink.bed 4 

最终获得两个文件plink.2.P,plink.2.Q
画图

tab<-read.table('plink.2.Q')
barplot(t(as.matrix(tab)),col=rainbow(2),xlab="Individual #",ylab="Ancestry",border=NA)
图片.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,783评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,360评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,942评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,507评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,324评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,299评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,685评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,358评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,652评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,704评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,465评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,318评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,711评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,991评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,265评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,661评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,864评论 2 335

推荐阅读更多精彩内容

  • 一次简化基因组数据分析实战 尽管目前已经有大量物种基因组释放出来,但还是存在许多物种是没有参考基因组。使用基于酶切...
    xuzhougeng阅读 14,056评论 10 40
  • --- layout: post title: "如果有人问你关系型数据库的原理,叫他看这篇文章(转)" date...
    蓝坠星阅读 771评论 0 3
  • 五、Java 虚拟机 一、什么是Java虚拟机Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现...
    壹点零阅读 721评论 0 0
  • 在《程序员的思维修炼:开发潜能认知的九堂课》这本书中,介绍了一种从“新手”到“专家”的成长模型,既“德雷福斯模型”...
    灰鸽1号阅读 1,296评论 1 5
  • 一个不说,一个不问,一个不挽留,一个不回头,一个满腹深情,一个闭口不说。如果你能懂我,该多好。 前些日子突然做梦梦...
    L亦凉阅读 490评论 0 0