生信软件13 - 基于sambamba 窗口reads计数和平均覆盖度统计

Sambamba是一个高性能,高度并行,健壮和快速的工具(和库),用D编程语言编写,用于处理SAM和BAM文件。与samtools相比,其优势在于并行BAM读和写。

conda安装

conda install sambamba -y

# github: https://github.com/biod/sambamba

基本用法

# 创建.bai index
samtools index sample.bam

# 计算窗口reads数和平均覆盖度
sambamba depth window -w 1000 sample.sorted.bam > /path/sample.bam_read_depths.txt

统计结果

窗口reads计数的Python封装

参数输入:bam文件绝对路径

调用命令

python reads_depth.py -b /path/Sample.sorted.bam

主程序

# reads_depth.py
import os
import optparse
from pathlib import Path

class ReadsDepth(object):
    def __init__(self, bam_path: str, window_size: int) -> None:
        path_obj = Path(bam_path)
        self.result_dir_path = path_obj.parent
        self.bam_path = bam_path
        self.window_size = window_size
        self.sample_name = str(path_obj.stem).split('.')[0]
        self.output_path = os.path.join(self.result_dir_path, self.sample_name + '.bam_reads_depths.txt')

        self.bam_index()
        
        self.reads_depth()

    def bam_index(self):
        if not os.path.exists(self.bam_path + '.bai'):
            os.system("samtools index {}".format(self.bam_path))
    
    def reads_depth(self):
        run_status = os.system("sambamba depth window -w {0} {1} > {2}".format(self.window_size, self.bam_path, self.output_path))
    

if __name__ == '__main__':
    parser = optparse.OptionParser(usage='"%prog"', version="%prog V1.0")
    parser.add_option("-b", "--bam-path", dest="bam_path", type=str, help="")
    parser.add_option("-w", "--window-size", dest="window_size", type=int, default=1000, help="bp")
    options, args = parser.parse_args()

    reads_depth = ReadsDepth(bam_path=options.bam_path, window_size=options.window_size)

生信软件文章推荐

生信软件1 - 测序下机文件比对结果可视化工具 visNano

生信软件2 - 下游比对数据的统计工具 picard

生信软件3 - mapping比对bam文件质量评估工具 qualimap

生信软件4 - 拷贝数变异CNV分析软件 WisecondorX

生信软件5 - RIdeogram包绘制染色体密度图

生信软件6 - bcftools查找指定区域的变异位点信息

生信软件7 - 多线程并行运行Linux效率工具Parallel

生信软件8 - bedtools进行窗口划分、窗口GC含量、窗口测序深度和窗口SNP统计

生信软件9 - 多公共数据库数据下载软件Kingfisher

生信软件10 - DNA/RNA/蛋白多序列比对图R包ggmsa

生信软件11 - 基于ACMG的CNV注释工具ClassifyCNV

生信软件12 - 基于Symbol和ENTREZID查询基因注释的R包(easyConvert )

更多内容请关注公众号【生信与基因组学】,定期更新生信算法和编程、基因组学、统计学、分子生物学、临床检测和深度学习等内容。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用WordPress在US Domain Center上建立摄影网站的详细教程

第一部分:介绍摄影网站 摄影网站是摄影师展示作品、分享经验、提供服务的在线平台。在摄影网站上,摄影师可以展示自己的摄影作品、发布摄影日志、接受客户预约等。使用WordPress搭建摄影网站具有灵活性和可扩展性,可以通过选择适合的主题和插…

热插拔技术详解(中)

3、热插拔导致的静电问题及其防治 (1)静电产生 物质都是由分子构成,分子是由原子构成,原子由带负电荷的电子和带正电荷的质子构成。在正常状况下,一个原子的质子数与电子数量相同,正负平衡,所以…

Java学习笔记(17)

集合进阶 单列集合 Collection List set Add clear remove contains isempty size Add方法可能也会添加失败 同理,可能删除失败 Contains细节 为什么要重写equals? 因为contains底层用的是object类中的equals方法,比较的是地址值&#xf…

HarmonyOS系统开发ArkTS常用组件文本输入及参数

TextInput文本输入组件,用于接收用户输入的文本内容。 1、TextInput组件的参数 TextInput(value?:{placeholder?: string|Resource , text?: string|Resource}) placeholder属性用于设置无输入时的提示文本text用于设置输入框当前的文本内容 Entry Component st…

PieCloudDB Database 3.0 正式发布丨数仓虚拟化流转数据要素

3月14日,拓数派 2024 年度战略暨新产品发布会在上海国际会议中心成功举行。本次大会的主题为「数仓虚拟化 流转数据要素」,吸引了众多业内资深专家和合作伙伴参与,共同探讨数据要素流转和数字技术创新等热门话题。 拓数派创始人兼 CEO 冯雷&…

ArmSoM-Sige RK3588开发板使用手册

Sige7 使用手册,帮助用户了解Sige7的基本使用和需要的准备工作。 当您拿到产品的时候,您需要知道它的型号以及硬件版本,这些信息都可以在板子上的丝印找到。我们会尽可能详细地向您介绍产品的信息。 入门准备​ 在开始使用 ArmSoM-Sige7 之…

探索雨云:AMD EPYC处理器助力香港三网直连

在数字化时代,云计算和数据传输速度成为了商业和科技发展的关键。香港作为国际金融中心和亚太地区的数字枢纽,其网络基础设施的发展备受瞩目。而雨云(RainCloud)作为一家致力于提供高效稳定云计算服务的领先企业,近日引…

yolov9目标检测可视化图形界面GUI源码

该系统是由微智启软件工作室基于yolov9pyside6开发的目标检测可视化界面系统 运行环境: window python3.8 安装依赖后,运行源码目录下的wzq.py启动 程序提供了ui源文件,可以拖动到Qt编辑器修改样式,然后通过pyside6把ui转成python…

全流程WRF高精度气象模拟技术及在地学领域中的实践应用

随着生态文明建设和“碳中和”战略的持续推进,我国及全球气候变化及应对是政府、科学界及商业界关注的焦点。气候是多个领域(生态、水资源、风资源及碳中和等问题)的主要驱动因素,合理认知气候变化有利于解释生态环境变化机理及过…

2024跨境品牌出海指南:9大关键要素与注意事项

随着全球经济的不断发展,跨境电商成为品牌拓展国际市场的重要途径。然而,随之而来的是更为激烈的竞争和日益变化的市场环境。2024年,跨境卖家若想成功出海,必须在众多竞争者中脱颖而出。本文Nox聚星将和大家探讨2024年品牌出海过程…

手撕算法-判断是不是完全二叉树

描述&#xff1a;思路&#xff1a;采用层序遍历&#xff0c;找到一个为空的标记&#xff0c;如果后面还有值&#xff0c;就代表不是完全二叉树。代码&#xff1a; public boolean isCompleteTree (TreeNode root) {// write code hereif(root null) return true;Queue<Tree…

第十二届蓝桥杯大赛软件赛决赛C/C++ 研究生组-纯质数

直接判断数据过大 相对而言&#xff0c;由2&#xff0c;3&#xff0c;5&#xff0c;7组成的数更少&#xff0c;则先筛选出由2,3,5,7组成的数&#xff0c;再判断这些数中的质数个数即可 #include <iostream> using namespace std; int main() {printf("1903");…

精准选型!企业CRM系统选型指南携手十大功能解析

大家好我是卡林&#xff0c;今天分享CRM系统的十大功能&#xff0c;企业CRM系统选型指南。说起CRM的功能&#xff0c;大家会联想到什么&#xff1f;数据库、商机管理或者销售漏斗&#xff0c;这些是大部分人都会联想到的功能&#xff0c;但不太全面。如线索管理、联系人管理、客…

日本370公告 各类材质餐具进出口检测 报告出具

食品接触材料指的是在正常使用过程中与食品进行接触的材料&#xff0c;涉及的产品包括&#xff1a;食品包装&#xff0c;餐具、厨具&#xff0c;食品加工机械&#xff0c;厨电产品等&#xff0c;但是由于其在生产过程中使用了一些化学原材料及化学助剂等&#xff0c;使得他们在…

【探索Linux】—— 强大的命令行工具 P.28(网络编程套接字 —— 简单的UDP网络程序模拟实现)

阅读导航 引言一、UDP协议二、UDP网络程序模拟实现1. 预备代码⭕makefile文件⭕打印日志文件⭕打开指定的终端设备文件&#xff0c;并将其作为标准错误输出的目标文件描述符 2. UDP 服务器端实现&#xff08;UdpServer.hpp&#xff09;3. UDP 客户端实现&#xff08;main函数&a…

python问题:vscode切换环境,pip安装库网络错误,不使用anaconda安装库

python问题&#xff1a;vscode切换环境&#xff0c;pip安装库网络错误 vscode切换环境pip安装库网络错误 不使用anaconda安装库 记录一下遇见的python问题。 vscode切换环境 在vscode上面的搜索框输入 > select interpreter然后选择需要的环境。 pip安装库网络错误 用…

cobbler批量装机工具,可以实现同时装多台或多台不同系统的主机,也可以实现定制安装

cobbler批量装机工具 文章目录 cobbler批量装机工具1. cobbler简介2. cobbler服务端部署uos3. 客户端安装(内存和cpu可以多个点&#xff0c;以免后面出错)4.cobbler服务端部署centos75.客户端安装6.cobbler服务端部署centos87.客户端安装8.cobbler服务端部署rockylinux99.客户端…

HarmonyOS NEXT应用开发之Navigation实现多设备适配案例

介绍 在应用开发时&#xff0c;一个应用需要适配多终端的设备&#xff0c;使用Navigation的mode属性来实现一套代码&#xff0c;多终端适配。 效果图预览 使用说明 将程序运行在折叠屏手机或者平板上观看适配效果。 实现思路 本例涉及的关键特性和实现方案如下&#xff1a…

关于 hbuild 真机调试:

当手机插上数据线&#xff0c;刷新&#xff0c;依旧找不到手机列表时&#xff0c;点击“故障排查指南” 参考官网&#xff1a;https://uniapp.dcloud.net.cn/tutorial/run/run-app-faq.html 操作步骤&#xff1a; 1、在手机设置中打开开发者模式&#xff08;根据不同手机打开…

postman进阶功能学习,别再简单的发请求了!

1.Postman数据驱动 想要批量执行接口用例&#xff0c;我们一般会将对应的接口用例放在同一个Collection中&#xff0c;然后再通过Runner批量执行。这种方式适用于接口用例参数固定的情况下&#xff0c;但也存在另一个问题&#xff0c;如果每次运行时&#xff0c;接口参数都在变…