PS-ZB转座子分析流程2-重新分析并总结

news2024/11/17 17:47:17

数据处理

数据质控
随机挑出九个序列进行比对,结果如下:
在这里插入图片描述所有序列前面的部分序列均完全相同,怀疑是插入的转座子序列,再随机挑选9个序列进行比对,结果如下:
在这里插入图片描述
结果相同,使用cutadapt将该段序列修剪。

nohup cutadapt -g GTGTCAAATACTTATTTTCCCCGCTGTA -o ps_fastpTrimmed.cutadapt.fq PS_fastpTrimmed.fastq &

在这里插入图片描述可以看到,大部分数据均经历了修剪,我们再随机选择部分数据进行比对,查看修剪情况。
在这里插入图片描述
结果表明修剪成功。

比对

bwa mem -t 32 ../../001.blastFORcgspy/human.ref.bwaindex/GCF_000001405.40_GRCh38.p14_genomic.fna 002.ps_fastpTrimmed.cutadapt.fq > 003.ps_fastpTrimmed.cutadapt.sam &

(这里遇到了一点小bug,使用nohup挂后台的时候,居然把处理的过程信息输入到了我的结果文件中,导致我后面将sam文件转换为bam文件的时候一直在报错,去掉nohup后重新运行程序bug解除,可恶可恶!)

去除表头

awk '!/@SQ/' 003.ps_fastpTrimmed.cutadapt.sam > 003.ps_fastpTrimmed.cutadapt.1.sam &

查看比对结果
在这里插入图片描述可以看到,一些数据的比对质量良好,但也有部分数据未能成功比对。

反向验证1

公司提供的结果中,总共有6107个插入位点,并且未对其支持的reads数进行质控,见下图
在这里插入图片描述前三列是插入位点的染色体以及物理位置,第四列是正负链信息,第五列是插入的转座子名称,第六列是插入位点支持reads数。

由于该数据中给出了插入位点的物理位置,我们可以根据给出的物理位置去验证是否存在对应的序列,可以使用bedtools工具的coverage功能统计给定的物理位置上覆盖的reads数。

数据预处理

首先,我们需要将比对结果的sam文件进行转换,使用samtools工具将比对结果的sam文件转换为bam文件

samtools view -bS 003.ps_fastpTrimmed.cutadapt.sam > 004.ps_fastpTrimmed.cutadapt.bam &

接着对bam文件进行排序

samtools sort 004.ps_fastpTrimmed.cutadapt.bam -o 005.psseq.sorted.bam &

然后,使用samtools的depth命令统计所有位点覆盖的reads数:

samtools depth 005.psseq.sorted.bam > 006.depth.txt &

公司的结果文件中,给的位点是以染色体号的形式命名的,而参考基因组是以染色体编码的形式命名的,所以需要进行替换。(为了方便,此步骤直接使用excel完成的,需要注意的是选择单元格匹配即可)
替换后,使用awk将位点的染色体号与物理位置合并,获得一个只有物理位置的结果文件(文件1),和一个基与比对文件生成的具有物理位置和reads数的文件(文件2)。(实现类似于excel中vlookup函数的功能)

#准备需要查找(第一列)并返回对应值(第二列)文件
awk '{print $1 "+"$2 , $3}' 006.psseq.depth.txt > 006.psseq.depth.1.txt
#准备待查找的文件(仅一列)
awk '{print $1 "+"$2}' ps_reducedIns.1.txt > ps_reducedIns.merged.txt
#可选项,不影响查找,但是排序后更加便于观察
sort -o 006.psseq.depth.1.sorted.txt -t $'\t' -k1,1 006.psseq.depth.1.txt

使用awk实现excel中的vlookup函数的功能。

awk 'FNR==NR {arr[$1] = $2; next} {print $0, arr[$1]}' 006.psseq.depth.1.txt ps_reducedIns.merged.txt > psseq.psresult.overlap.txt

观察结果
在这里插入图片描述
使用excel进行统计分析
在这里插入图片描述
在ps的6107个结果中,仅有183(2.9%)个位点能找到对应的reads数,在之前生成的depth文件中手动查找验证那些找不到reads数的位点用以核实是否代码是否有问题,结果表明:这些空值位点在depth文件中都找不到。

使用ZB的结果对PS的测序比对结果进行匹配,流程如上所属

#准备待查找的文件(仅一列)
awk '{print $1 "+"$2}' zb_reducedIns.1.txt > zb_reducedIns.merged.txt
awk 'FNR==NR {arr[$1] = $2; next} {print $0, arr[$1]}' 006.psseq.depth.1.txt zb_reducedIns.merged.txt > psseq.zbresult.overlap.txt

查看结果
在这里插入图片描述
居然很多都能找到对应的位点,使用excel统计一下
在142694个位点中,有21795(15.2%)个位点能够找到,提示PS和ZB的结果与测序文件结果给反了。继续进行多重验证

分析ZB的结果

观察ZB的测序结果
在这里插入图片描述
同样存在转座子序列,进行修剪

cutadapt -g TGCGCCTTATAGTGCGGAAAATACGGTA -o zb_fastpTrimmed.cutadapt.fq ../ZB_w_118_fastpTrimmed.fastq &

在这里插入图片描述
表明修剪成功
进行比对

bwa mem -t 32 ../../001.blastFORcgspy/human.ref.bwaindex/GCF_000001405.40_GRCh38.p14_genomic.fna zb_fastpTrimmed.cutadapt.fq > 003.zb_fastpTrimmed.cutadapt.sam &
samtools view -bS 003.zb_fastpTrimmed.cutadapt.sam > 004.zb_fastpTrimmed.cutadapt.bam &
samtools sort 004.zb_fastpTrimmed.cutadapt.bam -o 004.zbseq.sorted.bam &

查找

awk 'FNR==NR {arr[$1] = $2; next} {print $0, arr[$1]}' 006.zbseq.depth.merged.txt zb_reducedIns.merged.txt > zbseq.zbresult.overlap.txt &
awk 'FNR==NR {arr[$1] = $2; next} {print $0, arr[$1]}' 006.zbseq.depth.merged.txt ps_reducedIns.merged.txt > zbseq.psresult.overlap.txt &

查看结果
在公司给出的142694个ZB位点中,在ZB测序数据中仅能找到196个(0.13%)位点具有reads数支持。
而在公司给出的6107个PS位点中,在ZB测序数据中能找到2042个(33.4%)位点具有reads数支持。

反向验证2

由于反向验证1的结果提示PS和ZB的测序数据与给出的位点结果可能反了,使用bedtools的coverage功能直接调出该位点覆盖的reads数。

数据预处理

需要将公司给出的位点的结果的染色体号和物理位置信息提取出来,做成bed格式,用于bedtools数据处理。

bedtools coverage -a ps_reducedIns.1bp.txt -b 005.psseq.sorted.bam > psseq.psresult.readsnumber.bed &
bedtools coverage -a zb_reducedIns.1bp.txt -b 005.psseq.sorted.bam > psseq.zbresult.readsnumber.bed &

在这里插入图片描述
这里是公司给的ps位点对应的ps测序数据的reads结果,可以看到很多位点都没有对应的reads数覆盖。使用excel进行统计,发现在公司给出的6107个位点中,在ps测序数据中仅能找到191(3.1%)个位点具有覆盖的reads。与之前的结果类似。
在这里插入图片描述
这里是公司给的zb位点对应的ps测序数据的reads结果,可以看到reads数覆盖的位点明显变多。使用excel进行统计,发现在公司给出的142694个位点中,在ps测序数据中能找到42302(29.6%)个位点具有覆盖的reads。与之前的结果类似。

对ZB的测序数据开展类似处理
在公司的给出的6107个ps位点中,有2102(34.4%)个位点在zb测序数据中具有覆盖的reads,而在公司给出的142694个zb微电子红,有200(0.14%)个位点在zb测序数据中具有覆盖的reads,与反向验证1的结果类似。

由于怀疑是基因组版本不一样导致位点数的物理位置出现了变化,进而导致了这些位点找不到覆盖的reads数,尝试扩展位点附近的序列进行覆盖书统计。
先查看插入位点极其上下5bp的序列的覆盖情况。数据准备流程如前所述
在公司给出的6107个ps位点中,在ps测序数据中仅能找到212个(3.4%)位点具有覆盖的reads。而在公司给出的142694个zb位点中,在ps测序数据中能找到142518个(99.8%)位点具有覆盖的reads。
在公司给出的6107个ps位点中,在zb测序数据中能找到6105个(99.9)位点具有覆盖的reads。而在公司给出的142694个zb位点中,在zb测序数据中仅能找到230(0.16%)位点具有覆盖的reads。
以上结果表明,结合插入位点附近的位点用于查看,覆盖率明显上升(zbseq-psresult,psseq-zbresult),表明可能确实是由基因组版本导致插入位点的统计出现了微小差异,并且测序数据与对应的额结果给反了。于是,我们查询了原文给出的参考基因组版本,使用的UCSC数据中的参考基因组,稍后正向验证的时候下载UCSC数据库中的参考基因组进行正向分析

正向分析

正向分析使用统计比对上的reads的边缘位点的策略,由于sam文件仅给出了比对到基因组上的最左边碱基的物理位置,所以对于匹配到正脸的数据,取其最匹配上的第一个碱基的物理位置即可,而对于匹配到负链的数据,使用匹配上的第一个碱基的物理位置加上比对上的碱基数即可得出匹配到负链的实际插入位点的物理位置。分析流程如下:
接之前的比对结果

#去除表头
awk '!/@SQ/' 003.ps_fastpTrimmed.cutadapt.sam > 004.psseq.1.sam &
#去除首行
awk '!/@PG/' 004.psseq.1.sam > 005.psseq.2.sam &
#去除没有比对上的数据
awk '$4 != 0' 005.psseq.2.sam > 006.psseq.3.sam
#数据从42497873行变为了31422261,约22%的数据没有比对上#
#提取数据的前六行信息用于分析
awk '{print $1, $2, $3, $4, $5, $6}' 006.psseq.3.sam > 007.psseq.4.sam &

统计一下比对到±链的reads数量

awk '{count[$2]++} END {for (word in count) print word, count[word]}' 007.psseq.4.sam > 008.strandnumber &
0 8280752
16 23141011
2048 292
2064 206

分别提取比对到正链和负链的信息用于分析

#提取正链
awk '$2 == 0' 007.psseq.4.sam > 009.psseq.5.+.sam &
#提取负链
awk '$2 == 16' 007.psseq.4.sam > 009.psseq.5.-.sam &

统计位于正链的插入位点的数量

#将染色体号和物理位置连接起来,防止将不同染色体的相同物理位置统计到一起
awk '{print $1 , $2 , $3 "+" $4 , $5 ,$6}' 009.psseq.5.+.sam > 009.psseq.5.+.1.sam &
#统计插入位点的数量
awk '{count[$3]++} END {for (word in count) print word, count[word]}' 009.psseq.5.+.1.sam > 009.psseq.5.+.2.txt &
#去除reads数小于5的位点
awk '$2 > 4 {print}' 009.psseq.5.+.2.txt > 009.psseq.5.+.3.txt &

将结果比对到公司给的ps结果中,仅有2个位点有reads数
而在比对到公司给的zb结果中,有70个位点有reads数
数量实在太少,可能是之前的质控丢失了部分数据。

@SQ     SN:NC_000001.11 LN:248956422
@SQ     SN:NC_000002.12 LN:242193529
@SQ     SN:NC_000003.12 LN:198295559
@SQ     SN:NC_000004.12 LN:190214555
@SQ     SN:NC_000005.10 LN:181538259
@SQ     SN:NC_000006.12 LN:170805979
@SQ     SN:NC_000007.14 LN:159345973
@SQ     SN:NC_000008.11 LN:145138636
@SQ     SN:NC_000009.12 LN:138394717
@SQ     SN:NC_000010.11 LN:133797422
@SQ     SN:NC_000011.10 LN:135086622
@SQ     SN:NC_000012.12 LN:133275309
@SQ     SN:NC_000013.11 LN:114364328
@SQ     SN:NC_000014.9  LN:107043718
@SQ     SN:NC_000015.10 LN:101991189
@SQ     SN:NC_000016.10 LN:90338345
@SQ     SN:NC_000017.11 LN:83257441
@SQ     SN:NC_000018.10 LN:80373285
@SQ     SN:NC_000019.10 LN:58617616
@SQ     SN:NC_000020.11 LN:64444167
@SQ     SN:NC_000021.9  LN:46709983
@SQ     SN:NC_000022.11 LN:50818468
@SQ     SN:NC_000023.11 LN:156040895
@SQ     SN:NC_000024.10 LN:57227415
awk '{count[$7]++} END {for (word in count) print word, count[word]}' 002.readsNUMBER.ZB.bed > freq.txt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1610784.html

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

相关文章

【C语言】贪吃蛇项目(2)- 实现代码详解

文章目录 前言一、游戏开始界面设计首先 - 打印环境界面其次 - 游戏地图、蛇身及食物的设计1、地图2、蛇身设置及打印3、食物 二、游戏运行环节蛇的上下左右移动等功能蛇的移动 三、结束游戏代码 前言 在笔者的前一篇博客中详细记载了贪吃蛇项目所需的一些必备知识以及我们进行…

【飞桨AI实战】人体姿态估计:零基础入门,从模型训练到应用开发

前言 本次分享将带领大家从 0 到 1 完成一个人体姿态估计任务,覆盖数据准备、模型训练、推理部署和应用开发的全流程,项目将采用以PaddlePaddle为核心的飞桨深度学习框架进行开发,并总结开发过程中踩过的一些坑,希望能为有类似项…

模电期末复习(二)放大电路的基本原理和分析方法

放大电路的基本原理和分析方法 2.1 放大的概念2.2 放大电路的主要技术指标2.3 单管共发射极放大电路2.3.1 单管共发射极放大电路的组成2.3.2 单管共射放大电路的工作原理 2.4 放大电路的基本分析方法2.4.1 直流通路与交流通路2.4.2 静态工作点的近似估算2.4.3 图解法&#xff…

第23天:安全开发-PHP应用后台模块SessionCookieToken身份验证唯一性

第二十三天 一、PHP后台身份验证模块实现 二、Cookie&Session技术&差异 1.生成cookie的原理图过程:见上图 客户端向服务器发送HTTP请求。服务器检查请求头中是否包含cookie信息。如果请求头中包含cookie信息,则服务器使用该cookie来识别客户端…

C++奇迹之旅:构造函数和析构函数

文章目录 📝类的6个默认成员函数🌠 构造函数🌉 概念🌉特性🌉三种默认构造函数 🌠 析构函数🌠 特性🚩总结 📝类的6个默认成员函数 如果一个类中什么成员都没有&#xff0…

OpenHarmony其他工具类—lua

简介 Lua是一种功能强大、高效、轻量级、可嵌入的脚本语言。 支持过程编程、面向对象编程、函数编程、数据驱动编程和数据描述。 下载安装 直接在OpenHarmony-SIG仓中搜索lua并下载。 使用说明 以OpenHarmony 3.1 Beta的rk3568版本为例 将下载的lua库代码存在以下路径&#…

javase__进阶 day13stream流和方法引用

1.不可变集合 1.1 什么是不可变集合 ​ 是一个长度不可变,内容也无法修改的集合 1.2 使用场景 ​ 如果某个数据不能被修改,把它防御性地拷贝到不可变集合中是个很好的实践。 ​ 当集合对象被不可信的库调用时,不可变形式是安全的。 简单…

von Mises-Fisher Distribution (代码解析)

torch.distribution 中包含了很多概率分布的实现,本文首先通过均匀分布来说明 Distribution 的具体用法, 然后再解释 von Mises-Fisher 分布的实现, 其公式推导见 von Mises-Fisher Distribution. 1. torch.distribution.Distribution 以下是 Uniform 的源码: cl…

黑灰产行业简介

参考:2021年黑灰产行业研究及趋势洞察报告 1. 有哪些场景面临大量黑灰产攻击? 1.营销活动场景 -- 该场景最为猖獗 1. 抹机及接码注册:黑灰产会使用抹机工具修改设备参数伪装成一台新设备,再配合联系卡商进行手机号接码&#xf…

面试(05)————Redis篇

目录 一、项目中哪些地方使用了redis 问题一:发生了缓存穿透该怎么解决? 方案一:缓存空数据 方案二:布隆过滤器 模拟面试 问题二: 发生了缓存击穿该怎么解决? 方案一:互斥锁 方案二&#xff…

vue3:树的默认勾选和全选、取消全选

实现的功能&#xff0c;上面有个选择框&#xff0c;当选中全部时&#xff0c;下方树被全选 代码&#xff1a; <template><div><el-select v-model"selectAll" style"margin-bottom: 10px;" change"handleSelectAllChange">&…

Vue2 —— 学习(九)

目录 一、全局事件总线 &#xff08;一&#xff09;全局总线介绍 关系图 对图中的中间商 x 的要求 1.所有组件都能看到 2.有 $on $off $emit &#xff08;二&#xff09;案例 发送方 student 接收方 二、消息订阅和发布 &#xff08;一&#xff09;介绍 &#xff08…

4.6 CORS 支持跨域

CORS (Cross-Origin Resource Sharing &#xff09;是由 W3C 制定的一种跨域资源共享技术标准&#xff0c;其目的就是为了解决前端的跨域请求。在 Java EE 开发中&#xff0c;最常见的前端跨域请求解决方案是 JSONP &#xff0c;但JSONP 只支持 GET 请求&#xff0c;这是 个很大…

数据结构之排序了如指掌(三)

目录 题外话 正题 快速排序 Hoare法 Hoare法思路 Hoare法代码详解 挖坑法 挖坑法思路 挖坑法代码 前后指针法 前后指针法思路 前后指针法代码 小结 题外话 我们接着把没有写完的排序内容完成,快速排序其实大同小异,大家好好把思路整理一下 正题 快速排序 快速排序一…

HarmonyOS 状态管理

在声明式 UI 框架中&#xff0c;数据的改变触发 UI 的重新渲染。在 ArkUI 中不是所有数据的变化都会触发 UI 重新渲染&#xff0c;只有 状态变量 才会引起 UI 重新渲染。 状态变量 状态变量&#xff1a; 指被状态装饰器装饰的变量&#xff0c;只有这种变量的改变才会引起 UI …

(2022级)成都工业学院数据库原理及应用实验七: 数据库安全

写在前面 1、基于2022级软件工程/计算机科学与技术实验指导书 2、成品仅提供参考 3、如果成品不满足你的要求&#xff0c;请寻求其他的途径 运行环境 window11家庭版 Navicat Premium 16 Mysql 8.0.36 实验要求 1、创建数据库hospital,在hospital数据库中创建科室表De…

第一个STM32F767IGT6核心板

一. 制作原因 起先是因为参加计算机设计大赛准备的板子&#xff0c;其作用是连接OV5640摄像头来识别车牌号&#xff0c;主要外设有摄像头&#xff0c;SDRAM&#xff0c;网口等。 二. 原理图和PCB 原理图 PCB 三. 测试 1. 测试SDRAM功能 按下按键我们可以在串口中看到内存…

LTspice/Simplis仿真代码使用

LTspice/Simplis仿真代码使用 HI uu们 HI uu们,关注我的uu经常看到我上面贴了很多仿真代码,但是不知道怎么用. 今天来介绍下仿真代码怎么用, 比如说,我们用OP07做了一个跟随器,如图1所示. 图1:OP07跟随器 他的仿真代码非常简单,如下所示 XU1 N002 vout N001 N003 vout LT…

【Linux】详解进程通信中信号量的本质同步和互斥的概念临界资源和临界区的概念

一、同步和互斥的概念 1.1、同步 访问资源在安全的前提下&#xff0c;具有一定的顺序性&#xff0c;就叫做同步。在多道程序系统中&#xff0c;由于资源有限&#xff0c;进程或线程之间可能产生冲突。同步机制就是为了解决这些冲突&#xff0c;保证进程或线程之间能够按照既定…

都以为他是自杀20年后遗书曝光才明白张国荣的离世不简单

在时光的长河中&#xff0c;有些瞬间如同流星划过天际&#xff0c;短暂却又璀璨夺目。二十年前的那个春天&#xff0c;一个灵魂从这个喧嚣世界悄然离去&#xff0c;留下无尽的叹息与疑问。他就是张国荣——一位被誉为“风华绝代”的巨星。许多人曾认定他的离开是一场悲剧性的自…