<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def run(data):
 """Proxy function to run the tool"""

    sample = data[0][0]
    work_dir = dd.get_work_dir(sample)
    out_dir = os.path.join(work_dir, "mirge")
    lib = _find_lib(sample)
    mirge = _find_mirge(sample)
    bowtie = _find_bowtie(sample)
    sps = dd.get_species(sample)
    species = SPS.get(sps, "")
    if not species:
        raise ValueError("species not supported (hsa, mmu, rno, dre, cel, dme): %s" % sps)
    if not lib:
        raise ValueError("-lib option is not set up in resources for mirge tool."
                         " Read above warnings lines.")

    if not utils.file_exists(out_dir):
        with tx_tmpdir() as tmp_dir:
            sample_file = _create_sample_file(data, tmp_dir)
            do.run(_cmd().format(**locals()), "Running miRge2.0.")
            shutil.move(tmp_dir, out_dir)
    return [os.path.abspath(fn) for fn in glob.glob(os.path.join(out_dir, "*", "*"))]