changeset 6:f9d8dc8c2152 draft

Uploaded
author fubar
date Fri, 09 Jan 2015 23:16:54 -0500
parents 503097df1670
children 5c7efaab6713
files danfix.patch data_manager/rnastar_index_builder.py data_manager/rnastar_index_builder.xml
diffstat 3 files changed, 17 insertions(+), 105 deletions(-) [+]
line wrap: on
line diff
--- a/danfix.patch	Fri Jan 09 22:38:21 2015 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-
-diff -r ebadd2c92958 data_manager/rnastar_index_builder.py
---- a/data_manager/rnastar_index_builder.py Mon Sep 29 20:47:45 2014 -0400
-+++ b/data_manager/rnastar_index_builder.py Fri Oct 03 13:35:35 2014 -0400
-@@ -9,7 +9,7 @@
- import optparse
- import subprocess
-
--from galaxy.util.json import from_json_string, to_json_string
-+from json import loads, dumps
-
- DEFAULT_DATA_TABLE_NAME = "rnastar_indexes"
-
-@@ -44,20 +44,11 @@
-    --sjdbGTFfile %(sjdbGTFfile)s --sjdbGTFtagExonParentTranscript %(sjdbGTFtagExonParentTranscript)s''' %  pdict
-     elif sjdbFileChrStartEnd:
-         cl += '--sjdbFileChrStartEnd %(sjdbFileChrStartEnd)s --sjdbOverhang %(sjdbOverhangs)s' % pdict
--    tmp_stderr = tempfile.NamedTemporaryFile( prefix = "tmp-data-manager-rnastar-index-builder-stderr" )
-     args = cl.split(' ')
--    proc = subprocess.Popen( args=args, shell=False, cwd=target_directory, stderr=tmp_stderr.fileno() )
-+    proc = subprocess.Popen( args=args, shell=False, cwd=target_directory )
-     return_code = proc.wait()
-     if return_code:
--        tmp_stderr.flush()
--        tmp_stderr.seek(0)
--        print >> sys.stderr, "Error building index: retcode=",retcode
--        while True:
--            chunk = tmp_stderr.read( CHUNK_SIZE )
--            if not chunk:
--                break
--            sys.stderr.write( chunk )
--    tmp_stderr.close()
-+        sys.exit( return_code )
-     data_table_entry = dict( value=sequence_id, dbkey=dbkey, name=sequence_name, path=fasta_base_name )
-     _add_data_table_entry( data_manager_dict, data_table_name, data_table_entry )
-
-@@ -86,7 +77,7 @@
-     (options, args) = parser.parse_args()
-
-     filename = options.out_file
--    params = from_json_string( open( filename ).read() )
-+    params = loads( open( filename ).read() )
-     target_directory = options.out_index_path
-     os.mkdir( target_directory )
-     data_manager_dict = {}
-@@ -107,6 +98,7 @@
-
-
-     #save info to json file
--    open( filename, 'wb' ).write( to_json_string( data_manager_dict ) )
-+    open( filename, 'wb' ).write( dumps( data_manager_dict ) )
-
- if __name__ == "__main__": main()
-+
-diff -r ebadd2c92958 data_manager/rnastar_index_builder.xml
---- a/data_manager/rnastar_index_builder.xml    Mon Sep 29 20:47:45 2014 -0400
-+++ b/data_manager/rnastar_index_builder.xml    Fri Oct 03 13:35:35 2014 -0400
-@@ -22,7 +22,8 @@
- #end if
- </command>
-     <stdio>
--        <regex match=".*" source="both" level="warning" description="stdout/err chatter:"/>
-+        <exit_code range=":-1" err_level="fatal" />
-+        <exit_code range="1:" err_level="fatal" />
-     </stdio>
-
-     <inputs>
-@@ -124,3 +125,4 @@
-
-     </help>
- </tool>
-
--- a/data_manager/rnastar_index_builder.py	Fri Jan 09 22:38:21 2015 -0500
+++ b/data_manager/rnastar_index_builder.py	Fri Jan 09 23:16:54 2015 -0500
@@ -36,31 +36,20 @@
     return sequence_id, sequence_name
 
 
-def _run_command( command, target_directory ):
-    tmp_stderr = tempfile.NamedTemporaryFile( prefix = "tmp-data-manager-rnastar_index_builder-stderr" )
-    return_code = subprocess.call( command, shell=False, stdout=sys.stdout, stderr=tmp_stderr.fileno() )
-    if return_code:
-        tmp_stderr.flush()
-        tmp_stderr.seek( 0 )
-        sys.stderr.write( "### star reports an error:\n" )
-        while True:
-            chunk = tmp_stderr.read( CHUNK_SIZE )
-            if not chunk:
-                break
-            sys.stderr.write( chunk )
-        sys.exit( return_code )
-    tmp_stderr.close()
-    return return_code
-
+def _add_data_table_entry( data_manager_dict, data_table_name, data_table_entry ):
+    data_manager_dict['data_tables'] = data_manager_dict.get( 'data_tables', {} )
+    data_manager_dict['data_tables'][ data_table_name ] = data_manager_dict['data_tables'].get( data_table_name, [] )
+    data_manager_dict['data_tables'][ data_table_name ].append( data_table_entry )
+    return data_manager_dict
 
 def build_rnastar_index( data_manager_dict, fasta_filename,  target_directory, 
-    dbkey, sequence_id, sequence_name, data_table_name,
-    sjdbOverhang,sjdbGTFfile, sjdbFileChrStartEnd,sjdbGTFtagExonParentTranscript,sjdbGTFfeatureExon,sjdbGTFchrPrefix,n_threads):
+       dbkey, sequence_id, sequence_name, data_table_name,
+       sjdbOverhang,sjdbGTFfile, sjdbFileChrStartEnd,sjdbGTFtagExonParentTranscript,sjdbGTFfeatureExon,sjdbGTFchrPrefix,n_threads):
     #TODO: allow multiple FASTA input files
     fasta_base_name = os.path.basename( fasta_filename )
     sym_linked_fasta_filename = os.path.join( target_directory, fasta_base_name )
     os.symlink( fasta_filename, sym_linked_fasta_filename )
-    print >> sys.stdout,'made',sym_linked_fasta_filename
+    # print >> sys.stdout,'made',sym_linked_fasta_filename
     cl = ['STAR','--runMode', 'genomeGenerate', '--genomeFastaFiles', sym_linked_fasta_filename, '--genomeDir', target_directory, '--runThreadN',n_threads ]
     
     if sjdbGTFfile:
@@ -86,14 +75,9 @@
         sys.exit( return_code )
     tmp_stderr.close()
     data_table_entry = dict( value=sequence_id, dbkey=dbkey, name=sequence_name, path=fasta_base_name )
-    _add_data_table_entry( data_manager_dict, data_table_name, data_table_entry )
-
+    data_manager_dict = _add_data_table_entry( data_manager_dict, data_table_name, data_table_entry )
+    return data_manager_dict
 
-def _add_data_table_entry( data_manager_dict, data_table_name, data_table_entry ):
-    data_manager_dict['data_tables'] = data_manager_dict.get( 'data_tables', {} )
-    data_manager_dict['data_tables'][ data_table_name ] = data_manager_dict['data_tables'].get( data_table_name, [] )
-    data_manager_dict['data_tables'][ data_table_name ].append( data_table_entry )
-    return data_manager_dict
     
 def main():
     #Parse Command Line
@@ -113,7 +97,6 @@
     filename = args[0]
     params = from_json_string( open( filename ).read() )
     target_directory = params[ 'output_data' ][0]['extra_files_path'].encode('ascii','replace')
-    data_manager_dict = {}
     dbkey = options.fasta_dbkey
     if dbkey in [ None, '', '?' ]:
         raise Exception( '"%s" is not a valid dbkey. You must specify a valid dbkey.' % ( dbkey ) )
@@ -125,7 +108,7 @@
     except OSError:
         pass
     #build the index
-    build_rnastar_index( data_manager_dict = data_manager_dict, fasta_filename = options.fasta_filename, target_directory = target_directory,
+    data_manager_dict = build_rnastar_index( data_manager_dict = data_manager_dict, fasta_filename = options.fasta_filename, target_directory = target_directory,
       dbkey = dbkey, sequence_id = sequence_id, sequence_name = sequence_name, data_table_name=options.data_table_name,
       sjdbOverhang=options.sjdbOverhang,sjdbGTFfile=options.sjdbGTFfile,
       sjdbFileChrStartEnd=options.sjdbFileChrStartEnd,sjdbGTFtagExonParentTranscript=options.sjdbGTFtagExonParentTranscript,
--- a/data_manager/rnastar_index_builder.xml	Fri Jan 09 22:38:21 2015 -0500
+++ b/data_manager/rnastar_index_builder.xml	Fri Jan 09 23:16:54 2015 -0500
@@ -22,7 +22,7 @@
  --sjdbOverhang 0
 #end if
 --data_table_name "rnastar_index" 
-</command>
+    </command>
     <inputs>
         <param name="all_fasta_source" type="select" label="Source FASTA Sequence">
             <options from_data_table="all_fasta"/>
@@ -35,7 +35,7 @@
                help="This will be the source of splice junction indexing if required">
               <option value="gff3"  selected="true">gff3,gtf</option>
               <option value="bed">BED - tabular chr,start,end,strand</option>
-              <option value="None" >None - no splice junction index</option>
+              <option value="None">None - no splice junction index</option>
              </param>
              <when value="gff3">
                 <param type="data" format="gff3,gff" name="sjdbGTFfile" value="" label="Gene model - must be gff3 or compatible and must match the input genome"
@@ -71,8 +71,8 @@
                 <param type="integer" name="sjdbOverhang" value="100" label="Splice junction overhang. If=0, splice junction database NOT used"
                 help="integer length of the donor/acceptor sequence on each side, (mate_length - 1)" />
            </when>
-            <when value='None'>
-            </when>
+           <when value='None'>
+           </when>
         </conditional>
     </inputs>
     <outputs>
@@ -82,6 +82,7 @@
 
 .. class:: infomark
 
+<![CDATA[
 *What it does*
 
 This is a Galaxy datamanager for the rna STAR gap-aware RNA aligner.
@@ -117,6 +118,6 @@
     Alex
 
 **Notice:** If you leave name, description, or id blank, it will be generated automatically. 
-
+]]>
     </help>
 </tool>