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

news2024/11/15 4:53:22

我们可以将预测的基因型比例视为在种群中看到一组特定等位基因的概率。如果种群在等位基因频率上存在差异,我们可以使用基因型来推断个体起源于每个种群的相对可能性。大家可以先看一下之前的博客:群体遗传学_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.coloradmin.cn/o/1910332.html

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

相关文章

同星智能正式推出CAN总线一致性测试系统

CAN总线一致性测试系统 CAN FD/CAN总线一致性测试系统&#xff0c;在硬件系统上基于同星自主研发的总线分析工具&#xff0c;干扰仪&#xff0c;一致性测试机箱&#xff0c;并搭配程控电源&#xff0c;示波器&#xff0c;数字万用表等标准外围仪器设备&#xff1b;在软件上基于…

Python轻松实现人脸检测,打造专业级AI颜值鉴定工具

Python实现人脸检测 1. 简介1.1 人脸检测的背景和意义1.2 使用Python进行人脸检测的优势1.2.1 多种成熟的库和工具1.2.2 开发者社区的支持1.2.3 简便易用的语法和库 2. 准备工作2.1 Python环境的安装2.1.1 下载Anaconda2.1.2 安装Anaconda2.1.3 使用Anaconda 2.2 第三方库的安装…

数据结构——Trie

题目&#xff1a; 维护一个字符串集合&#xff0c;支持两种操作&#xff1a; I x 向集合中插入一个字符串 x&#x1d465;&#xff1b;Q x 询问一个字符串在集合中出现了多少次。 共有 N&#x1d441; 个操作&#xff0c;所有输入的字符串总长度不超过 10^5&#xff0c;字符串仅…

使用Python绘制箱线图并分析数据

使用Python绘制箱线图并分析数据 在这篇博客中&#xff0c;我们将探讨如何使用Python中的pandas库和matplotlib库来绘制箱线图&#xff0c;并分析数据文件中的内容。箱线图是一种常用的图表类型&#xff0c;用于展示数据的分布情况及其统计特性&#xff0c;如中位数、四分位数…

【Linux】vim详解

1.什么是vi/vim? 简单来说&#xff0c;vi是老式的文本编辑器&#xff0c;不过功能已经很齐全了&#xff0c;但是还是有可以进步的地方。vim则可以说是程序开发者的一项很好用的工具&#xff0c;就连 vim的官方网站&#xff08; http://www.vim.org&#xff09;自己也说vim是一…

【Perforce】QAC-分析时如何不应用某些规则

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决扫描项目时如何不应用某些规则进行分析。 2、 问题场景 对于一些建议性的MISRA规则&#xff0c;不想用于项目扫描&#xff0c;如何处理&#xff1f; 3、软硬件环境 1、软件版本&#xff1a;HelixQAC23.04 2…

STM32CubeIDE离线汉化教程

按照网上的方法下载好ZIP文件后 帮助->安装新软件-> 按顺序选择文件 点击完成&#xff0c;后等待右下脚的精度条到位即可

总结之企业微信(一)——创建外部群二维码,用户扫码入群

创建外部群 企微接口中没有直接通过服务端API接口创建外部群 可以通过jssdk创建外部群&#xff1a;引用jssdk调用会话接口wx.openEnterpriseChat https://work.weixin.qq.com/api/doc/90000/90136/90511 创建外部群二维码 需要通过企业微信的应用&#xff0c;并且配置客户联…

绝区陆--大语言模型的幻觉问题是如何推动科学创新

介绍 大型语言模型 (LLM)&#xff08;例如 GPT-4、LLaMA-2、PaLM-2、Claude-2 等&#xff09;已展示出为各种应用生成类似人类文本的出色能力。然而&#xff0c;LLM 的一个鲜为人知的方面是它们倾向于“产生幻觉”或生成不正确或没有根据的事实陈述。我不认为这仅仅是一个限制…

下载安装Microsoft DirectX SDK(June 2010)

官方下载网址如下&#xff1a; Microsoft DirectX SDK(June 2010)链接 下载后是一个.exe文件 在安装之前&#xff0c;需要先检查你的电脑中是否已经安装过&#xff08;如果你安装过VS&#xff0c;那么一定会有这两个文件&#xff09; Microsoft Visual C 2010 x86 Redistribu…

解决 NullReferenceException: Object reference not set to an instance of an object

在 Unity 中 利用 URDF Importer import UR5e_gripper 的 URDF file 时出现错误&#xff1a; NullReferenceException: Object reference not set to an instance of an object。 理论上是有个Object 是 Null&#xff0c;当我再次检查URDF后仍觉得路径没有写错。 于是我 把Mesh…

压缩感知2——算法模型

采集原理 其中Y就是压缩后的信号表示(M维)&#xff0c;Φ表示采集的测量矩阵&#xff0c;可以是一个随机矩阵&#xff0c;X代表原始的数字信号&#xff08;N维&#xff09;。 常见的测量矩阵——随机高斯矩阵 随机伯努利矩阵 稀疏随机矩阵等&#xff0c;矩阵需要满足与信号的稀…

SenseVoice - 阿里最新开源精准多语言语音识别与情感辨识模型 本地一键整合包下载

阿里巴巴近期发布了开源语音大模型项目FunAudioLLM&#xff0c;该项目包含了两个核心模型&#xff1a;SenseVoice和CosyVoice。可以精准多语言识别并且进行语音克隆 本地一键包下载地址&#xff1a; SenseVoice - 精准多语言语音识别与情感辨识模型 本地一键整合包下载 SenseVo…

Appium-移动端自动测试框架详解

Appium是一个开源跨平台移动应用自动化测试框架。 既然只是想学习下Appium如何入门&#xff0c;那么我们就直奔主题。文章结构如下&#xff1a; 为什么要使用Appium&#xff1f;如何搭建Appium工具环境?(超详细&#xff09;通过demo演示Appium的使用Appium如何实现移动端UI自…

基层医院、专科医院云HIS系统,支持电子病历四级,全套源码交付

云HIS系统采用B/S架构云端SaaS服务的方式提供&#xff0c;使用用户通过浏览器即能访问&#xff0c;无需关注系统的部署、维护、升级等问题&#xff0c;系统充分考虑了模板化、配置化、智能化、扩展化等设计方法&#xff0c;覆盖了基层医院的主要工作流程&#xff0c;能够与监管…

大模型常见的LoRA算法原理、实现和运用详解

文章目录 1. 前言2. 算法介绍2.1 微调2.2 核心思想 3. 几个关键问题3.1 LoRA如何应用在Transformer上3.2 LoRA的最佳秩r如何选择3.3 W W W和 Δ W \Delta W ΔW有什么关系 4. 源码5. 实际应用6. 总结7. 参考 1. 前言 本文是常用算法的快速浏览入门&#xff08;扫盲&#xff0…

升级iOS18有问题?学会这2招能解决90%iOS问题!

在 iOS 18beta发布后&#xff0c;有部分朋友升级后表示遇到了各种奇怪问题&#xff0c;比如升级卡在Apple Logo&#xff0c;黑屏&#xff0c;无限重启&#xff0c;卡在恢复模式&#xff0c;程序闪退&#xff0c;电池消耗过快&#xff0c;发烫等问题。 于是&#xff0c;小编决定…

HTML(27)——渐变

渐变是多个颜色逐渐变化的效果&#xff0c;一般用于设置盒子模型 线性渐变 属性&#xff1a;background-image : linear-gradient( 渐变方向 颜色1 终点位置, 颜色2 终点位置, ......&#xff09;&#xff1b; 取值: 渐变方向:可选 to 方位名词角度度数 终点位置:可选 百分…

生物素标记的柚皮苷探针;Biotin-Naringin

生物素标记的柚皮苷探针&#xff08;Biotin-Naringin&#xff09;是一种结合了生物素&#xff08;Biotin&#xff09;和柚皮苷&#xff08;Naringin&#xff09;特性的化合物&#xff0c;它在有机合成及药物化学技术领域具有重要意义。以下是对该探针的详细解析&#xff1a; 一…

研华工控机 UNO-2473G WIN7专业版系统下安装网卡驱动异常

基本配置&#xff1a;UNO-2473G、Windows 7 Pro 64bit 常规型嵌入式工控机&#xff0c;搭配Intel Atom™ E3845/Celeron J1900 处理器 第四代Intel Atom/Celeron J1900处理器&#xff0c;最高可达1.91/2.0 GHz&#xff0c;4GB DDR3L存储4/2 x GbE, 3 x USB 2.01 x USB 3.0或4…