把bam文件读入R,并且转为grange对象

假如你的Windows电脑有个bam文件,不想传输到linux服务器去使用samtools等命令行工具来探索它,就可以使用R语言!

有成熟的R包可以把bam文件读入R,比如Rsamtools,很简单的代码:

library(Rsamtools)

bamFile="alignResults.BAM"

quickBamFlagSummary(bamFile)

# https://kasperdanielhansen.github.io/genbioconductor/html/Rsamtools.html

bam

bam

值得注意的是,这里我虽然不再演示了,但是作为初学者的你,应该是知道

但是把读入的数据变成grange对象就需要一点点技巧,下面演示如何创建grange对象samtools等命令行工具有多复杂的功能和技巧, 那么这个R包就可以多复杂,如果你学习足够努力,那就发一个你比较Rsamtools和samtools命令行工具的心得笔记给我吧,我会给你惊喜的,我的邮箱是 jmzeng1314@163.com

names(bam[[1]])

tmp=as.data.frame(do.call(cbind,lapply(bam[[1]], as.character)))

tmp=tmp[tmp$flag!=4,] # 60885 probes

# intersect() on two GRanges objects.

library(GenomicRanges)

my_seq

IRanges(as.numeric(pos)-60, as.numeric(pos)+60),

as.character(strand),

id = as.character(qname)))

得到对象如下:

image

关于 grange对象

三年前我在生信菜鸟团博客就多次强调过这个重点了,在R里面处理生物信息学数据是躲不过这个定义的,有点类似于各式各样的生物信息学文件格式,是一个标准。

对这个grange对象也会有很多很多的方法,假设有一个grange对象命名为exon_txdb,来自于代码

library("TxDb.Hsapiens.UCSC.hg19.knownGene")

txdb

exon_txdb=exons(txdb)

genes_txdb=genes(txdb)

那么操作它的函数有:

seqnames(exon_txdb)返回一个class 'Rle' [package "S4Vectors"] with 4 slots,有93个染色体信息,以及每条染色体上面有多少个外显子信息

ranges(exon_txdb)返回外显子的起始终止位点,长度,以及其它信息,也是一个对象class 'IRanges' [package "IRanges"] with 6 slots

strand(exon_txdb)返回外显子的正负链信息,要么在正链要么在负链

mcols(exon_txdb)返回exon的id编号,1到27750个

seqlengths(exon_txdb)返回每条染色体的长度信息

names

length

GRanges对象还有很多其它类型的操作,非常好玩的,split,shift,resize,flank,reduce,gaps,disjoin,coverage

其它求交集并集和都可以用,union,intersect,setdiff,pintersect,psetdiff

bam文件读取_把bam文件读入R,并且转为grange对象相关推荐

  1. dat文件读取_微信dat文件如何查看

    dat转码软件使用说明 可以百度 远芳小憩 查看小店内的软件 各位同学下载软件后,如何操作?如何找到dat文件?如何使用?又有哪些注意事项呢? 这里会为大家一一道来. 问题1 :如果下载失败怎么办? ...

  2. python 移动文件语句_[转]Python文件操作

    这里的"文件"不单单指磁盘上的普通文件,也指代任何抽象层面上的文件.例如:通过URL打开一个Web页面"文件",Unix系统下进程间通讯也是通过抽象的进程&qu ...

  3. dat文件读取_比特币blk.dat文件结构及读取软件

    比特币节点(Bitcoin Core)的~/.bitcoin/blocks/目录中的blk.dat 文件中包含了节点接收到的原始区块数据,这些数据文件构成了比特币区块链的基础,同时也是区块链数据分析获 ...

  4. java压缩文件读取_用Java读取/写入压缩和非压缩文件

    java压缩文件读取 这篇文章的主要原因是尝试不要重复自己( DRY ),因为通常,我会遇到递归的需求,即读写压缩的和非压缩的文件(主要是JSON和CSV). 首先让我们看看如何读取文本文件. 注意我 ...

  5. rfa 文件读取_「rfa」rfa文件用什么软件打开? - seo实验室

    rfa 后缀名.rfa的用什么软件可以打开?什么是文件扩展名为RFA?有没有人给您发送过RFA文件,而您却不知道该如何打开?可能您在电脑上发现了一个 RFA文件却不知道这是做什么用的?windows ...

  6. python文件读取输出-Python 读写文件中数据

    1 需求 在文件 h264.txt 中的数据如图1,读入该文件中的数据,然后将第1列的地址删除,然后将数据输出到h264_out.txt中: 图1 h264.txt 数据截图 图2 输出文件 h264 ...

  7. python文件读取写入元组_python文件和元组

    python文件操作 相较于java,Python里的文件操作简单了很多 python 获取当前文件所在的文件夹: os.path.dirname(__file__) 写了一个工具类,用来在当前文件夹 ...

  8. c语言实现指定路径文件读取_C语言实现文件复制功能(包括文本文件和二进制文件)...

    文件的复制是常用的功能,要求写一段代码,让用户输入要复制的文件以及新建的文件,然后对文件进行复制.能够复制的文件包括文本文件和二进制文件,你可以复制1G的电影,也可以复制1Byte的txt文档.实现文 ...

  9. python文件读取数据-Python从文件中读取数据

    一.读取整个文件内容 在读取文件之前,我们先创建一个文本文件resource.txt作为源文件. resource.txt my name isjoker, I am18years old, How ...

最新文章

  1. 指纹锁就安全了?防火防盗还得防AI
  2. 【译】 WebSocket 协议第十一章——IANA 注意事项(IANA Considerations)
  3. 浏览Github必备的5款神器级别的Chrome插件
  4. python函数参数定义不合法_下列哪种函式参数定义不合法?
  5. Django View使用装饰器捕获数据库连接异常
  6. java join yield_java中join和yield有什么区别?
  7. java dao层的泛型get方法_dao层的泛型实现(2种方法)
  8. 如何给小朋友解释单摆运动_法国教育学者:如何培养儿童的逻辑思维和时间观念...
  9. java+编辑距离自动机_编辑距离,重叠,组装算法和python程序.pptx
  10. 第七章 (四)BFS(路径寻找问题)
  11. DirectX Repair(DirectX修复工具)官方中文增强版V4.1.0.30770 | directx repair修复工具增强版下载
  12. 9种常用的数据分析方法
  13. nmake命令(windows下的makefile)
  14. Bartender编辑数据小标题中嵌入的数据更改无效,无法在条码中显示已经扫描的条码号
  15. 【Python】遗传算法求解二元函数最值
  16. 太阳系混的最惨行星:被“降级”至今未归队
  17. 【SYS/BIOS】4.2节同步模块之事件模块
  18. android egl 代码,Android配置EGL环境
  19. 最简单DIY基于ESP8266的智能彩灯③(在网页用按钮+滑动条+手机APP控制RGB灯)
  20. 为什么Vue(默认情况下)比React性能更好

热门文章

  1. 解决虚拟机-虚拟网络配置没有桥接模式,本地没有虚拟网卡
  2. linux下下载fnl数据,使用python直接提取fnl再分析资料的气象因子数据
  3. python中有这样一条语句_在Python中一行书写两条语句时,语句之间可以使用__________作为分隔符。_学小易找答案...
  4. 固态硬盘坏了的表现是什么?从哪里可以看出来?
  5. 无法搜索到对方电脑共享的文件
  6. cairosvg在linux中的安装_Cairo编程
  7. cairo填充_cairo graphics 手册(2)
  8. 使用Python播放MIDI音符
  9. 移动端天气系统--【下雨】效果之【雨滴】的实现和分析
  10. OpenCV数字图像处理基于C++:灰度变换