Repository 'data_manager_snpeff'
hg clone https://toolshed.g2.bx.psu.edu/repos/iuc/data_manager_snpeff

Changeset 1:85a23e2dd92b (2016-06-07)
Previous changeset 0:9ac823a8b328 (2015-01-22) Next changeset 2:984733fcab49 (2016-06-07)
Commit message:
planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/data_managers/data_manager_snpeff commit 88c982c5adcd32b11d98428fc554a4fdfcc19584
modified:
data_manager/data_manager_snpEff_databases.py
data_manager/data_manager_snpEff_databases.xml
data_manager/data_manager_snpEff_download.py
data_manager/data_manager_snpEff_download.xml
tool_dependencies.xml
removed:
repository_dependencies.xml
b
diff -r 9ac823a8b328 -r 85a23e2dd92b data_manager/data_manager_snpEff_databases.py
--- a/data_manager/data_manager_snpEff_databases.py Thu Jan 22 09:14:50 2015 -0500
+++ b/data_manager/data_manager_snpEff_databases.py Tue Jun 07 10:11:50 2016 -0400
[
@@ -1,30 +1,23 @@
 #!/usr/bin/env python
-
-import sys
+import json
+import optparse
 import os
-import re
-import tempfile
 import subprocess
-import fileinput
-import shutil
-import optparse
-import urllib2
-from ftplib import FTP
-import tarfile
+import sys
 
-from galaxy.util.json import from_json_string, to_json_string
 
 def stop_err(msg):
     sys.stderr.write(msg)
     sys.exit(1)
 
+
 def fetch_databases(data_manager_dict, target_directory, jar_path):
-    (snpEff_dir,snpEff_jar) = os.path.split(jar_path)
+    (snpEff_dir, snpEff_jar) = os.path.split(jar_path)
     if not os.path.exists(target_directory):
         os.makedirs(target_directory)
     databases_path = os.path.join( target_directory, 'databases.out' )
-    databases_output = open(databases_path,'w')
-    args = [ 'java','-jar', ]
+    databases_output = open(databases_path, 'w')
+    args = [ 'java', '-jar' ]
     args.append( snpEff_jar )
     args.append( 'databases' )
     # tmp_stderr = tempfile.NamedTemporaryFile( prefix = "tmp-data-manager-snpEff-stderr" )
@@ -35,48 +28,48 @@
     if return_code:
         sys.exit( return_code )
     databases_output.close()
+    data_manager_dict['data_tables'] = data_manager_dict.get( 'data_tables', {} )
+    data_manager_dict['data_tables']['snpeff4_databases'] = data_manager_dict['data_tables'].get( 'snpeff4_databases', [] )
+    data_table_entries = []
     try:
-        data_manager_dict['data_tables'] = data_manager_dict.get( 'data_tables', {} )
-        data_manager_dict['data_tables']['snpeff4_databases'] = data_manager_dict['data_tables'].get( 'snpeff4_databases', [] )
-        data_table_entries = []
-        fh = open(databases_path,'r')
-        for i,line in enumerate(fh):
+        fh = open(databases_path, 'r')
+        for i, line in enumerate(fh):
             fields = line.split('\t')
             if len(fields) >= 2:
                 genome_version = fields[0].strip()
                 if genome_version.startswith("Genome") or genome_version.startswith("-"):
                     continue
-                #snpeff test genome
+                # snpeff test genome
                 if genome_version == '30c2c903' or fields[1].strip() == 'TestCase' or fields[1].strip().startswith('Test_'):
                     continue
                 description = fields[1].strip() + ' : ' + genome_version
                 data_table_entries.append(dict(value=genome_version, name=description))
         data_manager_dict['data_tables']['snpeff4_databases'] = data_table_entries
-    except Exception, e:
-        stop_err( 'Error parsing %s %s\n' % (config,str( e )) )
+    except Exception as e:
+        stop_err( 'Error parsing %s %s\n' % (databases_path, str( e )) )
     else:
         fh.close()
     return data_manager_dict
 
+
 def main():
-    #Parse Command Line
+    # Parse Command Line
     parser = optparse.OptionParser()
     parser.add_option( '-j', '--jar_path', dest='jar_path', action='store', type="string", default=None, help='snpEff.jar path' )
     (options, args) = parser.parse_args()
 
     filename = args[0]
 
-    params = from_json_string( open( filename ).read() )
+    params = json.loads( open( filename ).read() )
     target_directory = params[ 'output_data' ][0]['extra_files_path']
     os.mkdir( target_directory )
     data_manager_dict = {}
 
-
-    #Create Defuse Reference Data
+    # Create Defuse Reference Data
     data_manager_dict = fetch_databases( data_manager_dict, target_directory, options.jar_path)
 
-    #save info to json file
-    open( filename, 'wb' ).write( to_json_string( data_manager_dict ) )
+    # save info to json file
+    open( filename, 'wb' ).write( json.dumps( data_manager_dict ) )
 
-if __name__ == "__main__": main()
-
+if __name__ == "__main__":
+    main()
b
diff -r 9ac823a8b328 -r 85a23e2dd92b data_manager/data_manager_snpEff_databases.xml
--- a/data_manager/data_manager_snpEff_databases.xml Thu Jan 22 09:14:50 2015 -0500
+++ b/data_manager/data_manager_snpEff_databases.xml Tue Jun 07 10:11:50 2016 -0400
[
@@ -1,20 +1,20 @@
-<tool id="data_manager_snpeff_databases" name="SnpEff Databases" version="4.0.0" tool_type="manage_data">
+<tool id="data_manager_snpeff_databases" name="SnpEff Databases" version="4.1.0" tool_type="manage_data">
  <description>Read the list of available snpEff databases</description>
  <requirements>
- <requirement type="package" version="4.0">snpEff</requirement>
+ <requirement type="package" version="4.1">snpEff</requirement>
  </requirements>
+        <stdio>
+          <exit_code range=":-1"  level="fatal"   description="Error: Cannot open file" />
+          <exit_code range="1:"  level="fatal"   description="Error" />
+        </stdio>
  <command interpreter="python">
-        data_manager_snpEff_databases.py --jar_path \$SNPEFF_JAR_PATH/snpEff.jar "$out_file"
+        data_manager_snpEff_databases.py --jar_path "\$SNPEFF_JAR_PATH/snpEff.jar" "$out_file"
         </command>
  <inputs>
  </inputs>
  <outputs>
            <data name="out_file" format="data_manager_json"/>
  </outputs>
-        <stdio>
-          <exit_code range=":-1"  level="fatal"   description="Error: Cannot open file" />
-          <exit_code range="1:"  level="fatal"   description="Error" />
-        </stdio>
         <tests>
             <test>
                 <output name="out_file">
@@ -37,5 +37,8 @@
 "A program for annotating and predicting the effects of single nucleotide polymorphisms, SnpEff: SNPs in the genome of Drosophila melanogaster strain w1118; iso-2; iso-3.", Cingolani P, Platts A, Wang le L, Coon M, Nguyen T, Wang L, Land SJ, Lu X, Ruden DM. Fly (Austin). 2012 Apr-Jun;6(2):80-92. PMID: 22728672 [PubMed - in process]
 
  </help>
+      <citations>
+        <citation type="doi">10.4161/fly.19695</citation>
+      </citations>
 </tool>
 
b
diff -r 9ac823a8b328 -r 85a23e2dd92b data_manager/data_manager_snpEff_download.py
--- a/data_manager/data_manager_snpEff_download.py Thu Jan 22 09:14:50 2015 -0500
+++ b/data_manager/data_manager_snpEff_download.py Tue Jun 07 10:11:50 2016 -0400
[
b'@@ -1,31 +1,24 @@\n #!/usr/bin/env python\n-\n-import sys\n+import gzip\n+import json\n+import optparse\n import os\n import re\n-import tempfile\n import subprocess\n-import fileinput\n-import shutil\n-import optparse\n-import urllib2\n-import gzip\n-from ftplib import FTP\n-import tarfile\n+import sys\n \n-from galaxy.util.json import from_json_string, to_json_string\n \n def stop_err(msg):\n     sys.stderr.write(msg)\n     sys.exit(1)\n \n \n-def fetch_databases(jar_path,genome_list=None):\n+def fetch_databases(jar_path, genome_list=None):\n     snpDBs = dict()\n-    (snpEff_dir,snpEff_jar) = os.path.split(jar_path)\n-    databases_path = \'databases.out\' \n-    databases_output = open(databases_path,\'w\')\n-    args = [ \'java\',\'-jar\', ]\n+    (snpEff_dir, snpEff_jar) = os.path.split(jar_path)\n+    databases_path = \'databases.out\'\n+    databases_output = open(databases_path, \'w\')\n+    args = [ \'java\', \'-jar\' ]\n     args.append( snpEff_jar )\n     args.append( \'databases\' )\n     # tmp_stderr = tempfile.NamedTemporaryFile( prefix = "tmp-data-manager-snpEff-stderr" )\n@@ -37,8 +30,8 @@\n         sys.exit( return_code )\n     databases_output.close()\n     try:\n-        fh = open(databases_path,\'r\')\n-        for i,line in enumerate(fh):\n+        fh = open(databases_path, \'r\')\n+        for i, line in enumerate(fh):\n             fields = line.split(\'\\t\')\n             if len(fields) >= 2:\n                 genome_version = fields[0].strip()\n@@ -47,30 +40,32 @@\n                 if genome_version.startswith("Genome") or genome_version.startswith("-"):\n                     continue\n                 description = fields[1].strip()\n-                snpDBs[genome_version] = description;\n-    except Exception, e:\n-        stop_err( \'Error parsing %s %s\\n\' % (config,str( e )) )\n+                snpDBs[genome_version] = description\n+    except Exception as e:\n+        stop_err( \'Error parsing %s %s\\n\' % (databases_path, str( e )) )\n     else:\n         fh.close()\n     return snpDBs\n \n-def getOrganismNames(jar_path,genomes,organisms) :\n+\n+def getOrganismNames(jar_path, genomes, organisms):\n     genome_list = genomes.split(\',\')\n     organism_list = organisms.split(\',\') if organisms else []\n     if len(genome_list) != len(organism_list):\n         descriptions = []\n-        snpDBdict = fetch_databases(jar_path,genome_list=genome_list); \n+        snpDBdict = fetch_databases(jar_path, genome_list=genome_list)\n         for genome in snpDBdict:\n             descriptions.append(snpDBdict[genome] if genome in snpDBdict else genome)\n         return \',\'.join(descriptions)\n-    return organisms    \n+    return organisms\n+\n \n def getSnpeffVersion(jar_path):\n     snpeff_version = \'SnpEff ?.?\'\n-    (snpEff_dir,snpEff_jar) = os.path.split(jar_path)\n+    (snpEff_dir, snpEff_jar) = os.path.split(jar_path)\n     stderr_path = \'snpeff.err\'\n-    stderr_fh = open(stderr_path,\'w\')\n-    args = [ \'java\',\'-jar\', ]\n+    stderr_fh = open(stderr_path, \'w\')\n+    args = [ \'java\', \'-jar\' ]\n     args.append( snpEff_jar )\n     args.append( \'-h\' )\n     proc = subprocess.Popen( args=args, shell=False, cwd=snpEff_dir, stderr=stderr_fh.fileno() )\n@@ -78,58 +73,57 @@\n     if return_code != 255:\n         sys.exit( return_code )\n     stderr_fh.close()\n-    fh = open(stderr_path,\'r\')\n+    fh = open(stderr_path, \'r\')\n     for line in fh:\n-        m = re.match(\'^[Ss]npEff version (SnpEff)\\s*(\\d+\\.\\d+).*$\',line)\n+        m = re.match(\'^[Ss]npEff version (SnpEff)\\s*(\\d+\\.\\d+).*$\', line)\n         if m:\n             snpeff_version = m.groups()[0] + m.groups()[1]\n             break\n     fh.close()\n     return snpeff_version\n \n+\n # Starting with SnpEff 4.1 the .bin files contain the SnpEff version:\n # Example - the first 3 line of GRCh37.75/snpEffectPredictor.bin (uncompressed):\n-"""\n-SnpEff  4.1\n-CHROMOSOME      2       1       0       179197  GL000219.1      false\n-CHROMOSOME      3       1       0       81347269        HSCHR17_1       false\n-"""\n+#\n+# SnpEff  4.1\n+# CHROMOSOME      2       1       0       179197  GL000219.1     '..b'ion)\n     snpeff_version = getSnpeffVersion(jar_path)\n-    key  = snpeff_version + \'_\' + genome_version \n+    key = snpeff_version + \'_\' + genome_version\n     if os.path.isdir(genome_path):\n         for root, dirs, files in os.walk(genome_path):\n             for fname in files:\n                 if fname.startswith(\'snpEffectPredictor\'):\n                     # if snpEffectPredictor.bin download succeeded\n-                    name = genome_version + (\' : \' + organism if organism else \'\') \n+                    name = genome_version + (\' : \' + organism if organism else \'\')\n                     # version = getSnpeffVersionFromFile(os.path.join(root,fname))\n-                    data_table_entry = dict(key=key,version=snpeff_version,value=genome_version, name=name, path=data_dir)\n+                    data_table_entry = dict(key=key, version=snpeff_version, value=genome_version, name=name, path=data_dir)\n                     _add_data_table_entry( data_manager_dict, \'snpeffv_genomedb\', data_table_entry )\n                 else:\n-                    m = re.match(regulation_pattern,fname)\n+                    m = re.match(regulation_pattern, fname)\n                     if m:\n                         name = m.groups()[0]\n-                        data_table_entry = dict(key=key,version=snpeff_version,genome=genome_version,value=name, name=name)\n+                        data_table_entry = dict(key=key, version=snpeff_version, genome=genome_version, value=name, name=name)\n                         _add_data_table_entry( data_manager_dict, \'snpeffv_regulationdb\', data_table_entry )\n                     elif fname in annotations_dict:\n                         value = annotations_dict[fname]\n                         name = value.lstrip(\'-\')\n-                        data_table_entry = dict(key=key,version=snpeff_version,genome=genome_version,value=value, name=name)\n+                        data_table_entry = dict(key=key, version=snpeff_version, genome=genome_version, value=value, name=name)\n                         _add_data_table_entry( data_manager_dict, \'snpeffv_annotations\', data_table_entry )\n     return data_manager_dict\n \n+\n def _add_data_table_entry( data_manager_dict, data_table, data_table_entry ):\n     data_manager_dict[\'data_tables\'] = data_manager_dict.get( \'data_tables\', {} )\n     data_manager_dict[\'data_tables\'][data_table] = data_manager_dict[\'data_tables\'].get( data_table, [] )\n     data_manager_dict[\'data_tables\'][data_table].append( data_table_entry )\n     return data_manager_dict\n \n+\n def main():\n-    #Parse Command Line\n+    # Parse Command Line\n     parser = optparse.OptionParser()\n     parser.add_option( \'-j\', \'--jar_path\', dest=\'jar_path\', action=\'store\', type="string", default=None, help=\'snpEff.jar path\' )\n     parser.add_option( \'-c\', \'--config\', dest=\'config\', action=\'store\', type="string", default=None, help=\'snpEff.config path\' )\n@@ -188,18 +184,17 @@\n \n     filename = args[0]\n \n-    params = from_json_string( open( filename ).read() )\n+    params = json.loads( open( filename ).read() )\n     target_directory = params[ \'output_data\' ][0][\'extra_files_path\']\n     os.mkdir( target_directory )\n     data_manager_dict = {}\n \n-\n-    #Create SnpEff Reference Data\n-    for genome_version, organism in zip(options.genome_version.split(\',\'), getOrganismNames(options.jar_path,options.genome_version,options.organism).split(\',\')):\n+    # Create SnpEff Reference Data\n+    for genome_version, organism in zip(options.genome_version.split(\',\'), getOrganismNames(options.jar_path, options.genome_version, options.organism).split(\',\')):\n         download_database( data_manager_dict, target_directory, options.jar_path, options.config, genome_version, organism )\n \n-    #save info to json file\n-    open( filename, \'wb\' ).write( to_json_string( data_manager_dict ) )\n+    # save info to json file\n+    open( filename, \'wb\' ).write( json.dumps( data_manager_dict ) )\n \n-if __name__ == "__main__": main()\n-\n+if __name__ == "__main__":\n+    main()\n'
b
diff -r 9ac823a8b328 -r 85a23e2dd92b data_manager/data_manager_snpEff_download.xml
--- a/data_manager/data_manager_snpEff_download.xml Thu Jan 22 09:14:50 2015 -0500
+++ b/data_manager/data_manager_snpEff_download.xml Tue Jun 07 10:11:50 2016 -0400
[
@@ -1,14 +1,18 @@
-<tool id="data_manager_snpeff_download" name="SnpEff Download" version="4.0.0" tool_type="manage_data">
+<tool id="data_manager_snpeff_download" name="SnpEff Download" version="4.1.0" tool_type="manage_data">
     <description>Download a new database</description>
     <requirements>
-        <requirement type="package" version="4.0">snpEff</requirement>
+        <requirement type="package" version="4.1">snpEff</requirement>
     </requirements>
+    <stdio>
+        <exit_code range=":-1" level="fatal" description="Error: Cannot open file" />
+        <exit_code range="1:" level="fatal" description="Error" />
+    </stdio>
     <command interpreter="python">
-        data_manager_snpEff_download.py --jar_path \$SNPEFF_JAR_PATH/snpEff.jar --config \$SNPEFF_JAR_PATH/snpEff.config 
+        data_manager_snpEff_download.py --jar_path "\$SNPEFF_JAR_PATH/snpEff.jar" --config "\$SNPEFF_JAR_PATH/snpEff.config"
           --genome_version "$genome_version" "$out_file"
         </command>
     <inputs>
-        <param name="genome_version" type="text" size="40" value="" label="Snpff Genome Version Name (e.g. GRCh38.76)">
+        <param name="genome_version" type="text" value="" label="Snpff Genome Version Name (e.g. GRCh38.76)">
             <help>https://snpeff-data.galaxyproject.org/databases/</help>
             <validator type="regex" message="A genome version name is required">\S+</validator>
         </param>
@@ -17,10 +21,6 @@
     <outputs>
            <data name="out_file" format="data_manager_json" label="${tool.name}"/>
     </outputs>
-    <stdio>
-        <exit_code range=":-1"  level="fatal"   description="Error: Cannot open file" />
-        <exit_code range="1:"  level="fatal"   description="Error" />
-    </stdio>
     <tests>
         <test>
             <param name="genome_version" value="GRCh38.76"/>
@@ -38,7 +38,7 @@
 
 This tool downloads a SnpEff database and populates data tables: snpeffv_genomedb, snpeffv_regulationdb, and snpeffv_annotations.
 
-To see the list of available SnpEff genomes run the "SnpEff Databases" data manager which records the available genome databases in data table: snpeff4_databases 
+To see the list of available SnpEff genomes run the "SnpEff Databases" data manager which records the available genome databases in data table: snpeff4_databases
 
 The SnpEff genome databases are at: http://sourceforge.net/projects/snpeff/files/databases/
 
@@ -49,5 +49,8 @@
 "A program for annotating and predicting the effects of single nucleotide polymorphisms, SnpEff: SNPs in the genome of Drosophila melanogaster strain w1118; iso-2; iso-3.", Cingolani P, Platts A, Wang le L, Coon M, Nguyen T, Wang L, Land SJ, Lu X, Ruden DM. Fly (Austin). 2012 Apr-Jun;6(2):80-92. PMID: 22728672 [PubMed - in process]
 
     </help>
+      <citations>
+        <citation type="doi">10.4161/fly.19695</citation>
+      </citations>
 </tool>
 
b
diff -r 9ac823a8b328 -r 85a23e2dd92b repository_dependencies.xml
--- a/repository_dependencies.xml Thu Jan 22 09:14:50 2015 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,4 +0,0 @@
-<?xml version="1.0"?>
-<repositories description="This requires the SnpEff datatype definitions.">
-    <repository changeset_revision="d78b2b2a3388" name="snpeff_datatypes" owner="iuc" toolshed="https://toolshed.g2.bx.psu.edu" />
-</repositories>
b
diff -r 9ac823a8b328 -r 85a23e2dd92b tool_dependencies.xml
--- a/tool_dependencies.xml Thu Jan 22 09:14:50 2015 -0500
+++ b/tool_dependencies.xml Tue Jun 07 10:11:50 2016 -0400
b
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <tool_dependency>
-    <package name="snpEff" version="4.0">
-        <repository changeset_revision="6bc55957927b" name="package_snpeff_4_0" owner="iuc" toolshed="https://toolshed.g2.bx.psu.edu" />
+    <package name="snpEff" version="4.1">
+        <repository changeset_revision="374c7f8421fb" name="package_snpeff_4_1" owner="iuc" toolshed="https://toolshed.g2.bx.psu.edu" />
     </package>
 </tool_dependency>