def get_genome_ref(genome_build, aligner, galaxy_base):
    """Retrieve the reference genome file location from galaxy configuration.
    """
    ref_files = dict(
            bowtie = "bowtie_indices.loc",
            bwa = "bwa_index.loc",
            samtools = "sam_fa_indices.loc",
            maq = "bowtie_indices.loc")
    remap_fns = dict(
            maq = _remap_to_maq
            )
    out_info = []
    for ref_get in [aligner, "samtools"]:
        ref_file = os.path.join(galaxy_base, "tool-data", ref_files[ref_get])
        with open(ref_file) as in_handle:
            for line in in_handle:
                if not line.startswith("#"):
                    parts = line.strip().split()
                    if parts[0] == "index":
                        parts = parts[1:]
                    if parts[0] == genome_build:
                        out_info.append(parts[-1])
                        break
        try:
            out_info[-1] = remap_fns[ref_get](out_info[-1])
        except KeyError:
            pass
        except IndexError:
            raise IndexError("Genome %s not found in %s" % (genome_build,
                ref_file))

    if len(out_info) != 2:
        raise ValueError("Did not find genome reference for %s %s" %
                (genome_build, aligner))
    else:
        return tuple(out_info)
def get_genome_ref ( genome_build , aligner , galaxy_base ) : ref_files = dict ( bowtie = "bowtie_indices.loc" , bwa = "bwa_index.loc" , samtools = "sam_fa_indices.loc" , maq = "bowtie_indices.loc" ) remap_fns = dict ( maq = _remap_to_maq ) out_info = [ ] for ref_get in [ aligner , "samtools" ] : ref_file = os . path . join ( galaxy_base , "tool-data" , ref_files [ ref_get ] ) with open ( ref_file ) as in_handle : for line in in_handle : if not line . startswith ( "#" ) : parts = line . strip ( ) . split ( ) if parts [ 0 ] == "index" : parts = parts [ 1 : ] if parts [ 0 ] == genome_build : out_info . append ( parts [ - 1 ] ) break try : out_info [ - 1 ] = remap_fns [ ref_get ] ( out_info [ - 1 ] ) except KeyError : pass except IndexError : raise IndexError ( "Genome %s not found in %s" % ( genome_build , ref_file ) ) if len ( out_info ) != 2 : raise ValueError ( "Did not find genome reference for %s %s" % ( genome_build , aligner ) ) else : return tuple ( out_info )
Retrieve the reference genome file location from galaxy configuration.