changeset 3:765ceb06c3e2 draft

planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tool_collections/gops/cluster commit a1517c9d22029095120643bbe2c8fa53754dd2b7
author devteam
date Wed, 11 Nov 2015 12:47:24 -0500
parents 520de69b107a
children 05696474ee89
files cluster.xml gops_cluster.py operation_filter.py tool_dependencies.xml
diffstat 4 files changed, 41 insertions(+), 55 deletions(-) [+]
line wrap: on
line diff
--- a/cluster.xml	Mon Apr 14 09:06:21 2014 -0400
+++ b/cluster.xml	Wed Nov 11 12:47:24 2015 -0500
@@ -10,10 +10,10 @@
     <param format="interval" name="input1" type="data">
       <label>Cluster intervals of</label>
     </param>
-    <param name="distance" size="5" type="integer" value="1" help="(bp)">
+    <param name="distance" type="integer" value="1" help="(bp)">
       <label>max distance between intervals</label>
     </param>
-    <param name="minregions" size="5" type="integer" value="2">
+    <param name="minregions" type="integer" value="2">
       <label>min number of intervals per cluster</label>
     </param>
 	<param name="returntype" type="select" label="Return type">
--- a/gops_cluster.py	Mon Apr 14 09:06:21 2014 -0400
+++ b/gops_cluster.py	Wed Nov 11 12:47:24 2015 -0500
@@ -9,30 +9,33 @@
     -m, --minregions=N: Minimum regions per cluster
     -o, --output=N: 1)merged 2)filtered 3)clustered 4) minimum 5) maximum
 """
-import sys, traceback, fileinput
-from warnings import warn
-from bx.intervals import *
-from bx.intervals.io import *
-from bx.intervals.operations.find_clusters import *
+import fileinput
+import sys
+from bx.intervals.io import GenomicInterval, NiceReaderWrapper
+from bx.intervals.operations.find_clusters import find_clusters
 from bx.cookbook import doc_optparse
-from galaxy.tools.util.galaxyops import *
+from bx.tabular.io import ParseError
+from galaxy.tools.util.galaxyops import fail, parse_cols_arg, skipped
 
 assert sys.version_info[:2] >= ( 2, 4 )
 
+
 def main():
     distance = 0
     minregions = 2
     output = 1
-    upstream_pad = 0
-    downstream_pad = 0
 
     options, args = doc_optparse.parse( __doc__ )
     try:
         chr_col_1, start_col_1, end_col_1, strand_col_1 = parse_cols_arg( options.cols1 )
-        if options.distance: distance = int( options.distance )
-        if options.overlap: distance = -1 * int( options.overlap )
-        if options.output: output = int( options.output )
-        if options.minregions: minregions = int( options.minregions )
+        if options.distance:
+            distance = int( options.distance )
+        if options.overlap:
+            distance = -1 * int( options.overlap )
+        if options.output:
+            output = int( options.output )
+        if options.minregions:
+            minregions = int( options.minregions )
         in_fname, out_fname = args
     except:
         doc_optparse.exception()
@@ -52,10 +55,10 @@
 
     f1 = open( in_fname, "r" )
     out_file = open( out_fname, "w" )
-    
+
     # If "merge"
     if output == 1:
-        fields = ["."  for x in range(max(g1.chrom_col, g1.start_col, g1.end_col)+1)]
+        fields = ["." for x in range(max(g1.chrom_col, g1.start_col, g1.end_col) + 1)]
         for chrom, tree in clusters.items():
             for start, end, lines in tree.getregions():
                 fields[g1.chrom_col] = chrom
@@ -91,7 +94,6 @@
         f1.seek(0)
         fileLines = f1.readlines()
         for chrom, tree in clusters.items():
-            regions = tree.getregions()
             for start, end, lines in tree.getregions():
                 outsize = -1
                 outinterval = None
@@ -100,11 +102,11 @@
                     # should only execute this code once per line
                     fileline = fileLines[line].rstrip("\n\r")
                     try:
-                        cluster_interval = GenomicInterval( g1, fileline.split("\t"), 
-                                                            g1.chrom_col, 
+                        cluster_interval = GenomicInterval( g1, fileline.split("\t"),
+                                                            g1.chrom_col,
                                                             g1.start_col,
-                                                            g1.end_col, 
-                                                            g1.strand_col, 
+                                                            g1.end_col,
+                                                            g1.strand_col,
                                                             g1.default_strand,
                                                             g1.fix_strand )
                     except Exception, exc:
@@ -114,14 +116,14 @@
                     interval_size = cluster_interval.end - cluster_interval.start
                     if outsize == -1 or \
                        ( outsize > interval_size and output == 4 ) or \
-                       ( outsize < interval_size and output == 5 ) :
+                       ( outsize < interval_size and output == 5 ):
                         outinterval = cluster_interval
                         outsize = interval_size
                 out_file.write( "%s\n" % outinterval )
 
     f1.close()
     out_file.close()
-    
+
     if g1.skipped > 0:
         print skipped( g1, filedesc="" )
 
--- a/operation_filter.py	Mon Apr 14 09:06:21 2014 -0400
+++ b/operation_filter.py	Wed Nov 11 12:47:24 2015 -0500
@@ -1,7 +1,4 @@
 # runs after the job (and after the default post-filter)
-import os
-from galaxy import eggs
-from galaxy import jobs
 from galaxy.tools.parameters import DataToolParameter
 
 from galaxy.jobs.handler import JOB_ERROR
@@ -12,11 +9,6 @@
 except:
     from sets import Set as set
 
-#def exec_before_process(app, inp_data, out_data, param_dict, tool=None):
-#    """Sets the name of the data"""
-#    dbkeys = sets.Set( [data.dbkey for data in inp_data.values() ] ) 
-#    if len(dbkeys) != 1:
-#        raise Exception, '<p><font color="yellow">Both Queries must be from the same genome build</font></p>'
 
 def validate_input( trans, error_map, param_values, page_param_map ):
     dbkeys = set()
@@ -25,7 +17,7 @@
     for name, param in page_param_map.iteritems():
         if isinstance( param, DataToolParameter ):
             # for each dataset parameter
-            if param_values.get(name, None) != None:
+            if param_values.get(name, None) is not None:
                 dbkeys.add( param_values[name].dbkey )
                 data_params += 1
                 # check meta data
@@ -34,17 +26,15 @@
                     if isinstance( param.datatype, trans.app.datatypes_registry.get_datatype_by_extension( 'gff' ).__class__ ):
                         # TODO: currently cannot validate GFF inputs b/c they are not derived from interval.
                         pass
-                    else: # Validate interval datatype.
-                        startCol = int( param.metadata.startCol )
-                        endCol = int( param.metadata.endCol )
-                        chromCol = int( param.metadata.chromCol )
+                    else:  # Validate interval datatype.
+                        int( param.metadata.startCol )
+                        int( param.metadata.endCol )
+                        int( param.metadata.chromCol )
                         if param.metadata.strandCol is not None:
-                            strandCol = int ( param.metadata.strandCol )
-                        else:
-                            strandCol = 0
+                            int( param.metadata.strandCol )
                 except:
                     error_msg = "The attributes of this dataset are not properly set. " + \
-                    "Click the pencil icon in the history item to set the chrom, start, end and strand columns."
+                        "Click the pencil icon in the history item to set the chrom, start, end and strand columns."
                     error_map[name] = error_msg
             data_param_names.add( name )
     if len( dbkeys ) > 1:
@@ -55,38 +45,33 @@
         for name in data_param_names:
             error_map[name] = "A dataset of the appropriate type is required"
 
+
 # Commented out by INS, 5/30/2007.  What is the PURPOSE of this?
 def exec_after_process(app, inp_data, out_data, param_dict, tool=None, stdout=None, stderr=None):
     """Verify the output data after each run"""
-    items = out_data.items()
-
-    for name, data in items:
+    for data in out_data.values():
         try:
             if stderr and len( stderr ) > 0:
                 raise Exception( stderr )
 
-        except Exception, exc:
+        except Exception:
             data.blurb = JOB_ERROR
             data.state = JOB_ERROR
 
-## def exec_after_process(app, inp_data, out_data, param_dict, tool=None, stdout=None, stderr=None):
-##     pass
-
 
 def exec_after_merge(app, inp_data, out_data, param_dict, tool=None, stdout=None, stderr=None):
     exec_after_process(
         app, inp_data, out_data, param_dict, tool=tool, stdout=stdout, stderr=stderr)
 
     # strip strand column if clusters were merged
-    items = out_data.items()
-    for name, data in items:
-        if param_dict['returntype'] == True:
+    for data in out_data.values():
+        if param_dict['returntype'] is True:
             data.metadata.chromCol = 1
             data.metadata.startCol = 2
             data.metadata.endCol = 3
         # merge always clobbers strand
         data.metadata.strandCol = None
-            
+
 
 def exec_after_cluster(app, inp_data, out_data, param_dict, tool=None, stdout=None, stderr=None):
     exec_after_process(
@@ -94,6 +79,5 @@
 
     # strip strand column if clusters were merged
     if param_dict["returntype"] == '1':
-        items = out_data.items()
-        for name, data in items:
+        for data in out_data.values():
             data.metadata.strandCol = None
--- a/tool_dependencies.xml	Mon Apr 14 09:06:21 2014 -0400
+++ b/tool_dependencies.xml	Wed Nov 11 12:47:24 2015 -0500
@@ -1,9 +1,9 @@
 <?xml version="1.0"?>
 <tool_dependency>
   <package name="bx-python" version="0.7.1">
-      <repository changeset_revision="41eb9d9f667d" name="package_bx_python_0_7" owner="devteam" prior_installation_required="False" toolshed="http://toolshed.g2.bx.psu.edu" />
+      <repository changeset_revision="2d0c08728bca" name="package_bx_python_0_7" owner="devteam" toolshed="https://toolshed.g2.bx.psu.edu" />
     </package>
     <package name="galaxy-ops" version="1.0.0">
-      <repository changeset_revision="4e39032e4ec6" name="package_galaxy_ops_1_0_0" owner="devteam" prior_installation_required="False" toolshed="http://toolshed.g2.bx.psu.edu" />
+      <repository changeset_revision="9cbb20b85c01" name="package_galaxy_ops_1_0_0" owner="devteam" toolshed="https://toolshed.g2.bx.psu.edu" />
     </package>
 </tool_dependency>