Ejemplo n.º 1
0
def bwa_aln_paired(bam_path,fastq_dir,read1,read2,realn_dir,reference_fasta_path,logger):
    pe_realn_dir=os.path.join(realn_dir,'bwa_aln_pe')
    logger.info('pe_realn_dir=%s' % pe_realn_dir)
    logger.info('read1=%s' % read1)
    logger.info('read2=%s' % read2)
    fastqbasename=read1.replace('_1.fq','')
    logger.info('fastqbasename=%s' % fastqbasename)
    outbam=os.path.basename(fastqbasename+'.bam')
    outbam_path=os.path.join(se_realn_dir,outbam)
    if pipe_util.already_step(pe_realn_dir,'pe_'+fastqbasename,logger):
        logger.info('already completed step `bwa aln paired` of: %s' % bam_path)
    else:
        os.makedirs(pe_realn_dir,exist_ok=True)
        f1_path=os.path.join(fastq_dir,read1)
        f2_path=os.path.join(fastq_dir,read2)
        sai1=fastqbasename+'_1.sai'
        sai2=fastqbasename+'_2.sai'
        sai1_path=os.path.join(pe_realn_dir,sai1)
        sai2_path=os.path.join(pe_realn_dir,sai2)
        bwa_aln_cmd1=['bwa','aln','-t 24',reference_fasta_path,f1_path]
        bwa_aln_cmd2=['bwa','aln','-t 24',reference_fasta_path,f2_path]
        sai1_open=open(sai1_path,'wb')
        pipe_util.do_command(bwa_aln_cmd1,logger,stdout=sai1_open,stderr=subprocess.PIPE)
        sai1_open.close()
        sai2_open=open(sai2_path,'wb')
        pipe_util.do_command(bwa_aln_cmd2,logger,stdout=sai2_open,stderr=subprocess.PIPE)
        sai2_open.close()
        bwa_aln_sampe_cmd=['bwa','sampe','-a 500',reference_fasta_path,sai1_path,sai2_path,f1_path,f2_path]
        samtools_cmd=['samtools','view','-Shb','-o',outbam_path,'-']
        cmdlist=list()
        cmdlist.append(bwa_aln_sampe_cmd)
        cmdlist.append(samtools_cmd)
        pipe_util.do_piped_commands(cmdlist,logger)
        pipe_util.create_already_step(pe_realn_dir,'pe_'+fastqbasename,logger)
    return outbam_path
Ejemplo n.º 2
0
def bwa_aln_single(bam_path,fastq_dir,read1,realn_dir,readkey,reference_fasta_path,logger):
    se_realn_dir=os.path.join(realn_dir,'bwa_aln_'+readkey)
    logger.info('se_realn_dir=%s' % se_realn_dir)
    logger.info('read1=%s' % read1)
    fastqbasename=read1.replace('_'+readkey+'.fq','')
    logger.info('fastqbasename=%s' % fastqbasename)
    outbam=os.path.basename(fastqbasename+'.bam')
    outbam_path=os.path.join(se_realn_dir,outbam)
    if pipe_util.already_step(se_realn_dir,readkey+'_'+fastqbasename,logger):
        logger.info('already completed step `bwa mem single` of: %s' % bam_path)
    else:
        os.makedirs(se_realn_dir,exist_ok=True)
        f1=os.path.join(fastq_dir,read1)
        bwa_aln_cmd=['bwa','aln','-t 24','-p','-T 0',reference_fasta_path,f1]
        bwa_samse_cmd=['bwa','sampe','-a 500',reference_fasta_path,sai1_path,sai2_path,f1_path,f2_path]
        samtools_cmd=['samtools','view','-Shb','-o',outbam_path,'-']
        cmdlist=list()
        cmdlist.append(bwa_cmd)
        cmdlist.append(samtools_cmd)
        pipe_util.do_piped_commands(cmdlist,logger)
        logger.info('completed running step `bwa aln single` of: %s' % bam_path)
        pipe_util.create_already_step(se_realn_dir,readkey+'_'+fastqbasename,logger)
    return outbam_path