重测序数据分析流程丨操作步骤与代码与代码脚本
群体重测序数据分析笔记
在生物信息学中,群体重测序数据的挖掘和分析对于理解生物的进化、自然选择以及功能基因的定位等研究具有重要的意义。今天分享的笔记内容是群体遗传学相关的知识点,下面将一步步介绍整个重测序分析的流程和方法。
分析常用流程和方法简述
常用的重测序分析流程一般包含以下步骤:
-
质控和数据准备:
这一步包括对原始测序数据进行质量评估和控制,以及数据格式的转换,常用流程包括测序数据的质控(QC)、比对、标记重复、排序、建立索引和变异检测。常用的软件工具包括FastQC、BWA、SAMtools、Picard和GATK等。
首先,我们需要进行质量控制,确保我们的数据是准确可靠的。常用的质量控制工具有FastQC和Trimmomatic。以下是用Trimmomatic进行质量控制的例子:
java -jar trimmomatic.jar PE -phred33 \
input_forward.fq.gz input_reverse.fq.gz \
output_forward_paired.fq.gz output_forward_unpaired.fq.gz \
output_reverse_paired.fq.gz output_reverse_unpaired.fq.gz \
ILLUMINACLIP:TruSeq3-PE.fa:2:30:10 LEADING:3 TRAILING:3 \
SLIDINGWINDOW:4:15 MINLEN:36
-
序列比对:
将处理好的数据比对到参考基因组上,得到比对结果,比对可以使用BWA这个工具。以下是比对命令的示例:
# 建立参考基因组索引
bwa index ref.fa
# 比对
bwa mem ref.fa read1.fq read2.fq > aln.sam
-
变异检测:
根据比对结果,检测和分析基因序列中的变异,变异检测通常使用SAMtools和BCFtools。以下是如何使用这些工具进行变异检测的示例:
# 转换格式
samtools view -S -b aln.sam > aln.bam
# 排序
samtools sort aln.bam -o aln_sorted.bam
# 检测变异
samtools mpileup -uf ref.fa aln_sorted.bam | bcftools call -cv - > var.raw.vcf
-
变异注释和分析:
对检测到的变异进行注释和深度分析,包括群体结构分析、选择性消除分析、全基因组关联分析等。
以下为流程简单示意
# 质量控制
fastqc raw_data.fq
# 比对
bwa mem reference.fa raw_data.fq > aln.sam
# 标记重复
picard MarkDuplicates I=aln.sam O=marked.bam M=metrics.txt
# 排序
samtools sort -O bam -o sorted.bam -T temp.prefix marked.bam
# 建立索引
samtools index sorted.bam
# 变异检测
gatk HaplotypeCaller -R reference.fa -I sorted.bam -O variants.vcf
上游分析变异检测方法代码
在进行测序数据序列文件上游变异检测时,我们通常使用如GATK工具。以下是一段使用GATK进行SNP和Indel检测的代码:
# SNP检测
gatk --java-options "-Xmx4g" \
HaplotypeCaller -R reference.fa \
-I sorted.bam \
-O raw_snps.vcf
# Indel检测
gatk --java-options "-Xmx4g" \
HaplotypeCaller -R reference.fa \
-I sorted.bam --ploidy 2 \
--genotyping-mode DISCOVERY \
-stand_emit_conf 10 \
-stand_call_conf 30 \
-O raw_indels.vcf
群体结构分析方法
对于群体结构的分析,我们通常会使用程序如PLINK和ADMIXTURE。PLINK可以用于生成适合ADMIXTURE分析的数据,而ADMIXTURE可以进行群体结构分析。
# PLINK生成适用于ADMIXTURE的数据
plink --file input_data \
--make-bed --out plink_output
# ADMIXTURE进行群体结构分析
admixture --cv plink_output.bed K
变异位点选择性消除分析
在基因组变异位点选择性消除分析中,我们可以使用vcftools和R等工具来评估基因位点多态性和选择分化差异。以下是具体的操作:
# 使用vcftools计算窗口内的多态性
vcftools --vcf var.raw.vcf --window-pi 50000
# 在R中进行选择分化差异判断
# 以下是示例代码,具体代码需要根据实际情况编写
library(ape)
data <- read.table("fst.txt", header = T)
fst <- data$V4
sig_level <- qnorm(1 - 0.05 / 2) / sqrt(2)
outliers <- which(fst > sig_level)
GWAS全基因组关联分析
GWAS全基因组关联分析我们可以使用GAPIT包进行分析。以下是用R语言进行GWAS全基因组关联分析的示例代码:
library(GAPIT)
genotype_file <- "genotype.hmp.txt"
phenotype_file <- "phenotype.txt"
GAPIT_data <- GAPIT.Data(fileHapmap = genotype_file,
filePhenotype = phenotype_file)
GAPIT_GLM <- GAPIT.GLM(GAPIT_data)
GAPIT_MLM <- GAPIT.MLM(GAPIT_data)
PCA分析与进化树绘制
我们可以使用plink和gcta进行PCA分析,并使用ggtree进行群体结构进化树的绘制。以下是具体的操作:
# 使用plink和gcta进行PCA分析
plink --bfile plink --make-grm-bin --out plink
gcta --grm-bin plink --pca 10 --out plink
# 在R中使用ggtree绘制进化树
# 以下是示例代码,具体代码需要根据实际情况编写
library(ggtree)
tree <- read.tree("tree.nwk")
ggtree(tree) + geom_tiplab()
从vcf文件中挖掘显著变异位点的频率变化信息
我们可以使用vcftools工具从vcf文件中挖掘显著变异位点的频率变化信息,以下是具体的操作:
vcftools --vcf var.raw.vcf --freq --out freq
以上就是群体重测序数据的挖掘与分析的整个过程,每一步都需要我们仔细和认真的处理。
总结
以下是一个简单的bash脚本,实现对多个样品的批量重测序分析,这个脚本使用了一个循环来处理每一个样品。请注意这只是一个示例脚本,您可能需要根据实际情况对其进行修改或优化。
#!/bin/bash
# 路径参数
REF_GENOME_PATH=/path/to/your/reference/genome
SAMPLE_LIST=/path/to/your/sample/list
SAMPLE_PATH=/path/to/your/sample/data
WORKING_DIR=/path/to/your/working/directory
# 创建工作目录
mkdir -p ${WORKING_DIR}
# 循环处理每一个样品
while read SAMPLE; do
echo "Processing sample ${SAMPLE}..."
# 1. 质控和数据准备
java -jar trimmomatic.jar PE -phred33 \
${SAMPLE_PATH}/${SAMPLE}_1.fq.gz \
${SAMPLE_PATH}/${SAMPLE}_2.fq.gz \
${WORKING_DIR}/${SAMPLE}_1_paired.fq.gz \
${WORKING_DIR}/${SAMPLE}_1_unpaired.fq.gz \
${WORKING_DIR}/${SAMPLE}_2_paired.fq.gz \
${WORKING_DIR}/${SAMPLE}_2_unpaired.fq.gz \
ILLUMINACLIP:TruSeq3-PE.fa:2:30:10 LEADING:3 TRAILING:3 SLIDINGWINDOW:4:15 MINLEN:36
# 2. 序列比对
bwa mem ${REF_GENOME_PATH} \
${WORKING_DIR}/${SAMPLE}_1_paired.fq.gz \
${WORKING_DIR}/${SAMPLE}_2_paired.fq.gz > ${WORKING_DIR}/${SAMPLE}.sam
# 3. 变异检测
samtools view -S -b ${WORKING_DIR}/${SAMPLE}.sam > ${WORKING_DIR}/${SAMPLE}.bam
samtools sort ${WORKING_DIR}/${SAMPLE}.bam -o ${WORKING_DIR}/${SAMPLE}_sorted.bam
samtools mpileup -uf ${REF_GENOME_PATH} ${WORKING_DIR}/${SAMPLE}_sorted.bam | bcftools call -cv - > ${WORKING_DIR}/${SAMPLE}_var.raw.vcf
# 4. 提取VCF文件中的频率信息
vcftools --vcf ${WORKING_DIR}/${SAMPLE}_var.raw.vcf --freq --out ${WORKING_DIR}/${SAMPLE}_freq
echo "Finished processing sample ${SAMPLE}."
done < ${SAMPLE_LIST}
在这个脚本中,我们假设有一个文本文件 ${SAMPLE_LIST} 包含所有待处理的样品名称,每个样品对应一对fastq.gz文件,文件名分别为 ${SAMPLE}_1.fq.gz 和 ${SAMPLE}_2.fq.gz。所有这些文件都存储在 ${SAMPLE_PATH} 路径下。处理过程中的中间文件和结果文件都会存储在 ${WORKING_DIR} 路径下。
使用这个脚本之前,你需要修改上面的四个路径参数,使它们指向实际的路径。另外,这个脚本只执行了一部分的分析步骤,如果你需要执行更多的步骤,你可以在脚本中添加相应的命令。
本文由 mdnice 多平台发布
相关文章:
重测序数据分析流程丨操作步骤与代码与代码脚本
群体重测序数据分析笔记 在生物信息学中,群体重测序数据的挖掘和分析对于理解生物的进化、自然选择以及功能基因的定位等研究具有重要的意义。今天分享的笔记内容是群体遗传学相关的知识点,下面将一步步介绍整个重测序分析的流程和方法。 分析常用流程和…...
npm -v无法显示版本号
情况: 删除C盘下.npmrc文件后解决。路径 C:\Users\Dell 记录一下这个解法。...
【Vue】父子组件值及方法传递使用
父子组件值、方法引用 1、值 1.1 父组件获取子组件值 父组件 <template><div><button click"getChildValue">click</button><child ref"child"></child></div> </template><script> import Child…...
医药化工企业洁净厂房改造消防防爆安全的重要性
设计 【摘要】:近年来,我国医药化工企业规模不断扩大。医药化工企业的情况复杂,稍有不慎将发生火灾或者爆炸,对人员生命以及财产安全造成巨大的损害,酿成悲剧。所以,“三同时”原则的落实,如何…...
Web开发中防止SQL注入
一、SQL注入简介 SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编写时的疏忽,通过SQL语句,实现无账号登录,甚至篡改数据库。 二、SQL注入攻击的总体思路 1.寻找到SQL注入…...
【LeetCode-中等】剑指 Offer 35. 复杂链表的复制(详解)
目录 题目 方法1:错误的方法(初尝试) 方法2:复制、拆开 方法3:哈希表 总结 题目 请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节…...
QT图形视图系统 - 使用一个项目来学习QT的图形视图框架 -第一篇
文章目录 QT图形视图系统介绍开始搭建MainWindow框架设置scene的属性缩放功能的添加加上标尺 QT图形视图系统 介绍 详细的介绍可以看QT的官方助手,那里面介绍的详细且明白,需要一定的英语基础,我这里直接使用一个开源项目来介绍QGraphicsVi…...
Cat.1如何成为物联网业务加速器?
随着Cat.1芯片及模组在功耗和成本上的不断优化,在窄带物联网领域,越来越多的终端客户把Cat.1当做与NB-IoT相比较的第二选择。越来越多的表计、烟感、市政等行业终端将Cat.1模组应用于非集中化部署的上报类终端业务中,Cat.1这只“网红猫”仍保…...
Qt应用开发(基础篇)——布局管理 Layout Management
目录 一、前言 二:相关类 三、水平、垂直、网格和表单布局 四、尺寸策略 一、前言 在实际项目开发中,经常需要使用到布局,让控件自动排列,不仅节省控件还易于管控。Qt布局系统提供了一种简单而强大的方式来自动布局小部件中的…...
Python web实战之 Django 的 ORM 框架详解
本文关键词:Python、Django、ORM。 概要 在 Python Web 开发中,ORM(Object-Relational Mapping,对象关系映射)是一个非常重要的概念。ORM 框架可以让我们不用编写 SQL 语句,就能够使用对象的方式来操作数据…...
pycharm制作柱状图
Bar - Bar_rotate_xaxis_label 解决标签名字过长的问题 from pyecharts import options as opts from pyecharts.charts import Barc (Bar().add_xaxis(["高等数学1,2","C语言程序设计","python程序设计","大数据导论",…...
静态资源导入探究
静态资源可以在哪里找呢?我们看看源码 从这个类进去 里面有个静态类 WebMvcAutoConfigurationAdapter 有个配置类,将这个类的对象创建并导入IOC容器里 这个静态类下有个方法 addResourceHandlers(ResourceHandlerRegistry registry)静态资源处理器 若自…...
安全狗V3.512048版本绕过
安全狗安装 安全狗详细安装、遇见无此服务器解决、在windows中命令提示符中进入查看指定文件夹手动启动Apache_安全狗只支持 glibc_2.14 但是服务器是2.17_黑色地带(崛起)的博客-CSDN博客 安全狗 safedogwzApacheV3.5.exe 右键电脑右下角安全狗图标-->选择插件-->安装…...
prometheus监控k8s kube-proxy target down
prometheus kube-proxy target down 解决 修改配置 kubectl edit cm/kube-proxy -n kube-systemmetricsBindAddress: "0.0.0.0:10249"删除 kube-proxy pod 使之重启应用配置 kubectl delete pod --force `kubectl get pod -n kube-system |grep kube-proxy|awk {pr…...
SPSS数据分析--假设检验的两种原假设取舍决定方式
假设检验的两种原假设取舍决定方式 在t检验,相关分析,回归分析,方差分析,卡方检验等等分析方法中,都需要用到假设检验。假设检验的步骤一般如下: 提出假设:H0 vs H1 ;假设原假设H0 成立的情况…...
Python实现猫狗分类
不废话了,直接上代码: def load_imagepath_from_csv(csv_name):image_path []with open(csv_name,r) as file:csv_reader csv.reader(file)next(csv_reader)for row in csv_reader:image_path.append(row[0])return image_pathimport csv csv_name &…...
pjsip、pjsua2+bcg729 windows下编译java版本
文章目录 简要说明流程步骤 简要说明 基本参考的这里 https://docs.pjsip.org/en/latest/get-started/windows/build_instructions.html#building-the-projects 我这里主要是为了生成pjsua2.dll 用于在java下调用。 其中 libbcg729.dll 是通过vcpkg来进行安装。 pjsip使用vs2…...
尝试多数据表 sqlite
C 唯一值得骄傲的地方就是 通过指针来回寻址 😂 提高使用的灵活性 小脚本buff 加成...
Keil出现Flash Timeout.Reset the Target and try it again.我有一种解决方法
2.解决方法 网上查找了找原因,是因为之前代码设置了读保护功能。 读保护即大家通常说的“加密”,是作用于整个Flash存储区域。一旦设置了Flash的读保护,内置的Flash存储区只能通过程序的正常执行才能读出,而不能通过下述任何一种…...
纯粹即刻,畅享音乐搜索的轻松体验
纯粹即刻,畅享音乐搜索的轻松体验 在当今快节奏的生活中,我们常常渴望一种简单而便捷的方式来探索和享受音乐。现在,你可以纯粹即刻地畅享音乐搜索的轻松体验。无论你是寻找热门歌曲还是探索不同风格的音乐,这款应用将为你带来随…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...
协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...
使用SSE解决获取状态不一致问题
使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件,这个上传文件是整体功能的一部分,文件在上传的过程中…...
Windows电脑能装鸿蒙吗_Windows电脑体验鸿蒙电脑操作系统教程
鸿蒙电脑版操作系统来了,很多小伙伴想体验鸿蒙电脑版操作系统,可惜,鸿蒙系统并不支持你正在使用的传统的电脑来安装。不过可以通过可以使用华为官方提供的虚拟机,来体验大家心心念念的鸿蒙系统啦!注意:虚拟…...
【实施指南】Android客户端HTTPS双向认证实施指南
🔐 一、所需准备材料 证书文件(6类核心文件) 类型 格式 作用 Android端要求 CA根证书 .crt/.pem 验证服务器/客户端证书合法性 需预置到Android信任库 服务器证书 .crt 服务器身份证明 客户端需持有以验证服务器 客户端证书 .crt 客户端身份…...
LangChain【6】之输出解析器:结构化LLM响应的关键工具
文章目录 一 LangChain输出解析器概述1.1 什么是输出解析器?1.2 主要功能与工作原理1.3 常用解析器类型 二 主要输出解析器类型2.1 Pydantic/Json输出解析器2.2 结构化输出解析器2.3 列表解析器2.4 日期解析器2.5 Json输出解析器2.6 xml输出解析器 三 高级使用技巧3…...
Python异步编程:深入理解协程的原理与实践指南
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 持续学习,不断…...
