「Bionano系列」下机原始数据过滤和评估

2024-06-23 20:48

本文主要是介绍「Bionano系列」下机原始数据过滤和评估,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

从这部分开始,就开始涉及一些软件的操作和数据分析,因此在进入正文之前,我们需要准备好环境。

环境准备

第一步:从 https://bionanogenomics.com/library/datasets/下载人类测试数据集,以及对应的NA12878人类基因组。

DLE数据集

wget http://bnxinstall.com/publicdatasets/DLS/20180413_NA12878_S3_compressed.tar.gz
tar xf 20180413_NA12878_S3_compressed.tar.gz
wget ftp://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/002/077/035/GCA_002077035.3_NA12878_prelim_3.0/GCA_002077035.3_NA12878_prelim_3.0_genomic.fna.gz
gunzip GCA_002077035.3_NA12878_prelim_3.0_genomic.fna.gz
mv GCA_002077035.3_NA12878_prelim_3.0_genomic.fna NA12878.fa

第二步: 在https://bionanogenomics.com/support/software-downloads/下载Solve软件,

Solve下载地址

服务器要满足如下需求:

  • Python=2.7.x
  • perl=5.14.x或5.16.x
  • R > 3.1.2,并且安装data.table, igraph, intervals, MASS, parallel, XML, argparser
  • glibc >= 2.14 和 gcc库
  • 至少有一个256G节点的内存,最好有一些32G内存的小节点
tar -zxvf Solve3.3_10252018.tar.gz

解压缩后里有如下几个文件夹

  • cohortQC: 主要是MQR运行脚本
  • HybridScaffold: 单酶系统和双酶系统混合组装工具脚本
  • Pipeline:从头组装的脚本
  • RefAligner:用于序列联配和组装
  • RefGenome:hg19和hg38的cmp文件
  • SVMerge: 用于合并单酶系统得到SV结果
  • UTIL: 运行从头组装的一些实用shell脚本,可以根据需要进行修改
  • VariantAnnotation: 对找到的SV进行注释
  • VCFConverter: 将SMAP和SVMerge的结果输出成VCF格式

数据过滤

目前的主流Bionano设备已经是Sapjyr,BNX文件产生于Saphyr,经由Bionano Access 下载到本地。

从公司拿到的是"RawMolecules.bnx"文件, 不过我们练习用的数据是"output/all.bnx.gz",

mkdir test
mv output/all.bnx.gz test
zcat  all.bnx.gz| head -n 20000 | grep "# Run Data" | wc -l
# 281 

我们发现发现数据集来自于281个通道。

Label SNR 过滤: 过滤信噪比较低的分子,信噪比低意味着质量差。 有如下几个情况,不需要做Label SNR 过滤,或在你BNX文件的"#rh"部分有"SNRFilterType"定义,就不需要过滤

  • 人类样本不需要过滤。
  • Bionanao Access 1.2 以后新的图像检测算法得到的BNX文件不需要SNR过滤.
  • 对于AutoDetect或Irysview处理过的数据,默认会进行label SNR过滤,处理之后就是Molecules.bnx

由于我们是人类数据集,因此下面的代码就不需要运行了,并且绝大部分情况下也用到下面的命令。

perl /opt/biosoft/Solve3.3_10252018/cohortQC/10252018/filter_SNR_dynamic.pl -i RawMolecules.bnx -o Molecules_filter.bnx -P diag_hist.pdf > snr.log &

分子长度过滤: 过滤短与某个阈值的分子,公司一般会只保留100kb或120Kb以上的分子(取决于数据量,数据越多,阈值越高)

gunzip all.bnx.gz
RefAlinger -i all.bnx -minlen 120 -merge -o output -bnx > run.log &

在输出的内容中,注意如下部分

Final maps=1147524, sites=46764680, length= 268845841.028kb (avg= 234.283 kb, label density= 17.395 /100kb)

表明过滤后,还有113万条分子,涉及到4676万标记,总测序量为258G,标记密度是17.395/100kb,平均分子长度大于234Kb… 测序深度等于总测序量除以基因组大小,这是人类基因组,按照3G计算,那么深度就是80X.

过滤后平均分子长度应大于200Kb。 标记密度不能过高,过高会因分辨率不够而无法区分,过低则无法用于比对。一般DLS在10~25 , NRLS在8~15.

组装评估: 在正式组装之前,我们还需要判断下当前数据是否满足组装要求。 为了获取所需的评估参数,得将过滤后的BNX文件和基因组模拟模切得到的CMAP进行比对

第一步: 对基因组序列模拟酶切,得到CMAP文件

perl /opt/biosoft/Solve3.3_10252018/Pipeline/10252018/fa2cmap_multi_color.pl -i ../NA12878.fa -e cttaag 1
mv ../NA12878_CTTAAG_0kb_0labels.cmap .

CMAP的格式比较简单,说明如下:

cMAP格式说明

第二步: 用align_bnx_to_cmap.py进行比对。 bionano光学图谱比对的基本原理是基于标记的相对位置。

python /opt/biosoft/Solve3.3_10252018/Pipeline/10252018/align_bnx_to_cmap.py  \--prefix  human \--mol molecules120k.bnx  \--ref NA12878_CTTAAG_0kb_0labels.cmap \--ra /opt/biosoft/Solve3.3_10252018/RefAligner/7915.7989rel  \--nthreads 80  \--output prealign \--snrFilter 2 \--color 1 

参数说明可自行阅读帮助说明。我们重点关注输出结果中如下几方面内容:

  • “contigs/alignmolvref/alignmol_log_simple.txt”里的“Fraction of aligned molecules”和"Effective coverage of reference (X)". 我们要判断数据是否符合最低的比对率。比对率和基因组实际情况有关(组装质量,错误率,重复坍缩情况)。对于人类基因可以达到90%以上,对于不怎么完整度的基因组,即便Bionano的质量很高,比对率可能也只有30%~40%(仅统计150 kb 的分子)

比对率

  • “alignments.tar.gz”, 里面包含的三个文件可以输入到Bionano提供的另一个工具Access中进行可视化,注意导入要选择"Anchor to Molecules"。

step1:创建输入

step2: 选择文件

step3: 上传文件

由于人类基因组足够的大,因此需要等待一段时间才能处理完成,之后就可以对比对结果有一个更加直观的了解。

上传成功后

可视化

那么合格后的数据应该如何组装呢?请等待后续教程!

这篇关于「Bionano系列」下机原始数据过滤和评估的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1088239

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

pandas数据过滤

Pandas 数据过滤方法 Pandas 提供了多种方法来过滤数据,可以根据不同的条件进行筛选。以下是一些常见的 Pandas 数据过滤方法,结合实例进行讲解,希望能帮你快速理解。 1. 基于条件筛选行 可以使用布尔索引来根据条件过滤行。 import pandas as pd# 创建示例数据data = {'Name': ['Alice', 'Bob', 'Charlie', 'Dav

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

GPT系列之:GPT-1,GPT-2,GPT-3详细解读

一、GPT1 论文:Improving Language Understanding by Generative Pre-Training 链接:https://cdn.openai.com/research-covers/languageunsupervised/language_understanding_paper.pdf 启发点:生成loss和微调loss同时作用,让下游任务来适应预训

PR曲线——一个更敏感的性能评估工具

在不均衡数据集的情况下,精确率-召回率(Precision-Recall, PR)曲线是一种非常有用的工具,因为它提供了比传统的ROC曲线更准确的性能评估。以下是PR曲线在不均衡数据情况下的一些作用: 关注少数类:在不均衡数据集中,少数类的样本数量远少于多数类。PR曲线通过关注少数类(通常是正类)的性能来弥补这一点,因为它直接评估模型在识别正类方面的能力。 精确率与召回率的平衡:精确率(Pr

Java基础回顾系列-第七天-高级编程之IO

Java基础回顾系列-第七天-高级编程之IO 文件操作字节流与字符流OutputStream字节输出流FileOutputStream InputStream字节输入流FileInputStream Writer字符输出流FileWriter Reader字符输入流字节流与字符流的区别转换流InputStreamReaderOutputStreamWriter 文件复制 字符编码内存操作流(

Java基础回顾系列-第五天-高级编程之API类库

Java基础回顾系列-第五天-高级编程之API类库 Java基础类库StringBufferStringBuilderStringCharSequence接口AutoCloseable接口RuntimeSystemCleaner对象克隆 数字操作类Math数学计算类Random随机数生成类BigInteger/BigDecimal大数字操作类 日期操作类DateSimpleDateForma