From e1db4c2a0aeebcc13620e698fbae93ad11c47e78 Mon Sep 17 00:00:00 2001 From: basti Date: Thu, 3 Jan 2019 16:50:14 +0100 Subject: [PATCH] Added functionality to Fix #19 --- bin/3.1_create_gtf/Modules/CrossMapper.py | 4 ++-- bin/3.1_create_gtf/Modules/SaveResults.py | 16 ++++++++-------- bin/3.1_create_gtf/RegGTFExtractor.py | 10 +++++++--- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/bin/3.1_create_gtf/Modules/CrossMapper.py b/bin/3.1_create_gtf/Modules/CrossMapper.py index 7e8c259..293783a 100644 --- a/bin/3.1_create_gtf/Modules/CrossMapper.py +++ b/bin/3.1_create_gtf/Modules/CrossMapper.py @@ -15,10 +15,10 @@ class CrossMapper: def __init__(self, org, wd, out, is_dir): self.org = org if is_dir: - self.infile = os.path.join( wd + "/temp/" + org + ".gtf") + self.infile = os.path.join(wd + "/temp/" + org + ".gtf") else: self.infile = os.path.join(wd+"/data/temp/"+org+".gtf") - self.outfile = os.path.join(out+"/" + org + "_mapped.gtf") + self.outfile = os.path.join(out) self.chainfile = self.get_chain_file(org, wd, is_dir) # Execute Crossmapper for gff/gtf files diff --git a/bin/3.1_create_gtf/Modules/SaveResults.py b/bin/3.1_create_gtf/Modules/SaveResults.py index ec5ed61..8c7b645 100644 --- a/bin/3.1_create_gtf/Modules/SaveResults.py +++ b/bin/3.1_create_gtf/Modules/SaveResults.py @@ -14,7 +14,7 @@ class ResultSaver: """ - def __init__(self, results, organism, wd, mapped, is_data_dir, tissue, out): + def __init__(self, results, organism, wd, mapped, is_data_dir, out): # Constructor and main method for result-saving # input_parameter: results = finished list of gtf-entries @@ -24,20 +24,20 @@ def __init__(self, results, organism, wd, mapped, is_data_dir, tissue, out): # is_data_dir = boolean if wd is a data_dir (true) or not (false) # is_data_dir = boolean if wd is a data_dir (true) or not (false) - - # TODO: DATADIR !! - print("Save results to File !") self.path = "" + + # If results has to be crossmapped -> Path is tempdirectory. + if mapped: if is_data_dir: self.path = os.path.join(wd + "/temp/" + organism + ".gtf") else: - self.path = os.path.join(wd + "/data/temp/" + organism + ".gtf" ) - elif tissue: - self.path = os.path.join(out+"/"+organism+"_filtered.gtf") + self.path = os.path.join(wd + "/data/temp/" + organism + ".gtf") + + # if no crossmapping is needed: else: - self.path = os.path.join(out+"/"+organism+".gtf") + self.path = os.path.join(out) with open(self.path, "w") as output_file: for line in results: diff --git a/bin/3.1_create_gtf/RegGTFExtractor.py b/bin/3.1_create_gtf/RegGTFExtractor.py index 1c6a05f..9286151 100644 --- a/bin/3.1_create_gtf/RegGTFExtractor.py +++ b/bin/3.1_create_gtf/RegGTFExtractor.py @@ -103,6 +103,10 @@ def main_script(organism, wd, data_dir, out, tissuetype=None): # main function # input_parameter: all parameters from argparse + # if no output parameter is given output file is "./organism.gtf" + if out == ".": + out = "./"+organism+".gtf" + (org, x_mappable) = check_organism(organism) if not data_dir: check_for_local_folder(wd) @@ -122,11 +126,11 @@ def main_script(organism, wd, data_dir, out, tissuetype=None): print("Getting Unique Results") unique_filter = UniqueFilter(ense.get_gtf(), ucsc.get_gtf(), tissues) if data_dir: - ResultSaver(unique_filter.get_results(), organism, data_dir, x_mappable, True, tissues, out) + ResultSaver(unique_filter.get_results(), organism, data_dir, x_mappable, True, out) if x_mappable: CrossMapper(organism, data_dir, out, True) else: - ResultSaver(unique_filter.get_results(), organism, wd, x_mappable, False, tissues, out) + ResultSaver(unique_filter.get_results(), organism, wd, x_mappable, False, out) if x_mappable: CrossMapper(organism, wd, out, False) @@ -140,7 +144,7 @@ def main_script(organism, wd, data_dir, out, tissuetype=None): parser.add_argument('--tissue', help='Tissue- or Celltype(s)', action='store', nargs='*', type=str) parser.add_argument('--wd', help='Working directory. default: "."', action='store', default=os.getcwd(), type=str) parser.add_argument('--dir', help='Data directory. default: "working_directory"', action='store', default="", type=str) - parser.add_argument('--out', help='Output directory: default: "."', action='store', default=".", type=str) + parser.add_argument('--out', help='Path to output file: default: "./organism.gtf"', action='store', default=".", type=str) args = vars(parser.parse_args()) # Check if organism exists