我想使用pysam库将我的SAM文件转换为BAM。我正在尝试从samtools:编写此命令
samtools view -S -b sample.sam > sample.bam
像这样的python代码:
pysam.view("-S", "-b", "sample.sam", ">", "sample.bam")
根据本文件。但不幸的是,它不起作用。我该怎么做?我应该先创建一个空BAM文件,还是自动创建?最后我有这个错误:
SamtoolsError:"samtools返回错误1:stdout=b'\x1f\x8b\x08\x04\x00\x00\x0\x00\x06\x00BC\x02\x04\x01\x9dQMO\x83@\x10\xa5G\xfa#\xccz\x83\x87\xfd\xa2\x80\x83\x9\xad\x86i\t\t16\xc3u\xb3P\xc0&,PvcC\xff\xa6\x7f\xc8\xc5\x88&\xe8\xc1xx\x99\xc9\xbcyy\x937\xf3\xfb\xed\xe8md\x18\xb3\xf0\xc9\x0c}\xd"\x90\x90(a\xa1\xc5\xe8.\xcdX\xd2&\x8cPv\xb9\xf2"\xb8\x8av\xac\xac\xd6\xa5L\x1ben\xf4\xee\xxe\xx5x\x16,\xcd\xf5\x83\x1b\x9f\xb8\x19\xf8\x1f%\xf2]\x82n\x10u`C\xa9M\xcc\xc5\xa6\x1b\x3\x91\x00\x95E\x00\x9c[\x00>\x00\xcb\xa4\x1*y\xc1\xbcP\x82\x97e\x8c\xfde\xc8\x1e\x97\xd4\xc1\x99\x97W\r\n x1e\\\\x84\x89\xcd\x9a\x94\xef%\x13\xbc\xae\xd3=\xde\xf2z\xd1&\x84~5l\x10@\x19\x97\x8a\xff\xdf\xfa\x9\x97\x1dJ^\xoci\x16z(;\xa2\xfc\xdc\'!\xb9PUU\xc8.\x8e\xef>\xe8\xa3\xa1\x8\x12pU\x7\x9a\x9at\xd1\xf4+\xe0\xf5\x90\x9e\x00\x0c\x01\x8c\x01\xc\x00V\xa2\xee\x1g\xb6<\xe6\x9a\xfei\xbxH\x8b\xc1\xdfT\xcc\xx5X x7nn4\x0\x00\x1f\x8b\x08\x04\x00\x00\x0\x00\x00\x0\x00#x00\x00\ xff\x06\x00BC\x02\x00\x60\x00b\x00\x03\x00\x300\x00\x100\x00\x40\x00\x80\x00\x50\x00\x30\x00\x00/x00\x00\x000\x00',stderr=[main_samview]随机对齐检索仅适用于索引BAM或CRAM文件。\n’
提前感谢!
您尝试过关闭捕获stdout吗?
pysam.view("-S", "-b", "sample.sam", ">", "sample.bam", catch_stdout=False)
您可以使用pysam.sort
函数将SAM转换为BAM。
pysam.sort("-o", "sample.bam", "sample.sam")