【基于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.rhkb.cn/news/372612.html

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

相关文章

pytest-yaml-sanmu(六):YAML数据驱动测试

如果说 pytest 中哪些标记使用得最多&#xff0c;那无疑是 parametrize 了&#xff0c; 它为用例实现了参数化测试的能力&#xff0c;进而实现了数据驱动测试的能力。 1. 使用标记 parametrize 的使用需要提高两个内容&#xff1a; 参数名 参数值 pytest 在执行用例时&…

javascript DOM BOM 笔记

Web API API的概念 API&#xff08;Application Programming Interface,应用程序编程接口&#xff09;是一些预先定义的函数&#xff0c;目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力&#xff0c;而又无需访问源码&#xff0c;或理解内部工作机制的细…

el-scrollbar实现自动滚动到底部(AI聊天)

目录 项目背景 实现步骤 实现代码 完整示例代码 项目背景 chatGPT聊天消息展示滚动面板&#xff0c;每次用户输入提问内容或者ai进行流式回答时需要不断的滚动到底部确保展示最新的消息。 实现步骤 采用element ui 的el-scrollbar作为聊天消息展示组件。 通过操作dom来实…

高智能土壤养分检测仪:农业生产的科技新助力

在科技日新月异的今天&#xff0c;农业领域也迎来了革命性的变革。其中&#xff0c;高智能土壤养分检测仪作为现代农业的科技新助力&#xff0c;正逐渐改变着传统的农业生产方式&#xff0c;为农民带来了前所未有的便利与效益。 高智能土壤养分检测仪&#xff0c;是一款集高科技…

共筑智能未来 | 思腾合力闪耀2024世界人工智能大会(WAIC 2024)

在刚刚结束的2024世界人工智能大会暨人工智能全球治理高级别会议&#xff08;WAIC 2024&#xff09;上&#xff0c;思腾合力作为行业领先的人工智能基础架构解决方案提供商&#xff0c;凭借卓越的产品和解决方案&#xff0c;成为展会上的亮点之一。此次盛会不仅展示了全球人工智…

Android 性能优化之启动优化

文章目录 Android 性能优化之启动优化启动状态冷启动温启动热启动 耗时检测检测手段TraceView使用方式缺点 Systrace环境配置使用方式TraceView和Systrace比较 AOP统计耗时环境配置使用 优化白屏优化异步加载优化环境配置使用 延迟加载优化AppStartup 源码下载 Android 性能优化…

网站高性能架构设计——高性能缓存架构

从公众号转载&#xff0c;关注微信公众号掌握更多技术动态 --------------------------------------------------------------- 一、缓存基础 1.缓存简介 缓存提升性能的幅度&#xff0c;不只取决于存储介质的速度&#xff0c;还取决于缓存命中率。为了提高命中 率&#xff0c…

HarmonyOS Next应用开发之系统概述

一、鸿蒙系统概述 鸿蒙系统可以分为华为鸿蒙系统&#xff08;HUAWEI HarmonyOS&#xff09;和开源鸿蒙系统&#xff08;OpenHarmony&#xff09;&#xff0c;华为鸿蒙系统是基于OpenHarmony基础之上开发的商业版操作系统。他们二者的关系可以用下图来表示&#xff1a; 1.1、…

Linux 创建新虚拟机的全过程图解

一、创建新虚拟机 1.选择自定义 2.直接下一步 3.选择稍后安装 4.设置虚拟机名和安装位置 5.配置处理器&#xff08;处理器数量&#xff1a;4、每个处理器的内核&#xff1a;2&#xff09; 6. 内存选择 7.网络类型 8. IO控制器类型-默认推荐 9.磁盘类型-默认推荐 10.选择虚拟磁…

ubuntu下aarch64-linux-gnu(交叉编译) gdb/gdbserver

ubuntu下aarch64-linux-gnu(交叉编译) gdb/gdbserver gdb是一款开源的、强大的、跨平台的程序调试工具。主要用于在程序运行时对程序进行控制和检查&#xff0c;如设置断点、单步执行、查看变量值、修改内存数据等&#xff0c;从而帮助开发者定位和修复代码中的错误。 gdbserve…

Mysql 高性能索引

引言 索引是一种用于快速查询和检索数据的数据结构&#xff0c;其本质可以看成是一种排序好的数据结构。 常见的索引类型包括B-Tree索引、哈希索引、空间数据索引&#xff08;R-Tree&#xff09;、全文索引。 索引的类型 在MySQL中&#xff0c;索引是在 存储引擎层 而不是服…

论文总是写不好?这么向kimi提问再试试!【图文大全套】

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 你是否有这样的困惑&#xff1a;论文为什么总是达不到预期的高标准&#xff1f;写作过程中总感觉缺乏方向和灵感&#xff1f;在文献搜索和数据分析上耗费了大量时间却收获甚微&#xff…

原生APP开发的优势

原生APP开发是指使用特定的编程语言和开发工具&#xff0c;针对特定的操作系统平台进行开发的应用程序。相比于混合开发和Web开发&#xff0c;原生APP开发具有以下优势。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1. 性能更优 原…

云教研应用:教育创新的技术引擎,驱动智慧教育新时代

在数字化飞速发展的时代&#xff0c;教育领域正经历着前所未有的变革。为了适应新时代的教育需求&#xff0c;提升教学质量与管理效率&#xff0c;我们推出了专为K12中小学校量身定制的管理解决方案系列。 今天&#xff0c;我们将以其中重要的应用——云教研应用为例&#xff…

前端面试题25(css常用的预处理器)

在前端开发领域&#xff0c;CSS预处理器在面试中经常被提及&#xff0c;其中最流行的三种预处理器是Sass、LESS和Stylus。下面分别介绍它们的特点和优势&#xff1a; 1. Sass&#xff08;Syntactically Awesome Style Sheets&#xff09; 优势&#xff1a; 变量&#xff1a;允…

提升爬虫OCR识别率:解决嘈杂验证码问题

引言 在数据抓取和网络爬虫技术中&#xff0c;验证码是常见的防爬措施&#xff0c;特别是嘈杂文本验证码。处理嘈杂验证码是一个复杂的问题&#xff0c;因为这些验证码故意设计成难以自动识别。本文将介绍如何使用OCR技术提高爬虫识别嘈杂验证码的准确率&#xff0c;并结合实际…

【LabVIEW学习篇 - 5】:数据类型——数值、字符串

文章目录 数值枚举下拉列表控件 字符串字符串与十六进制截取字符串连接字符串 字符串与数值间的转换字符串转为数值数值转为字符串 数值 如下图所示&#xff0c;各种数值型数据的不同之处在于存储和表示数据时所使用的位置不同。 浮点型 整型 在LabVIEW中&#xff0c;想要改…

深度学习(笔记内容)

1.国内镜像网站 pip使用清华源镜像源 pip install <库> -i https://pypi.tuna.tsinghua.edu.cn/simple/ pip使用豆瓣的镜像源 pip install <库> -i https://pypi.douban.com/simple/ pip使用中国科技大学的镜像源 pip install <库> -i https://pypi.mirro…

To美术-渲染管线及优化方向(CPU方向)

一、CPU与GPU 1、CPU与GPU的区别 橙黄色&#xff1a;控制单元   橙红色&#xff1a;存储单元  绿色&#xff1a;计算单元 CPU:结构组成复杂、控制逻辑丰富&#xff0c;计算量小&#xff0c;适合复杂运算 GPU&#xff1a;结构组成简单&#xff0c;核心数量多&#xff0c;计…

Python基础知识——(001)

文章目录 P4——3. 程序设计语言的分类 1. 程序设计语言 2. 编译与解释 P5——4. Python语言的简介与开发工具 1. Python语言的简介 2. Python语言的发展 3. Python语言的特点 4. Python的应用领域 5. Python的开发工具 P6——5. IPO编程方式 IPO程序编写方法 P7——6. print函…