def test_optionspassed(self): ''' Make sure all options passed make it to bwa ''' bwa = self.mkbwa('$@') mem = BWAMem(self.fa, self.fa2, t=5, a=3, bwa_path=bwa) mem.run('output') with open('output') as fh: result_output = fh.read().strip() assert '-t 5' in result_output assert '-a 3' in result_output assert self.fa + ' ' + self.fa2 in result_output
def test_optionalthird(self): ''' Test that given a correct third argument it still runs ''' infa = ungzip(INPUT_PATH) bwa.index_ref(REF_PATH) # I don't have a mates file so just use infa again mem = BWAMem(REF_PATH, infa, infa, bwa_path=BWA_PATH) eq_(0, mem.run())
def bwa_mem( read1, mate=None, ref=None, output='bwa.sai', **kwargs ): ''' Runs the bwa mem algorithm on read1 against ref. If mate is given then run that file with the read1 file so paired alignment is done. TODO: bwa_path should be an option to specify where the executable is @param read1 - File path to read @param mate - Mate file path @param ref - Reference file path or directory of references @param output - The output destination @returns the output path if sucessful or -1 if something went wrong ''' if os.path.isdir( ref ): # Compile ref directory logger.debug( "Compiling references inside of {0}".format(ref) ) ref = compile_refs( ref ) logger.info( "Refs are all compiled into {0}".format(ref) ) # First, make sure the reference is indexed logger.debug( "Ensuring {0} is indexed".format(ref) ) if not index_ref(ref): raise InvalidReference("{0} cannot be indexed by bwa") # Setup BWA Mem mem = None if mate: mem = BWAMem( ref, read1, mate, bwa_path=which_bwa(), **kwargs ) else: mem = BWAMem( ref, read1, bwa_path=which_bwa(), **kwargs ) ret = mem.run( output ) print "Ret: " + str(ret) if ret != 0: return ret else: return output
def bwa_mem(read1, mate=None, ref=None, output='bwa.sai', **kwargs): ''' Runs the bwa mem algorithm on read1 against ref. If mate is given then run that file with the read1 file so paired alignment is done. TODO: bwa_path should be an option to specify where the executable is @param read1 - File path to read @param mate - Mate file path @param ref - Reference file path or directory of references @param output - The output destination @returns the output path if sucessful or -1 if something went wrong ''' if os.path.isdir(ref): # Compile ref directory logger.debug("Compiling references inside of {0}".format(ref)) ref = compile_refs(ref) logger.info("Refs are all compiled into {0}".format(ref)) # First, make sure the reference is indexed logger.debug("Ensuring {0} is indexed".format(ref)) if not index_ref(ref): raise InvalidReference("{0} cannot be indexed by bwa") # Setup BWA Mem mem = None if mate: mem = BWAMem(ref, read1, mate, bwa_path=which_bwa(), **kwargs) else: mem = BWAMem(ref, read1, bwa_path=which_bwa(), **kwargs) ret = mem.run(output) print "Ret: " + str(ret) if ret != 0: return ret else: return output
def test_bwamem_run(self): ''' Make sure it actually runs bwa with correct input ''' #infa = ungzip( INPUT_PATH ) bwa.index_ref(self.fa2) mem = BWAMem(self.fa2, self.fa, bwa_path=BWA_PATH) eq_(0, mem.run())