localPCA选择信号分析

作者: DumplingLucky | 来源:发表于2021-05-04 20:16 被阅读0次

文章来源:Local PCA Shows How the Effect of Population Structure Differs Along the Genome
群体结构是衡量大型基因组数据集中个体之间相关性度量的系统化模式,通常使用降维技术,如主成分分析(PCA)来发现和可视化这些模式。平均关联性是特定于位点的系谱树之间关系的平均值,这种关联性可能会受到相关选择和其他因素的强烈影响,如结构变异等。通过使用区域PCA(localPCA)在关联模式中描述这种小规模的异质性,用于发现影响仅在几个兆碱基的种群结构变化。

1. 安装

install.packages("devtools")
install.packages("data.table")
devtools::install_github("petrelharp/local_pca/lostruct")
library(lostruct)

2. 所需软件

(1)读取VCF或BCF文件:bcftools
(2)实现测试分析:下载模版

3. 运行

(1)使用 eigen_windows() 计算局部PCA坐标
函数 eigen_windows() 将数据存储在矩阵中,每个SNP一行,每个样本一列(因此x [ i,j ]是样本 j 在位置 i 处的等位基因数)。

#两种方式从标准格式(tped和vcf)中读取数据
snps <- read_tped("mydata.tped")
snps <- read_vcf("mydata.vcf")
#或者
bcftools convert -O b mydata.vcf > mydata.bcf
bcftools index mydata.bcf
snps <- vcf_windower("my_data.bcf",size=1e3,type='snp')
snps(10)
#计算localPCA坐标
pcs <- eigen_windows(snps,k=2)
#计算距离矩阵
pcdist <- pc_dist(pcs,npc=2)

这将提供一个矩阵pcs,行是每个窗口的前两个特征值和特征向量,以及pcdist,即这些窗口之间的成对距离矩阵。
(2)使用 cmdscale() 可视化MDS

#可视化代码示例
a<-read.table("quick_method_pairwise_distance_between_win_100_chr1")
k=which(is.na(a),arr.ind=TRUE)
a[k]=0
a=a+t(a)
a <- as.matrix(a)
a=sqrt(a)
fit2d<-cmdscale(a,eig=TRUE, k=2)  # MDS_2D#
x <- fit2d$points[,1]
y <- fit2d$points[,2]
pdf(file="MDS_2D_win100_chr1.pdf")
layout(1:2)
par(mar=c(4,3,1,1)+0.1)
plot(x, y, xlab="Coordinate 1", ylab="Coordinate 2", main="MDS_2D_chr1", col=rainbow(2*nrow(a)))
plot(1:nrow(a),col=rainbow(2*nrow(a)))
dev.off()

fit1d<-cmdscale(a,eig=TRUE, k=1)  # MDS_1D#
x <- fit1d$points[,1]
pdf(file="MDS_1D_win100_chr1.pdf")
plot(x,ylab="Coordinate 1", main="MDS_1D_chr2")
dev.off()

参考:https://github.com/petrelharp/local_pca

相关文章

  • localPCA选择信号分析

    文章来源:Local PCA Shows How the Effect of Population Structu...

  • 群体选择信号分析

    群体进化与选择信号:●生活在世界不同区域的生物群体在历史长河中经历千万年的自然选择、人工驯化、迁徙、遗传漂变等事件...

  • 仿真信号

    程序框图->express->信号分析->仿真信号 如果选择“正弦信号”,就是sinx,不是cosx…想产生cos...

  • 鸡的选择信号分析代码

  • XP-CLR选择信号分析

    检测基因组选择信号的方法有很多种,其中 XP-CLR 方法是常用的一种。XP-CLR 是陈华老师、Nick Pat...

  • pi分析

    单个群体的基因组选择信号分析(pi分析) Pi值 Tajima D; Pi主要用来衡量每个site的nucleot...

  • OpenCV-Python学习(十):图像滤波之傅里叶变换

    滤波分析又分为 时域分析、频域分析: 时域分析: 直接对信号本身进行分析。 频域分析: 对信号的变化快慢进行分析。...

  • 用FFT实现频谱分析

    频谱分析的目的是通过分析信号的频谱组成,实现对信号特性的分析,便于后续的处理。时域信号一般可分为连续和离散信号,在...

  • 【对讲机的那点事】Clover 的信号特性和信号分析

    在前文中我们谈到了PACTOR的信号特征及信号分析,接下来我们来聊聊Clover 的信号特性和信号分析: CLOV...

  • 信号分析

    李佳 学号19011210599 【嵌牛导读】介绍一些函数、信号 【嵌牛鼻子】信号 MATLAB函数 【嵌牛提问...

网友评论

    本文标题:localPCA选择信号分析

    本文链接:https://www.haomeiwen.com/subject/vyxfdltx.html