python - 如何从 Python 脚本读取和更改 BAM 文件?
问题描述
我打算使用 Python 脚本来更改不同的 BAM(二进制对齐图)文件头。现在我只是在测试一个 bam 文件的输出,但每次我想检查我的输出时,stdout
它都不是人类可读的。如何查看脚本的输出?我应该samtools view bam.file
在我的脚本上使用吗?这是我的代码。
#!/usr/bin/env python
import os
import subprocess
if __name__=='__main__':
for file in os.listdir(os.getcwd()):
if file == "SRR4209928.bam":
with open("SRR4209928.bam", "r") as input:
content = input.readlines()
for line in content:
print(line)
解决方案
由于BAM
是 的二进制类型SAM
,因此您需要编写一些知道如何处理压缩数据的内容,然后才能从中提取有意义的内容。不幸的是,您不能只open()
从readlines()
那种类型的文件中提取。
如果您要自己编写模块,则需要阅读Sequence Alignment/Map Format Specification。
幸运的是,有人已经这样做并创建了一个 Python 模块:您可以继续检查pysam
。它肯定会让你的生活更轻松。
我希望它有所帮助。
推荐阅读
- angularjs - Angular js中的迭代
- mongodb - 如何访问 MongoDB 中仅设置为 null 但未设置为未定义的数据(在某些字段中)?解决了 Compass 中的一个错误
- javascript - 为什么我无法获取此元素的文本
- vue.js - 从外部 javascript 访问 Vue 组件范围
- python - 在通过 Internet 连接的两台计算机上同步操作
- css - 创建新列时使容器扩展
- typescript - 如何将打字稿枚举值转换为字符串
- bash - 将变量传输到 shell 函数
- scala - 更改列表列顺序scala
- python - 无法将变量从视图发送到 html python