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

使用pixy计算群体遗传学统计量

1 数据过滤

过滤参数:过滤掉次等位基因频率(minor allele frequency,MAF)低于0.05、哈达-温伯格平衡(Hardy– Weinberg equilibrium,HWE)对应的P值低于1e-10或杂合率(heterozygosity rates)偏差过大(± 3 SD)的位点:
去除杂合率(heterozygosity rates)偏差过大(± 3 SD)的个体:
假设,基于Plink计算结果,需要移除sample1(高杂合或低杂合):

#vcftools version:
nohup vcftools --vcf snps_filtered.vcf --remove-indels --maf 0.05 --hwe 1e-10 --max-missing 0.8 --min-meanDP 20 --max-meanDP 500 --remove-indv sample1 --recode --stdout > snps_maf0_05_hwe1e-10_missing0_8.vcf &

vcftools生成的文件中会包含命令行输出,使用sed移除:

nohup sed -i '1,30d' snps_maf0_05_hwe1e-10_missing0_8.vcf &

压缩:

bgzip snps_maf0_05_hwe1e-10_missing0_8.vcf
tabix snps_maf0_05_hwe1e-10_missing0_8.vcf.gz

2 计算 F S T 、 D X Y 、 P i F_{ST}、D_{XY}、Pi FSTDXYPi

安装软件包


nohup pixy --stats pi fst dxy --vcf snps_maf0_05_hwe1e-10_missing0_8.vcf.gz --populations pop.txt --window_size 10000 --bypass_invariant_check 'yes' --n_cores 15 --output_folder results &

3 可视化

可视化之前需要将染色体编号替换为数值:

bash ~/gaoyue/GWAs/script/chr_tran.sh raw_results/pixy_dxy.txt results/pixy_dxy.txt
bash ~/gaoyue/GWAs/script/chr_tran.sh raw_results/pixy_fst.txt results/pixy_fst.txt
bash ~/gaoyue/GWAs/script/chr_tran.sh raw_results/pixy_pi.txt results/pixy_pi.txt
#load packages:
library(ggplot2)
library(tidyverse)#---------------------------------------------------------------------------------#
#             1.define a function to convert the pixy outputs                     #
#---------------------------------------------------------------------------------#
pixy_to_long <- function(pixy_files){pixy_df <- list()for(i in 1:length(pixy_files)){stat_file_type <- gsub(".*_|.txt", "", pixy_files[i])if(stat_file_type == "pi"){df <- read_delim(pixy_files[i], delim = "\t")df <- df %>%gather(-pop, -window_pos_1, -window_pos_2, -chromosome,key = "statistic", value = "value") %>%rename(pop1 = pop) %>%mutate(pop2 = NA)pixy_df[[i]] <- df} else{df <- read_delim(pixy_files[i], delim = "\t")df <- df %>%gather(-pop1, -pop2, -window_pos_1, -window_pos_2, -chromosome,key = "statistic", value = "value")pixy_df[[i]] <- df}}bind_rows(pixy_df) %>%arrange(pop1, pop2, chromosome, window_pos_1, statistic)}#---------------------------------------------------------------------------------#
#                      2.use new function we just defined:                        #
#---------------------------------------------------------------------------------#
## Rcau则替换为对应的文件夹
pixy_folder <- "/nfs_fs/nfs3/gaoyue/gaoyue/Fst/Rdeb_Fst/results/"
pixy_files <- list.files(pixy_folder, full.names = TRUE)
pixy_df <- pixy_to_long(pixy_files)#---------------------------------------------------------------------------------#
#                                      3.plot:                                    #
#---------------------------------------------------------------------------------#
# create a custom labeller for special characters in pi/dxy/fst
pixy_labeller <- as_labeller(c(avg_pi = "pi",avg_dxy = "D[XY]",avg_wc_fst = "F[ST]"),default = label_parsed)# plotting summary statistics across all chromosomes
pixy_df %>%mutate(chrom_color_group = case_when(as.numeric(chromosome) %% 2 != 0 ~ "even",chromosome == "X" ~ "even",TRUE ~ "odd" )) %>%mutate(chromosome = factor(chromosome, levels = c(1:22, "X", "Y"))) %>%filter(statistic %in% c("avg_pi", "avg_dxy", "avg_wc_fst")) %>%ggplot(aes(x = (window_pos_1 + window_pos_2)/2, y = value, color = chrom_color_group))+geom_point(size = 0.5, alpha = 0.5, stroke = 0)+facet_grid(statistic ~ chromosome,scales = "free_y", switch = "x", space = "free_x",labeller = labeller(statistic = pixy_labeller,value = label_value))+xlab("Chromsome")+ylab("Statistic Value")+scale_color_manual(values = c("grey50", "black"))+theme_classic()+theme(axis.text.x = element_blank(),axis.ticks.x = element_blank(),panel.spacing = unit(0.1, "cm"),strip.background = element_blank(),strip.placement = "outside",legend.position ="none")+scale_x_continuous(expand = c(0, 0)) +scale_y_continuous(expand = c(0, 0), limits = c(0,NA))

在这里插入图片描述

Ending!

相关文章:

使用pixy计算群体遗传学统计量

1 数据过滤 过滤参数&#xff1a;过滤掉次等位基因频率&#xff08;minor allele frequency&#xff0c;MAF&#xff09;低于0.05、哈达-温伯格平衡&#xff08;Hardy– Weinberg equilibrium&#xff0c;HWE&#xff09;对应的P值低于1e-10或杂合率&#xff08;heterozygosit…...

第十九章总结:Java绘图

19.1&#xff1a;Java绘图类 19.2&#xff1a;绘制图形 package nineteentn; import java.awt.*; import javax.swing.*; public class DrawCircle extends JFrame { private final int OVAL_WIDTH 80; // 圆形的宽 private final int OVAL_HEIGHT 80; // 圆形的高…...

Mybatis-Plus条件构造器QueryWrapper

Mybatis-Plus条件构造器QueryWrapper 1、条件构造器关系介绍 介绍 &#xff1a; 上图绿色框为抽象类 蓝色框为正常类&#xff0c;可创建对象 黄色箭头指向为父子类关系&#xff0c;箭头指向为父类 wapper介绍 &#xff1a; Wrapper &#xff1a; 条件构造抽象类&#xff0…...

python解析wirshark抓包数据

因为工作需要&#xff0c;需要分析wirshark的抓包数据。数据有的是在比特位中。不方便查找。而lua语言又不愿意去学&#xff0c;所以用python解析后&#xff0c;输出日志。帮助分析.1.tcp分析 from dpkt.tcp import TCP from scapy.all import * from datetime import datetim…...

一个用于操作Excel文件的.NET开源库

推荐一个高性能、跨平台的操作Excel文件的.NET开源库。 01 项目简介 ClosedXML是一个.NET第三方开源库&#xff0c;支持读取、操作和写入Excel 2007 (.xlsx&#xff0c; .xlsm)文件&#xff0c;是基于OpenXML封装的&#xff0c;让开发人员无需了解OpenXML API底层API&#xf…...

Web APIs——正则表达式使用

1、什么是正则表达式 正则表达式&#xff08;Regular Expression&#xff09;是用于匹配字符串中字符组合的模式。在JavaScript中&#xff0c;正则表达式也是对象 通常用来查找、替换那些符合正则表达式的文本&#xff0c;许多语言都支持正则表达式 1.1 正则表达式使用场景 例如…...

文件包含学习笔记总结

文件包含概述 ​ 程序开发人员通常会把可重复使用函数或语句写到单个文件中&#xff0c;形成“封装”。在使用某个功能的时候&#xff0c;直接调用此文件&#xff0c;无需再次编写&#xff0c;提高代码重用性&#xff0c;减少代码量。这种调用文件的过程通常称为包含。 ​ 程…...

<C++> 优先级队列

目录 前言 一、priority_queue的使用 1. 成员函数 2. 例题 二、仿函数 三、模拟实现 1. 迭代器区间构造函数 && AdjustDown 2. pop 3. push && AdjustUp 4. top 5. size 6. empty 四、完整实现 总结 前言 优先级队列以及前面的双端队列基本上已经脱离了队列定…...

systemverilog:interface中的modport用法

使用modport可以将interface中的信号分组并指定方向&#xff0c;方向是从modport连接的模块看过来的。简单示例如下&#xff1a; interface cnt_if (input bit clk);logic rstn;logic load_en;logic [3:0] load;logic [7:0] count;modport TEST (input clk, count,output rst…...

VR建筑仿真场景编辑软件有助于激发创作者的灵感和创造力

随着VR虚拟现实技术的不断发展和普及&#xff0c;VR虚拟场景编辑器逐渐成为了VR场景开发重要工具。它对于丰富和完善VR虚拟现实内容的创建和呈现具有重要的意义&#xff0c;为我们的工作和教学带来了许多变化和可能性。 首先&#xff0c;VR虚拟场景编辑器对于提升用户体验具有重…...

8.查询数据

一、单表查询 MySQL从数据表中查询数据的基本语为SELECT语。SELECT语的基本格式是: SELECT {* | <字段列名>} [ FROM <表 1>, <表 2>… [WHERE <表达式> [GROUP BY <group by definition> [HAVING <expression> [{<operator>…...

VB.NET—Bug调试(参数话查询、附近语法错误)

目录 前言: BUG是什么&#xff01; 事情的经过: 过程: 错误一: 错误二: 总结: 前言: BUG是什么&#xff01; 在计算机科学中&#xff0c;BUG是指程序中的错误或缺陷&#xff0c;它通过是值代码中的错误、逻辑错误、语法错误、运行时错误等相关问题&#xff0c;这些问题…...

武汉凯迪正大—锂电池均衡维护仪

产品概况 KDZD885C 电池容量平衡测试系统&#xff0c;主要用于锂电池箱充放电测试及均衡维护&#xff0c;解决锂电池包单芯电压不均衡的痛点&#xff0c;用于快速解决锂电池电压不一致的难题,适用于各锂电池模组电压等级&#xff0c;集单芯放电&#xff0c;充电&#xff0c;均…...

解决服务器中的mysql连接不上Navicat的问题脚本

shell标本&#xff0c;快速解决服务器中的mysql连接不上Navicat的问题 在Linux服务器开发中&#xff0c;mysql的配置文件一般是只允许本地连接 所以想用Navicat进行连接&#xff0c;就需要修改配置和mysql中用户访问表的权限 为了方便&#xff0c;写成了shell脚本 #!/bin/bas…...

Git Flow的简单使用

目录 系列文章目录 一、新建feture下的分支 二、合并分支且删除当前分支 注意&#xff1a;这两个命令都得是在develop分支下进行 一、新建feture下的分支 xxx为自己命名的分支 git flow feature start xxx 二、合并分支且删除当前分支 需要先提交一下当前分支的代码&…...

LOWORD, HIWORD, LOBYTE, HIBYTE的解释

文章目录 实验结论 实验 int 类型大小正常为4Byte 以小端序来看 0x12345678在内存中的存储为 0x78 0x56 0x34 0x120x78在低地址&#xff0c;0x12在高地址 程序输出 #include <stdio.h> #include <string.h> #include<windows.h>int main() {int a 0x12345…...

Centos7.9用rancher来快速部署K8S

什么是 Rancher&#xff1f; Rancher 是一个 Kubernetes 管理工具&#xff0c;让你能在任何地方和任何提供商上部署和运行集群。 Rancher 可以创建来自 Kubernetes 托管服务提供商的集群&#xff0c;创建节点并安装 Kubernetes&#xff0c;或者导入在任何地方运行的现有 Kube…...

NSSCTF第12页(2)

[CSAWQual 2019]Unagi 是xxe注入&#xff0c;等找时间会专门去学一下 XML外部实体&#xff08;XXE&#xff09;注入 - 知乎 【精选】XML注入学习-CSDN博客 【精选】XML注入_xml注入例子-CSDN博客 题目描述说flag在/flag下 发现有上传点&#xff0c;上传一句话木马试试 文件…...

基于单片机的电源切换控制器设计(论文+源码)

1.系统设计 在基于单片机的电源切换控制器设计中&#xff0c;系统功能设计如下&#xff1a; &#xff08;1&#xff09;实现电源的电压检测&#xff1b; &#xff08;2&#xff09;如果电压太高&#xff0c;通过蜂鸣器进行报警提示&#xff0c;继电器进行切换&#xff0c;使…...

机器学习-特征选择:使用Lassco回归精确选择最佳特征

机器学习-特征选择:使用Lassco回归精确选择最佳特征 一、Lasso回归简介1.1 Lasso回归的基本原理1.2 Lasso回归与普通最小二乘法区别二、特征选择的方法2.1 过滤方法2.2 包装方法2.3 嵌入方法三、Lasso的特征选择流程3.1 数据预处理3.2 划分训练集和测试集3.3 搭建Lasso回归模型…...

PlugY终极指南:暗黑破坏神2单机模式完全解放方案

PlugY终极指南&#xff1a;暗黑破坏神2单机模式完全解放方案 【免费下载链接】PlugY PlugY, The Survival Kit - Plug-in for Diablo II Lord of Destruction 项目地址: https://gitcode.com/gh_mirrors/pl/PlugY 还在为暗黑破坏神2单机模式的储物箱空间不足而烦恼吗&am…...

深入解析内存分区:程序运行的秘密

一、完整内存分区&#xff08;进程地址空间&#xff09;一个程序跑起来&#xff0c;操作系统会给它分配虚拟内存空间&#xff0c;并严格分成这些区域&#xff1a;代码区&#xff08;Text Segment&#xff09;数据区&#xff08;Data Segment&#xff09;—— 已初始化全局 / 静…...

FLUX.1-dev像素生成模型部署教程:免配置镜像快速搭建像素艺术创作环境

FLUX.1-dev像素生成模型部署教程&#xff1a;免配置镜像快速搭建像素艺术创作环境 1. 像素幻梦工坊简介 Pixel Dream Workshop&#xff08;像素幻梦工坊&#xff09;是基于FLUX.1-dev扩散模型构建的专业像素艺术生成工具。它采用独特的16-bit像素风格界面设计&#xff0c;为创…...

模糊逻辑温度控制器:技术革新与市场前景深度解析

在工业自动化与智能制造浪潮中&#xff0c;温度控制作为核心工艺环节&#xff0c;其精度与稳定性直接影响产品质量与生产效率。模糊逻辑温度控制器凭借其独特的算法优势&#xff0c;正从传统PID控制器的“替代者”升级为高端制造场景的“刚需品”。本文将从技术原理、市场格局、…...

TalkiePCM:嵌入式LPC语音合成库,纯C++轻量级PCM音频引擎

1. TalkiePCM&#xff1a;嵌入式平台上的轻量级LPC语音合成引擎TalkiePCM 是一个面向资源受限嵌入式系统的纯C语音合成库&#xff0c;其核心目标是在不依赖特定硬件外设&#xff08;如PWM、DAC或I2S控制器&#xff09;的前提下&#xff0c;以最小耦合方式生成标准PCM音频流。它…...

秒杀系统主库宕机不丢单方案-02-半同步AFTER_SYNC

秒杀系统主库宕机不丢单方案&#xff1a;半同步AFTER_SYNC&#xff08;主从确认再提交&#xff09; 方案概述 半同步复制AFTER_SYNC方案是MySQL 5.7版本引入的高级复制机制&#xff0c;通过主从节点之间的确认机制确保数据不丢失。该方案在主库提交事务前&#xff0c;等待至少一…...

2026 年提词器 App 的新方向:AI 改稿 + 语速匹配,正在重新定义“读稿“这件事

核心结论&#xff1a;2026 年提词器 App 已经从"滚字幕"进化到"懂你怎么说"。AI 语速匹配、智能跟读、违禁词检测正在成为新标配&#xff0c;而在综合体验上&#xff0c;拍摄提词器是目前把这些能力整合得最完整的一款产品。一、提词器 App 正在经历一次代…...

[C语言]控制台扫雷游戏

用精简的代码&#xff0c;回顾数组、函数和游戏逻辑的核心应用。还记得Windows自带的扫雷吗&#xff1f;这次我们用C语言实现一个9x9的简易版&#xff0c;适合用来巩固函数封装、二维数组和随机数等知识点。1. 整体思路 扫雷的核心功能可以拆成几块&#xff1a; 打印菜单&#…...

终极Cinder着色器编程指南:7个GLSL视觉效果开发技巧

终极Cinder着色器编程指南&#xff1a;7个GLSL视觉效果开发技巧 【免费下载链接】Cinder Cinder is a community-developed, free and open source library for professional-quality creative coding in C. 项目地址: https://gitcode.com/gh_mirrors/ci/Cinder Cinder…...

Flutter Documentation Website的布局系统:理解Flutter的约束模型

Flutter Documentation Website的布局系统&#xff1a;理解Flutter的约束模型 【免费下载链接】website Flutter documentation web site 项目地址: https://gitcode.com/gh_mirrors/websi/website Flutter Documentation Website的布局系统基于独特的约束模型&#xff…...