我正在编写一个脚本,它结合了snakemake 和python 代码来自动化成对出现的大量文件。更准确地说,我正在将读取与 BWA MEM 与成对的末端读取 ( http://bio-bwa.sourceforge.net/bwa.shtml )对齐。在脚本的第一部分,我遍历文件中的名称列表(它们是fastq bunzipped文件),然后在列表中相应地对它们进行排序。以下是一些文件的快速浏览:
[ 'NG-8653_ 1A _lib95899_4332_7_ 1 ', 'NG-8653_ 1A _lib95899_4332_7_ 2 ', 'NG-8653_ 1B _lib95900_4332_7_ 1 ', 'NG-8653_ 1B _lib95900_4332_7_ 2 ', 'NG-8653_ 1N _lib95898_4332_7_ 1 ',“NG-8653_ 1N _lib95898_4332_7_ 2 “]
如您所见,读取按两两排序(1A_... 1 和 1A ..._2 等...)。现在使用子进程,我想通过用 bunzip2 解压缩它们然后将它们通过 stdin 传递到 bwa mem 来对齐它们。bwa mem 命令将 fastq 格式文件转换为 .sam 文件,然后我必须使用 samtools 将它们转换为 .bam 格式。这是到目前为止的脚本:
import re, os, subprocess, bz2
WDIR = "/home/alaa/Documents/snakemake"
workdir: WDIR
SAMPLESDIR = "/home/alaa/Documents/snakemake/fastq/"
REF = …Run Code Online (Sandbox Code Playgroud)