当前位置: 首页 > news >正文

生信教程:ABBA-BABA分析之滑动窗口

简介

ABBA BABA 统计(也称为 D 统计)为偏离严格的分叉进化历史提供了简单而有力的检验。因此,它们经常用于使用基因组规模的 SNP 数据测试基因渗入。

虽然最初开发用于基因渗入的全基因组测试,但它们也可以应用于较小的窗口,从而可以探索基因渗入的基因组景观。

本次实践[1]中,我们将使用可用的软件执行基于窗口的 ABBA BABA 分析,然后在 R 中编写代码来绘制结果。我们将分析几个 Heliconius 蝴蝶种群的基因组数据。

工作流程

从多个个体的全基因组测序的基因型数据开始,我们将运行一个脚本来计算每条染色体上各个窗口中的混合比例的度量。然后我们将绘制图表来测试有关适应性基因渗入的假设。

数据集

我们将研究三个物种的多个种族:Heliconius melpomeneHeliconius timaretaHeliconius cydno。这些物种的分布范围部分重叠,人们认为它们在同源地区发生杂交。我们的样本集包括来自巴拿马和哥伦比亚安第斯山脉西坡的两对同域种群 H. melpomeneH. cydno。在哥伦比亚和秘鲁的安第斯山脉东坡,还有两对同域种群:H. melpomeneH. timareta。最后,有两个来自外群物种 Heliconius numata 的样本,这是进行 ABBA BABA 分析所必需的。

所有样本均使用深度全基因组测序进行测序,并使用标准流程为每个个体的基因组中每个位点获取基因型。数据经过过滤,仅保留双等位基因单核苷酸多态性 (SNP)。该数据集包括来自 18 号染色体的 SNP 数据,已知该染色体携带特别感兴趣的翅膀图案基因座。

假设

我们假设同域物种之间的杂交将导致 H. cydno 和来自西方的 H. melpomene 同域种族之间以及 H. timareta 和来自东部的 H. melpomene 相应的同域种族之间共享遗传变异。

然而,并非基因组的所有部分都会受到同样的影响。特别是,我们怀疑 18 号染色体上的翅膀图案基因 optix 受到了强烈的选择。 optix 的差异调节可以导致翅膀上红色色素沉着的不同分布,如在 H. melpomene 的不同亚种中所见,或者导致红色色素缺失,如在 H. cydno 中所见。

赫利科尼乌斯翅膀图案可以警告捕食者它们有毒。有些物种参与缪勒拟态,有毒物种进化得彼此相似,这有助于加强捕食者的学习。模仿可以通过相同翅膀图案上的独立收敛来实现,也可以通过适应性基因渗入来交换翅膀图案等位基因来实现。因此,我们预测不同物种的共模仿种群可能在 optix 附近显示出过多的基因渗入信号。

我们对具有不同翅膀图案的种群有着完全不同的期望。如果某个地区的捕食者认为最常见的本地图案有毒,那么拥有外来翅膀图案的代价将会很高。同样,任何具有中间翅膀图案的混合个体也将面临更高的捕食风险。因此,我们预测,在具有不同翅型的种群之间,optix附近的基因渗入程度应该会减少。

alt

量化整个基因组

简而言之,该检验使用三个群体和一个具有关系 (((P1,P2),P3),O) 的外群体,并调查 P2 和 P3 之间是否存在过多的共享变异(与 P1 和 P3 之间共享的变异相比) )。

这种过量可以用 D 统计量来表示,其范围从 -1 到 1,并且在无渗入的原假设下应等于 0。 D > 1 表示 P3 和 P2 之间可能存在基因渗入(或其他可能导致偏离严格的分叉物种历史的因素)。

该测试旨在用于全基因组规模。 D 统计量不太适合比较整个基因组的混合水平,因为它的绝对值取决于诸如有效种群大小等因素,而有效种群大小可能在整个基因组中有所不同。

其他教程中描述的 f 估计更好,因为它根据定义反映了混合比例,但它对小规模的随机误差高度敏感。因此,为此目的开发了一种称为 fd 的统计数据,该统计数据对于使用少量 SNP 引入的误差更加稳健。传统的 f 估计假设 P3 是供体群体,P2 是受者群体,而 fd 则在逐个地点的基础上推断供体。

选择人群

这些统计数据的解释很大程度上取决于所选人群。首先,该测试对从 P3 渗入 P2 最为敏感,而不是相反。

其次,fd 应被解释为 P3 和 P2 之间不与 P1 共享的过度共享变异的量化。如果 P1 和 P2 之间存在持续的基因流,则任何从 P3 到 P2 的基因渗入都会被低估。最后,我们只能量化比 P1 和 P2 之间的分裂更晚发生的渗入。

因此,如果我们想要量化整个基因组中发生的最大可检测量渗入,我们应该选择异域且与 P2 关系不太密切的 P1。不过,我们也可以通过测试这个特性来发挥我们的优势。如果我们选择与 P2 共享正在进行的基因流的 P1,那么测试将显示 P2 和 P3 共享 P1 不共享的基因组部分。这对于识别翅膀图案等位基因非常有用,因为这些通常是亚种在基因流中保持独特的唯一基因组区域。

实战

准备

打开终端窗口并导航到将运行练习并存储所有输入和输出数据文件的文件夹。现在创建一个名为“data”的子目录并下载本教程所需的数据文件

mkdir data

cd data

wget https://github.com/simonhmartin/tutorials/raw/master/ABBA_BABA_windows/data/hel92.DP8HET75MP9BIminVar2.chr18.geno.gz

wget https://github.com/simonhmartin/tutorials/raw/master/ABBA_BABA_windows/data/hel92.pop.txt

wget https://github.com/simonhmartin/tutorials/raw/master/ABBA_BABA_windows/data/chr18.LDhelmet_MLrho.w100.tsv

cd ..
  • 接下来,在 GitHub 上下载本教程所需的 python 脚本集合
wget https://github.com/simonhmartin/genomics_general/archive/master.zip
unzip master.zip

滑动窗口分析

  • 针对两个不同的情况运行分析 python 脚本。在这两种情况下,P1 都是全域性 H. melpomene melpomene (mel_mel)。 P2 和 P3 是我们期望共享基因的两个种群。在第一种情况下,我们量化了来自巴拿马的 H. melpomene rosina (mel_ros) 和 H. cydno chioneus (cyd_chi) 之间的基因渗入。在第二个例子中,我们量化了来自秘鲁的 H. melpomene amaryllis (mel_ama) 和 H. timareta thelxinoe (tim_txn) 之间的基因渗入。
python genomics_general-master/ABBABABAwindows.py \
-g data/hel92.DP8HET75MP9BIminVar2.chr18.geno.gz -f phased \
-o data/hel92.DP8HET75MP9BIminVar2.chr18.ABBABABA_mel_ros_chi_num.w25m250.csv.gz \
-P1 mel_mel -P2 mel_ros -P3 cyd_chi -O num \
--popsFile data/hel92.pop.txt -w 25000 -m 250 --T 2

python genomics_general-master/ABBABABAwindows.py \
-g data/hel92.DP8HET75MP9BIminVar2.chr18.geno.gz -f phased \
-o data/hel92.DP8HET75MP9BIminVar2.chr18.ABBABABA_mel_ama_txn_num.w25m250.csv.gz \
-P1 mel_mel -P2 mel_ama -P3 tim_txn -O num \
--popsFile data/hel92.pop.txt -w 25000 -m 250 --T 2

我们为脚本提供一个包含基因型数据 (-g) 的输入文件、一个输出文件 (-o)、内群体群体和外群体群体(-P1、-P2、-P3 和 -O)以及一个指定每个群体的文件示例位于(--popsFile)中。

我们还给出了窗口的参数。这些 ae“坐标”窗口,这意味着每个窗口相对于参考基因组的长度相同,但每个窗口的 SNP 数量可能不同。窗口大小 (-w) 将为 25,000 bp。 Windows 需要包含至少 (-m) 250 个 SNP 才能被视为有效。

最后,我们告诉脚本使用两个线程 (-T)。如果你有一个多核机器,你可以增加这个值,脚本会运行得更快。

  • 绘制窗口统计数据

我们需要将每个窗口统计文件加载到 R 中。我们将创建一个包含两个数据集的列表。首先输入输入文件的名称

AB_files <- c("data/hel92.DP8HET75MP9BIminVar2.chr18.ABBABABA_mel_ros_chi_num.w25m250.csv.gz",
                "data/hel92.DP8HET75MP9BIminVar2.chr18.ABBABABA_mel_ama_txn_num.w25m250.csv.gz")

AB_tables = lapply(AB_files, read.csv)

head(AB_tables[[1]])

当 D 为负数时,fd 毫无意义,因为它旨在仅在存在过量时量化 ABBA 相对于 BABA 的过量。因此,我们在 D 为负数的位置将所有 fd 值转换为 0。

for (x in 1:length(AB_tables)){
AB_tables[[x]]$fd = ifelse(AB_tables[[x]]$D < 00, AB_tables[[x]]$fd)
    }

然后,我们可以为我们分析的两种情况绘制染色体上的 fd 图。

par(mfrow=c(length(AB_tables), 1), mar = c(4,4,1,1))

for (x in 1:length(AB_tables)){
    plot(AB_tables[[x]]$mid, AB_tables[[x]]$fd,
    type = "l", xlim=c(0,17e6),ylim=c(0,1),ylab="Admixture Proportion",xlab="Position")
    rect(1000000,0,1250000,1, col = rgb(0,0,0,0.2), border=NA)
    }

这表明染色体渗入程度存在相当大的异质性。如果我们考虑 optix 周围的区域,我们就会看到 H. melpomene rosinaH. cydno chioneus 之间基因渗入减少的证据,正如我们预测的那样。相比之下,我们看到了 H. melpomene amaryllisH. timareta thelxinoe 之间基因渗入程度升高的证据,这表明它们共享的翅膀模式可能是适应性基因渗入的结果。鉴于这一证据,建议对 optix 周围区域进行系统发育,以测试 H. timareta 等位基因是否似乎“嵌套”在 H. melpomene 进化枝内。

基因渗入和重组率之间的关联

理论预测,如果存在许多选择基因渗入的“屏障位点”,我们应该会看到低重组区域基因渗入减少的趋势,因为中性基因渗入等位基因和有害基因之间的联系更强。我们可以通过检查重组率和整个染色体的 fd 之间的关系来检验这个假设。我们有一个先前生成的数据文件(已提供),给出了该染色体上 100 kb 窗口中估计的群体重组率。

现在我们将制作一个 100 kb 窗口的 fd 匹配数据集,这里仅使用显示渗入率最高的物种对:来自巴拿马的 H. melpomene rosinaH. cydno chioneus

python ~/Research/genomics_general/ABBABABAwindows.py \
-g data/hel92.DP8HET75MP9BIminVar2.chr18.geno.gz -f phased \
-o data/hel92.DP8HET75MP9BIminVar2.chr18.ABBABABA_mel_ros_chi_num.w100m1.csv.gz \
-P1 mel_mel -P2 mel_ros -P3 cyd_chi -O num \
--popsFile data/hel92.pop.txt -w 100000 -m 1000 --T 2

现在,回到 R 中,读入这个新数据文件。

AB_table_w100 <- read.csv("data/hel92.DP8HET75MP9BIminVar2.chr18.ABBABABA_mel_ros_chi_num.w100m1.csv.gz")

和之前一样,我们将 D 为负的窗口的所有 fd 值转换为 0。

AB_table_w100$fd = ifelse(AB_table_w100$D < 00, AB_table_w100$fd)

现在我们读取 100 kb 窗口的重组率表。这里,ML_rho 列给出了每个窗口的群体重组率的最大似然估计。

rec_table <- read.table("data/chr18.LDhelmet_MLrho.w100.tsv", header=T)
head(rec_table)

由于数据的噪声性质,我们想要比较不同重组率的 bin 中的 fd 值。我们将使用剪切函数将窗口分成三个具有低、中和高重组率的箱。

rec_bin <- cut(rec_table$ML_rho, 3)

最后,我们可以制作箱线图来比较这些箱之间推断的混合水平 (fd)。

boxplot(AB_table_w100$fd ~ rec_bin)

这证实了基因渗入水平确实随着重组率的增加而增加,这与大量屏障位点在全基因组范围内选择基因渗入的模型一致。

Reference

[1]

Source: https://github.com/simonhmartin/tutorials/blob/master/ABBA_BABA_windows/README.md

本文由 mdnice 多平台发布

相关文章:

生信教程:ABBA-BABA分析之滑动窗口

简介 ABBA BABA 统计&#xff08;也称为 D 统计&#xff09;为偏离严格的分叉进化历史提供了简单而有力的检验。因此&#xff0c;它们经常用于使用基因组规模的 SNP 数据测试基因渗入。 虽然最初开发用于基因渗入的全基因组测试&#xff0c;但它们也可以应用于较小的窗口&#…...

二分答案(求最大值的最小值||求最小值的最大值)

引入 二分答案要建立在二分查找的基础上&#xff0c;在此之前&#xff0c;要知道二分查找的三个模板 模板一 while(l<r) {int mid(lr)>>1;if(check(mid)) rmid;else lmid1; }模板二 while(l<r) {int midlr1>>1;if(check(mid)) lmid;else rmid-1; }模板三…...

思维模型 周期

本系列文章 主要是 分享 思维模型&#xff0c;涉及各个领域&#xff0c;重在提升认知。周期是一个看似极为简单&#xff0c;但背后却蕴藏着大智慧的模型&#xff0c;了解周期&#xff0c;对于了解王朝更替&#xff0c;数学之美&#xff0c;经济运转等都有帮助。 1 周期的应用 …...

从 0 到 1 ,手把手教你编写《消息队列》项目(Java实现) —— 介绍项目/ 需求分析

文章目录 一、消息队列是什么&#xff1f;二、需求分析结构解析功能解析规则解析绑定关系交换机类型消息应答 三、持久化存储四、网络通信提供的API复用TCP连接 五、消息队列概念图 一、消息队列是什么&#xff1f; 消息队列 (Message Queue, MQ)就是将阻塞队列这一数据结构提取…...

Python学习之索引与切片

Python学习之索引与切片 s “0abcdefghijklmnopqrstuvwxyz”&#xff0c;第一个元素‘0’&#xff0c;索引号为0&#xff0c;最后一个元素‘z’&#xff0c;索引号为26 1. s[0]获取索引号为0的元素 2. s[1:3]获取索引号为1的元素&#xff0c;直到但不包括索引号为3的元素。即…...

编程每日一练(多语言实现)基础篇:满足abcd=(ab+cd)^2的数 (增加Go语言实现)

文章目录 一、实例描述二、技术要点三、代码实现3.1 C 语言实现3.2 Python 语言实现3.3 Java 语言实现3.4 JavaScript 语言实现3.5 Go 语言实现 一、实例描述 假设 abcd 是一个四位整数&#xff0c;将它分成两段&#xff0c;即 ab 和 cd&#xff0c;使之相加求和后再平方。求满…...

LeetCode 热题 HOT 100:回溯专题

LeetCode 热题 HOT 100&#xff1a;https://leetcode.cn/problem-list/2cktkvj/ 文章目录 17. 电话号码的字母组合22. 括号生成39. 组合总和46. 全排列补充&#xff1a;47. 全排列 II &#xff08;待优化)78. 子集79. 单词搜索124. 二叉树中的最大路径和200. 岛屿数量437. 路径…...

喝健康白酒 有益生心健康

中国的制酒史源远流长&#xff0c;酒渗透在中华五千年的文化中。酒与烟不同&#xff0c;烟对人体有百害而无一利&#xff0c;而对于酒&#xff0c;若掌握好饮酒的度&#xff0c;对人体有一定的养生作用&#xff0c;所以我们通常会说“戒烟限酒”。 据一些专家研究&#xff0c;…...

动态规划:两个数组的dp问题(C++)

动态规划&#xff1a;两个数组的dp问题 前言两个数组的dp问题1.最长公共子序列&#xff08;中等&#xff09;2.不同的子序列&#xff08;困难&#xff09;3.通配符匹配&#xff08;困难&#xff09;4.正则表达式&#xff08;困难&#xff09;5.交错字符串&#xff08;中等&…...

BASH shell脚本篇2——条件命令

这篇文章介绍下BASH shell中的条件相关的命令&#xff0c;包括&#xff1a;if, case, while, until, for, break, continue。之前有介绍过shell的其它基本命令&#xff0c;请参考&#xff1a;BASH shell脚本篇1——基本命令 1. If语句 if语句用于在顺序执行语句的流程中执行条…...

【图论C++】Floyd算法(多源最短路径长 及 完整路径)

>>>竞赛算法 /*** file * author jUicE_g2R(qq:3406291309)————彬(bin-必应)* 一个某双流一大学通信与信息专业大二在读 * * brief 一直在算法竞赛学习的路上* * copyright 2023.9* COPYRIGHT 原创技术笔记&#xff…...

小谈设计模式(11)—模板方法模式

小谈设计模式&#xff08;11&#xff09;—模板方法模式 专栏介绍专栏地址专栏介绍 模板方法模式角色分类抽象类&#xff08;Abstract Class&#xff09;具体子类&#xff08;Concrete Class&#xff09;抽象方法&#xff08;Abstract Method&#xff09;具体方法&#xff08;C…...

C#程序中很多ntdll.dll、clr.dll的线程

如下图 需要“右键工程——调试——取消勾选‘启用本地代码调试’”即可。...

低代码工作流程管理系统:提升企业运营效率的利器

业务运营状况是否良好&#xff0c;除了人员需要配合以外&#xff0c;真正发挥作用的是背后的工作流程。将重复的工作进行自动化处理&#xff0c;确保这些流程最终指向同一个目标、实现一致的运营结果。而设计和实施不佳的工作流程则产生相反的效果——导致处理时间延长、运营成…...

HIVE SQL regexp_extract和regexp_replace配合使用正则提取多个符合条件的值

《平凡的世界》评分不错&#xff0c;《巴黎圣母院》改变成的电影不错&#xff0c;还有<<1984>>也蛮好看。 如何使用regexp_extract&regexp_replace函数将以上文本中所有书籍名称都提取出来&#xff1f; select substr(regexp_replace(regexp_extract(regexp_…...

debian 安装matlab2022b报错解决方法与问题解决思路

报错 terminate called after throwing an instance of ‘std::runtime_error’ 在安装目录执行 ./bin/glnxa64/MATLABWindow通过执行以上命令发现是和libharfbuzz库有关。 该库在调用freetype库时&#xff0c;有方法找不到。 偿试remove freetype库&#xff0c;发现该库有大…...

Jenkins集成AppScan实现

一、Jenkins上安装插件 在Jenkins里安装以下插件 ibm-security-appscanstandard-scanner 二、打开AppScan 1、配置需要扫描的地址 配置需要扫描的地址 2、记录好要扫描的URL登录序列 记录好要扫描的URL登录序列 3、导出要扫描的URL登录序列设置 导出要扫描的URL登录序列设置 三…...

10.1 File类

前言&#xff1a; java.io包中的File类是唯一一个可以代表磁盘文件的对象&#xff0c;它定义了一些用于操作文件的方法。通过调用File类提供的各种方法&#xff0c;可以创建、删除或者重命名文件&#xff0c;判断硬盘上某个文件是否存在&#xff0c;查询文件最后修改时间&…...

[论文笔记]UNILM

引言 今天带来论文Unified Language Model Pre-training for Natural Language Understanding and Generation的笔记,论文标题是 统一预训练语言模型用于自然语言理解和生成。 本篇工作提出了一个新的统一预训练语言模型(Unifield pre-trained Language Model,UniLM),可以同…...

LLM之Colossal-LLaMA-2:Colossal-LLaMA-2的简介、安装、使用方法之详细攻略

LLM之Colossal-LLaMA-2&#xff1a;Colossal-LLaMA-2的简介、安装、使用方法之详细攻略 导读&#xff1a;2023年9月25日&#xff0c;Colossal-AI团队推出了开源模型Colossal-LLaMA-2-7B-base。Colossal-LLaMA-2项目的技术细节&#xff0c;主要核心要点总结如下: >> 数据处…...

国庆作业2

select实现服务器并发 代码&#xff1a; #include <myhead.h>#define ERR_MSG(msg) do{\printf("%d\n",__LINE__);\perror(msg);\ }while(0)#define PORT 8888#define IP "192.168.1.5"int main(int argc, const char *argv[]) {//创建流式套接字…...

fork仓库的代码如何同步主仓库代码

1.背景 我fork了一份 jekyll-theme-chirpy 仓库的代码(基于 jekyll 的自建博客仓库&#xff0c;可以免服务器)&#xff0c;我需要在上面更新我的博客文章&#xff0c;但是我又想一直同步 jekyll-theme-chirpy 仓库的新功能&#xff0c;这样我可以更新自己的博客功能。所以我就…...

【Axure】元件库和母版、常见的原型规范、静态原型页面制作

添加现有元件库 点击元件库——载入 当然也可以创建元件库&#xff0c;自己画自己保存 建立京东秒杀母版 静态原型页面的制作 框架 选择以iphone8的界面大小为例&#xff0c;顶部状态栏高度为20 左侧类似于标尺&#xff0c;因为图标、文字离最左侧的间距是不一样的 信…...

在设备树中描述中断

参考文档&#xff1a; 内核 Documentation\devicetree\bindings\interrupt-controller\interrupts.txt 在设备树中&#xff0c;中断控制器节点中必须有一个属性&#xff1a; interrupt-controller&#xff0c;表明它是“中断控制器”。 还必须有一个属性&#xff1a; #interru…...

ccf_csp第一题汇总

ccf_csp第一题汇总 printf()输出格式大全&#xff08;附 - 示例代码&#xff09;现值计算AcWing 4699. 如此编码AcWing 4509. 归一化处理(小数位数根号函数)AcWing 4454. 未初始化警告AcWing 4280. 序列查询AcWing 4006. 数组推导(小陷阱)AcWing 3292. 称检测点查询AcWing 3287…...

uniapp 实现下拉筛选框 二次开发定制

前言 最近又收到了一个需求&#xff0c;需要在uniapp 小程序上做一个下拉筛选框&#xff0c;然后找了一下插件市场&#xff0c;确实有找到&#xff0c;但不过他不支持搜索&#xff0c;于是乎&#xff0c;我就自动动手&#xff0c;进行了二开定制&#xff0c;站在巨人的肩膀上&…...

实现单行/多行文本溢出

在日常开发展示页面&#xff0c;如果一段文本的数量过长&#xff0c;受制于元素宽度的因素&#xff0c;有可能不能完全显示&#xff0c;为了提高用户的使用体验&#xff0c;这个时候就需要我们把溢出的文本显示成省略号。 一. 单行文本溢出 即文本在一行内显示&#xff0c;超出…...

Spring Boot中的Binder类

介绍 Spring Boot中的Binder类是一个用于绑定属性的工具类。它可以将配置文件中的属性值绑定到Java对象中&#xff0c;从而方便地进行配置管理。 简单示例 import org.springframework.boot.context.properties.bind.Binder; import org.springframework.core.env.Environmen…...

leetcode之打家劫舍

leetcode 198 打家劫舍 leetcode 213 打家劫舍 II leetcode 337. 打家劫舍 III 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋&#xff0c;每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 &#xff0c;这意味着第一个房屋和最后一个房屋是紧挨着的。同时&#…...

走进Spring的世界 —— Spring底层核心原理解析(一)

文章目录 前言一、Spring中是如何创建一个对象二、Bean的创建过程三、推断构造方法四、AOP大致流程五、Spring事务 前言 ClassPathXmlApplicationContext context new ClassPathXmlApplicationContext("config.xml"); UserService userService (UserService) cont…...

中小企业网站设计与开发目的/艾滋病多久可以查出来

概念超宽带(ultrawideBand&#xff0c;UWB)雷达通常定义为&#xff1a;雷达发射信号的分数带宽(FBW)大于0.25的雷达。超宽带技术就是通过对非常短的单脉冲进行一系列的加工和处理&#xff0c;包括产生、传输、接收和处理等&#xff0c;实现通信、探测和遥感等功能。超宽带是指该…...

wordpress 访问量过大/百度app首页

功能测试涉及了软件在功能上正反两面的测试&#xff0c;而非功能测试就是所有其他方面的测试。非功能测试包括性能、负载、安全、可靠性和其他很多方面。非功能测试有时也被称作行为测试或质量测试。非功能测试的众多属性的一个普遍特征是一般不能直接测量。这些属性是被间接地…...

上海猎头公司对个人怎么收费/seo网站优化服务商

转自&#xff1a;https://www.cnblogs.com/YatHo/p/7815400.html Docker-Compose是一个部署多个容器的简单但是非常必要的工具. 安装Docker-Compose之前&#xff0c;请先安装 python-pip 安装 python-pip 1、首先检查linux有没有安装python-pip包&#xff0c;终端执行 pip -V…...

棋牌网站建设/网站推广软文范例

P1200 题目描述 众所周知&#xff0c;在每一个彗星后都有一只UFO。这些UFO时常来收集地球上的忠诚支持者。不幸的是&#xff0c;他们的飞碟每次出行都只能带上一组支持者。 因此&#xff0c;他们要用一种聪明的方案让这些小组提前知道谁会被彗星带走。 他们为每个彗星起了一个名…...

黄骅港金沙滩/seo项目经理

1. SDM的主要功能 上一篇说道&#xff0c;SD Core设备主要是封装了底层的细节&#xff0c;为应用层提供唯一的传输接口。SDM&#xff0c;即SD Driver Management&#xff0c;是用来管理SD协议栈里的驱动的&#xff0c;包括硬件控制器驱动和设备类驱动&#xff08;这与USB协议栈…...

烟台网站建设给力臻动传媒/竞价网站推广

20世纪80年代末是一个网络技术飞速发展的年代&#xff0c;越来越多的人们存在越来越大的网络需求&#xff0c;原本的距离矢量路由协议因为最大跳数的限制和本身机制的问题开始逐渐没落。IETF(国际互联网工程任务组)一个公开性质的国际组织&#xff0c;开发出新的链路状态路由协…...