Beispiel #1
0
def run(database: Database, file: str, params, input_format, output_format):
    database.download(params["database_bucket"], "crux", "/tmp/crux")
    subprocess.call("chmod 755 /tmp/crux", shell=True)
    output_dir = "/tmp/percolator-crux-output-{0:f}-{1:d}".format(
        input_format["timestamp"], input_format["nonce"])

    arguments = [
        "--subset-max-train",
        str(params["max_train"]),
        "--quick-validation",
        "T",
        "--output-dir",
        output_dir,
    ]

    command = "cd /tmp; ./crux percolator {0:s} {1:s}".format(
        file, " ".join(arguments))
    try:
        subprocess.check_output(command, stderr=subprocess.STDOUT, shell=True)
    except subprocess.CalledProcessError as exc:
        print("Status : FAIL", exc.returncode, exc.output)
        raise exc

    output_files = []
    for item in ["target.{0:s}".format(params["output"])]:
        input_file = "{0:s}/percolator.{1:s}.txt".format(output_dir, item)
        output_format["ext"] = "percolator"
        output_file = "/tmp/{0:s}".format(util.file_name(output_format))
        os.rename(input_file, output_file)
        output_files.append(output_file)
    shutil.rmtree(output_dir)

    return output_files
Beispiel #2
0
def run(database: Database, file: str, params, input_format, output_format):
  database.download(params["database_bucket"], "crux", "/tmp/crux")

  subprocess.call("chmod 755 /tmp/crux", shell=True)
  output_dir = "/tmp/confidence-crux-output-{0:f}-{1:d}".format(input_format["timestamp"], input_format["nonce"])

  arguments = [
    "--output-dir", output_dir,
  ]

  command = "cd /tmp; ./crux assign-confidence {0:s} {1:s}".format(file, " ".join(arguments))
  subprocess.check_output(command, shell=True)

  output_files = []
  input_file = "{0:s}/assign-confidence.target.txt".format(output_dir)
  output_format["ext"] = "confidence"
  output_file = "/tmp/{0:s}".format(util.file_name(output_format))
  os.rename(input_file, output_file)
  output_files.append(output_file)

  return output_files
Beispiel #3
0
def run(database: Database, file: str, params, input_format, output_format):
    if "species" in params:
        species = params["species"]
    else:
        raise Exception("Tide needs species parameter specified")

    database.download(params["database_bucket"], "{0:s}/fasta".format(species),
                      "/tmp/fasta")
    database.download(params["database_bucket"], "crux", "/tmp/crux")

    subprocess.call("chmod 755 /tmp/crux", shell=True)
    index_files = ["auxlocs", "pepix", "protix"]
    if not os.path.isdir("/tmp/fasta.index"):
        os.mkdir("/tmp/fasta.index")

    for index_file in index_files:
        name = "{0:s}/{1:s}".format(species, index_file)
        database.download(params["database_bucket"], name,
                          "/tmp/fasta.index/{0:s}".format(index_file))

    output_dir = "/tmp/crux-output-{0:f}-{1:d}".format(
        input_format["timestamp"], input_format["nonce"])

    arguments = [
        "--num-threads",
        str(params["num_threads"]),
        "--txt-output",
        "T",
        "--concat",
        "T",
        "--output-dir",
        output_dir,
        "--overwrite",
        "T",
    ]

    command = "cd /tmp; ./crux tide-search {0:s} fasta.index {1:s}".format(
        file, " ".join(arguments))
    try:
        subprocess.check_output(command, stderr=subprocess.STDOUT, shell=True)
    except subprocess.CalledProcessError as exc:
        print("Status : FAIL", exc.returncode, exc.output)
        raise exc
    input_file = "{0:s}/tide-search.txt".format(output_dir)
    output_format["suffix"] = species
    output_format["ext"] = "txt"
    output_file = "/tmp/{0:s}".format(util.file_name(output_format))
    os.rename(input_file, output_file)
    shutil.rmtree(output_dir)

    return [output_file]
Beispiel #4
0
def run(database: Database, file: str, params, input_format, output_format):
    database.download(params["database_bucket"], "crux", "/tmp/crux")
    subprocess.call("chmod 755 /tmp/crux", shell=True)

    command = "cd /tmp; ./crux param-medic {0:s}".format(file)
    output = subprocess.check_output(command,
                                     shell=True,
                                     stderr=subprocess.STDOUT).decode("utf-8")
    print(output)

    phos = PHOSPHORYLATION.search(output)
    itraq = ITRAQ.search(output)
    silac = SILAC.search(output)
    tmt6 = TMT6.search(output)
    tmt10 = TMT10.search(output)

    map_bucket = None
    if tmt6:
        if phos:
            map_bucket = "maccoss-tmt6-phosphorylation-fasta"
        else:
            map_bucket = "maccoss-tmt6-fasta"
    elif tmt10:
        if phos:
            map_bucket = "maccoss-tmt10-phosphorylation-fasta"
        else:
            map_bucket = "maccoss-tmt10-fasta"
    elif itraq:
        if phos:
            map_bucket = "maccoss-itraq-phosphorylation-fasta"
        else:
            map_bucket = "maccoss-itraq-fasta"
    elif phos:
        map_bucket = "maccoss-phosphorylation-fasta"
    elif silac:
        map_bucket = "maccoss-silac-fasta"
    else:
        map_bucket = "maccoss-normal-fasta"

    payload = {
        "Records": [{
            "s3": {
                "bucket": {
                    "name": params["bucket"],
                },
                "object": {
                    "key": util.file_name(input_format),
                },
                "extra_params": {
                    "map_bucket": map_bucket,
                    "prefix": output_format["prefix"],
                }
            }
        }]
    }

    output_file = util.file_name(output_format)
    database.write(params["bucket"], output_file, output, {}, False)
    database.invoke(params["output_function"], payload)

    return []