【基于R语言群体遗传学】-14-种群起源的相对似然

我们可以将预测的基因型比例视为在种群中看到一组特定等位基因的概率。如果种群在等位基因频率上存在差异,我们可以使用基因型来推断个体起源于每个种群的相对可能性。大家可以先看一下之前的博客:群体遗传学_tRNA做科研的博客-CSDN博客


种群起源的相对似然

假设我们有一个在南太平洋采集的蓝鲸(Balaenoptera musculus)的DNA样本,我们想推断这个个体是起源于南极种群还是澳大利亚种群(目前被认为是亚种,分别是B. m. intermedia和B. m. brevicauda)。下表列出了蓝鲸七个微卫星的实际基因型。

我们可以利用鲸鱼基因型表来确定这两个鲸鱼种群中等位基因的频率(Attard等人,2012年)。我们的popgenr软件包中的“whale”数据集包含了来自南极和澳大利亚的大量鲸鱼基因型。 可以计算两个地区鲸鱼群体中等位基因的频率。这通常涉及到统计每个微卫星位点上不同等位基因的出现次数,并将这些次数除以总的等位基因数量以得到频率。 一旦获得了等位基因频率,就可以比较南极和澳大利亚两个地区的鲸鱼群体在这些微卫星位点上的遗传差异。这种比较有助于理解不同地理区域鲸鱼群体的遗传结构,并可能揭示迁移模式、繁殖隔离或其他进化过程的证据。 


这个数据集包含了264个蓝鲸个体在七个不同位点上的基因型。让我们尝试计算每个等位基因的等位基因频率,特别是在每个亚种群内。为了做到这一点,我们需要先从一个地点,然后从另一个地点计算每个等位基因的数量。因为蓝鲸是二倍体,每个位点名称都有一个下标“1”或“2”来指定每个位点的两个不同副本。我们对数据进行基本处理:

library(popgenr)
data("whale")# 提取唯一的基因座(loci)名称,移除列名中的下划线和后续字符
loci <- unique(sub(pattern="_.", replacement="", colnames(whale)[-1]))# 初始化一个空的数据框,用于存储结果
dat <- NULL# 遍历每个独特的地理位置
for(i in unique(whale$Location)){# 筛选出当前地理位置的鲸鱼数据x <- whale[whale$Location==i,]# 对每个基因座进行处理for(j in loci){# 构造基因座的第一和第二等位基因的列名loc1 <- paste(j, "_1", sep="")loc2 <- paste(j, "_2", sep="")# 计算这两个等位基因的频率count <- table(c(x[,colnames(x)==loc1], x[,colnames(x)==loc2]))freq <- count / sum(count)# 创建一个包含地点、基因座和频率的数据框y <- data.frame(i, j, freq)# 将这个数据框添加到结果数据框中dat <- rbind(dat, y)}
}# 设置最终数据框的列名
colnames(dat) <- c("Location", "Locus", "Allele", "Frequency")# 显示数据框的前几行以检查结果
head(dat)

现在我们已经得到了每个群体的等位基因频率,我们可以使用p²i2pipj来计算预期的纯合子和杂合子,然后开始得到我们神秘鲸鱼在两个群体中出现的相应基因型的概率。

来自第i个种群的多位点基因型数据(x)的概率是每个基因型j的乘积,它是人群i中相应等位基因频率(pk或pl)的函数,并根据基因型的合子性计算得出,我们先计算GATA位点和Bmy位点:

# 计算南极地区在GATA028位点上,等位基因189和201的频率乘积的两倍
2 * dat[dat$Location == "Antarctica" &dat$Locus == "GATA028" &dat$Allele == 189, ]$Frequency *dat[dat$Location == "Antarctica" &dat$Locus == "GATA028" &dat$Allele == 201, ]$Frequency# 计算澳大利亚地区在GATA028位点上,等位基因189和201的频率乘积的两倍
2 * dat[dat$Location == "Australia" &dat$Locus == "GATA028" &dat$Allele == 189, ]$Frequency *dat[dat$Location == "Australia" &dat$Locus == "GATA028" &dat$Allele == 201, ]$Frequency# 计算南极地区在Bmy1位点上,等位基因265的频率的平方
dat[dat$Location == "Antarctica" &dat$Locus == "Bmy1" &dat$Allele == 265, ]$Frequency^2# 计算澳大利亚地区在Bmy1位点上,等位基因265的频率的平方
dat[dat$Location == "Australia" &dat$Locus == "Bmy1" &dat$Allele == 265, ]$Frequency^2

 假设这些位点是独立遗传的(它们之间有足够的重组并且不是紧密连锁的),我们可以将各个基因型的概率相乘。

上面的例子给出了我们的鲸鱼来自南极种群的总概率。对两个种群进行乘法运算,我们得到的概率非常小,即我们的蓝鲸来自南极(1.905097 × 10^-9)或澳大利亚(1.338643 × 10^-7)。事实上,任何单个复合基因型出现的概率都很低,但我们可以比较概率的可能性比率(一个种群中基因型的概率与另一个种群的概率相比)。

以及两个种群之间的概率占两个概率总和的比例(相对概率):

(Ant <- 0.0569*0.00978*0.121*0.0788*0.0959*0.0192*0.195)
(Aus <- 0.101*0.00723*0.202*0.303*0.760*0.0492*0.0801)
(Rat_ant <- Ant/Aus)
(Rat_aus <- Aus/Ant)
(Rel_ant <- Ant/(Ant+Aus))
(Rel_aus <- Aus/(Ant+Aus))

我们通过pia图进行可视化:

任何单一的微卫星都不是诊断性的,一些基因型在澳大利亚群体中更可能出现,而其他基因型在南极洲更可能出现。然而,有了足够的数据,在这个案例中是七个微卫星,我们可以为我们的鲸鱼可能起源的地方建立一个更有力的案例。我们采样的鲸鱼来自澳大利亚的可能性大约是70倍,确实如此。

DNA fingerprinting

DNA指纹技术作为新技术,给比如亲子鉴定、疑犯鉴定提供了精确的方法,我们来简要看一些问题:

-1-个体并不是从种群中随机抽取的,而是以亲属群的形式存在,他们更有可能共享基因型。

-2-某些个体(人类的同卵双胞胎、无性繁殖克隆或单性生殖物种)在基因上基本上是相同的。检测双胞胎之间罕见的突变差异并考虑体细胞突变,需要比通常进行的更为庞大的基因分型工作。 -3-选择合适的参考种群(一个或多个)来确定等位基因频率会影响计算,而且并不总是清楚哪个种群是最合适的参考。此外,从个体收集遗传数据也存在伦理和法律问题

-4-突变确实会发生。高度可变的标记物,如微卫星,之所以高度可变,是因为它们具有高突变率。偶尔会出现新的突变,可能会使推断变得复杂,如亲子鉴定分析。

-5-这里列出的许多问题使得标准概率计算变得不那么保守;然而,一般来说,足够数量的标记将产生压倒性的概率,可以克服这些问题。 在批判性地解释DNA指纹识别数据时,还必须考虑非遗传因素,如样本可能被污染或混合,人为错误(或故意伪造),如样本标签错误等。这些因素产生的概率可能远高于随机机会下真正的多位点基因型匹配。

对于种群起源的问题远比这里所列出的一些要复杂的多,以后也会更新一些自己的工作。

下一篇博客将讲述最重要的coalescent 理论,也就是溯祖理论

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/43527.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python OpenCV 教学取得视频资讯

这篇教学会介绍使用OpenCV&#xff0c;取得影像的长宽尺寸、以及读取影像中某些像素的颜色数值。 因为程式中的OpenCV 会需要使用镜头或GPU&#xff0c;所以请使用本机环境( 参考&#xff1a;使用Python 虚拟环境) 或使用Anaconda Jupyter 进行实作( 参考&#xff1a;使用Anaco…

基于Python的51job招聘数据采集与可视化项目实践

项目背景与目标 在当今竞争激烈的就业市场中&#xff0c;深入分析招聘信息对于求职者和企业都具有重要意义。基于Python的51job招聘数据采集与可视化项目旨在通过自动化手段高效获取大量招聘信息&#xff0c;并对这些数据进行深度分析和展示。 51job作为中国领先的招聘网站&…

RockyLinux9上安装Nacos2.3.0(非Docker安装)

RockyLinux9上安装Nacos2.3.0 说明什么是Nacos下载并安装创建一个nacos-conf数据库修改application.properties文件 启动访问网址查看是否成功 开启访问鉴权 说明 本文采用的是&#xff1a;安装包安装&#xff0c;非Docker安装&#xff0c;系统采用的Rocky Linux9.4。   当前…

C++ 【 Open3D 】 读取、可视化并保存点云

一、读取常见点云 #include <iostream> #include <Open3D/Open3D.h>int main(int argc, char* argv[]) {std::string fileName("hand.pcd");auto cloud_ptr std::make_shared<open3d::geometry::PointCloud>();if (open3d::io::ReadPointCloud(f…

警钟!电池储能安全事故频发!物联网技术如何加强储能安全排查?

在新能源时代背景下&#xff0c;储能系统作为能源转型的关键支撑技术&#xff0c;其安全问题日益凸显&#xff0c;尤其是近期海外电池项目连续发生的事故&#xff0c;为全球储能行业敲响了警钟。面对这一挑战&#xff0c;物联网技术以其强大的数据采集、智能分析与远程监控能力…

Python基础知识——(002)

文章目录 P8——7. input函数的使用 基本的输入函数input P9——8. Python中的注释 P10——9. Python中的缩进与本章总结 本章总结 P11——10. 章节习题 P8——7. input函数的使用 基本的输入函数input 语法结构&#xff1a; x input(提示文字) 注意事项&#xff1a;无论输…

PMON的解读和开发

提示&#xff1a;龙芯2K1000PMON相关记录 文章目录 1 PMON的发展和编译环境PMONPMON2000 2 PMON2000的目录结构3 Targets目录的组成4 PMON编译环境的建立5 PMON2000的框架6 异常向量表7 Pmon的空间分配8 PMON的汇编部分(starto.S或sbdreset.S)的解读Start.SC代码部分dbginit 9 …

点云曲面提取

csdn是不是有有什么大bing&#xff1f;gif只能上传5m我吐了在线GIF动图压缩 - docsmall 在线GIF动图压缩工具,在线GIF动图压缩软件 代码整理中

单元测试Spring 上下文加载过程中遇到的阻塞或死锁问题

IDEA单元测试一直转圈&#xff0c;阻塞&#xff0c;前置后置的方法都不执行&#xff0c;无任何输出 1.单元测试类 SpringBootTest(classes {BareMetalApplication.class}) RunWith(SpringRunner.class) public class K8sUserNfsStoreInitServiceImplTest {BeforeEachpublic…

【结构性型模式-适配器模式】

定义 将一个类的接口转换成客户希望的另外一个接口&#xff0c;使得原本由于接口不兼容而不能一起工作的那些类能一起工作。 适配器模式分为类适配器模式和对象适配器模式&#xff0c;前者类之间的耦合度比后者高&#xff0c;且要求程序员了解现有组件库中的相关组件的内部结…

基于Java+SpringMvc+Vue技术的图书管理系统的设计与实现(60页论文参考)

博主介绍&#xff1a;硕士研究生&#xff0c;专注于Java技术领域开发与管理&#xff0c;以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年&#xff0c;拥有近12年的管理工作经验&#xff0c;拥有较丰富的技术架构思想、较扎实的技术功底和资深的项目管理经…

RISC-V 指令系统

指令系统 指令集 指令集从本质上可以分为复杂指令集&#xff08;Complex Instruction Set Computing&#xff0c;CISC&#xff09;和精简指令集&#xff08;Reduced Instruction Set Computing&#xff0c;RISC&#xff09;两种。复杂指令集的特点是能够在一条指令内完成很多…

如何理解数据模型?颗粒度、维度及指标?

问题1 什么是数据模型&#xff1f; 数据模型反映在数据库中就是一张表&#xff0c;该表把他分开来看有以下关注的点。 &#xff08;1&#xff09;主键&#xff1a;表明该表主要的分析对象&#xff0c;比如我们的分析对象是订单、是商品、是门店&#xff0c;那么主键就是订单id,…

Qt 线程 QThread类详解

Qt 线程中QThread的使用 在进行桌面应用程序开发的时候&#xff0c; 假设应用程序在某些情况下需要处理比较复杂的逻辑&#xff0c; 如果只有一个线程去处理&#xff0c;就会导致窗口卡顿&#xff0c;无法处理用户的相关操作。这种情况下就需要使用多线程&#xff0c;其中一个…

昇思MindSpore学习笔记6-02计算机视觉--ResNet50迁移学习

摘要&#xff1a; 记录MindSpore AI框架使用ResNet50迁移学习方法对ImageNet狼狗图片分类的过程、步骤。包括环境准备、下载数据集、数据集加载、构建模型、固定特征训练、训练评估和模型预测等。 一、概念 迁移学习的方法 在大数据集上训练得到预训练模型 初始化网络权重参数…

【机器学习】特征选择:精炼数据,提升模型效能

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 特征选择&#xff1a;精炼数据&#xff0c;提升模型效能引言为何进行特征选择&a…

STM32的独立看门狗详解

目录 1.独立看门狗是什么&#xff1f; 2.独立看门狗的作用 3.独立看门狗的实现原理 4.独立看门狗用到的寄存器 4.1 IWDG_KR &#xff08;关键字计时器&#xff09; 4.2 IWDG_PR&#xff08;预分频寄存器&#xff09; 4.3 IWDG_RLR&#xff08;重装载寄存器&#xff09…

接口调用的三种方式

例子&#xff1a; curl --location http://110.0.0.1:1024 \ --header Content-Type: application/json \ --data {"task_id": 1 }方式一&#xff1a;postman可视化图形调用 方式二&#xff1a;Vscode中powershell发送请求 #powershell (psh) Invoke-WebRequest -U…

温州海经区管委会主任、乐清市委书记徐建兵带队莅临麒麟信安调研

7月8日上午&#xff0c;温州海经区管委会主任、乐清市委书记徐建兵&#xff0c;乐清市委常委、副市长叶序锋&#xff0c;乐清市委办主任郑志坚一行莅临麒麟信安调研&#xff0c;乐清市投资促进服务中心及湖南省浙江总商会相关人员陪同参加。麒麟信安董事长杨涛、总裁刘文清热情…

elasticsearch集群模式部署

系统版本&#xff1a;CentOS Linux release 7.9.2009 (Core) es版本&#xff1a; elasticsearch-7.6.2 本次搭建es集群为三个节点 添加启动用户 添加之前用户要是创建好了的(这里的es用户并不是绝对要求&#xff0c;你可以根据具体的需要命名创建) visudo 修改配置文件 sys…