Hi everyone,

I'm trying to add a tool which generates 2 files, that I will call ".xxx" (a 
text file) and ".yyy" (a binary file)  . Both files are needed to use the 
result of my tool with an other tool I've added. 
So I wanted to create a composite datatype , that I will call ".composite", 
whose components are ".xxx" and ".yyy".

I've declared the datatype ".xxx", ".yyy" and ".composite" in the 
datatypes_conf.xml file, and written the required python files . Now, ".xxx", 
".yyy" and ".composite" appear in Get Data's "file format" .


These are my files :

In datatype_conf.xml :

<datatype extension="xxx" type="galaxy.datatypes.xxx:xxx" mimetype="text/html" 
display_in_upload = "True" subclass="True"/>
    <datatype extension="yyy" type="galaxy.datatypes.yyy:yyy" 
mimetype="application/octet-stream" display_in_upload = "True" subclass="True" 
/>
    <datatype extension="composite" type="galaxy.datatypes.composite:Composite" 
mimetype="text/html" display_in_upload="True"/>


xxx.py (summarized) :

import logging
from metadata import MetadataElement
from data import Text

log = logging.getLogger(__name__)

class xxx(Text):      
    file_ext = "xxx"

        def __init__( self, **kwd ):
        Text.__init__( self, **kwd )
    


yyy.py (summarized) :  

import logging
from metadata import MetadataElement
from data import Text

log = logging.getLogger(__name__)

# yyy is a binary file, don't know what to put instead of "Text". "Binary" and 
"Bin" don't work.
class yyy(Text):     
    file_ext = "yyy"

        def __init__( self, **kwd ):
        Text.__init__( self, **kwd )
        


composite.py (summarized) :

import logging
from metadata import MetadataElement
from data import Text

log = logging.getLogger(__name__)

class Composite(Text):      
    composite_type = 'auto_primary_file'
    MetadataElement( name="base_name", desc="base name for all transformed 
versions of this index dataset", default="your_index", readonly=True, 
set_in_upload=True)
    file_ext = 'composite'

    def __init__( self, **kwd ):
        Text.__init__( self, **kwd )
        self.add_composite_file( '%s.xxx', description = "XXX file", 
substitute_name_with_metadata = 'base_name')
        self.add_composite_file( '%s.yyy', description = "YYY file", 
substitute_name_with_metadata = 'base_name', is_binary = True )



Atfer having read Composite Datatypes in the wiki, my myTool.xml looks like :

<tool id="my tool">
   <command> path/to/crac-index-wrapper.sh 
   ${os.path.join( $output_name_yyy.extra_files_path, '%s.yyy')} 
${os.path.join( $output_name_xxx.extra_files_path, '%s.xxx' )} $input_file
   </command>
   <inputs>
      <param name="output_name" type="text" value ="IndexOutput" label="Output 
name"/>
      <param name="input_file" type="data" label="Source file" format="fasta"/>
   </inputs>  
   <outputs>
      <data format="ssa" name="output_name_ssa" 
from_work_dir="crac-index_output.ssa" label="CRAC-index: ${output_name}.ssa">
      </data>
    <data format="conf" name="output_name_conf" 
from_work_dir="crac-index_output.conf" label="CRAC-index: ${output_name}.conf">
     </data>
   </outputs>
</tool>



I have 2 main problems  :

When I upload a xxx file via "Get Data", there's no problem. However, when I 
upload a yyy file (the binary one),history bloc rests eternally blue 
("uploading dataset") , even for a small file. 


The second problem is that I want my tool to only generate the .composite file 
on the history, and not each of .xxx and .yyy. 
. But when I run my tool I still have 2 outputs displayed in the history : one 
for xxx and one for yyy. Furthermore, neither of them work, and I have the 
following message :

path/to/myTool-wrapper.sh: 6: path/to/myTool-wrapper.sh.sh: cannot create 
/home/myName/work/galaxy-dist/database/files/000/dataset_302_files/%s.yyy.xxx: 
Directory nonexistent
path/to/myTool-wrapper.sh: 6: path/to/myTool-wrapper.sh: cannot create 
/home/myName/work/galaxy-dist/database/files/000/dataset_302_files/%s.yyy.yyy: 
Directory nonexistent
path/to/myTool-wrapper.sh: 11: path/to/myTool-wrapper.sh: Syntax error: 
redirection unexpected


So I've checked manually in /home/myName/work/galaxy-dist/database/files/000/ 
and there's only "dataset_302.dat", an empty file.
(And whatsmore, I don't understand why I get in the message "%s.yyy.xxx" and 
"%s.yyy.yyy" instead of "%s.yyy" and "%s.xxx" ...)


Then I've looked the example of rgenetics.xml, and tried to change the command 
line and the output :
 
<tool id="my tool">
   <command> path/to/myTool-wrapper.sh 
'$output_name.extra_files_path/$output_name.metadata.base_name' $input_file
   </command>
   <inputs>
      <param name="output_name" type="text" value ="IndexOutput" label="Output 
name" />
      <param name="input_file" type="data" label="Source file" />
   </inputs>
   <outputs>    
      <data format="html" name="output" label="myTool: ${output_name}.html" 
metadata_source="input_file"/>
   </outputs>
</tool>

This gave me :

Traceback (most recent call last):
  File "/home/myName/work/galaxy-dist/lib/galaxy/jobs/runners/local.py", line 
59, in run_job
    job_wrapper.prepare()
  File "/home/myName/work/galaxy-dist/lib/galaxy/jobs/__init__.py", line 429, 
in prepare
    self.command_line = self.tool.build_command_line( param_dict )
  File "/home/myName/work/galaxy-dist/lib/galaxy/tools/__init__.py", line 1971, 
in build_command_line
    command_line = fill_template( self.command, context=param_dict )
  File "/home/myName/work/galaxy-dist/lib/galaxy/util/template.py", line 9, in 
fill_template
    return str( Template( source=template_text, searchList=[context] ) )
  File 
"/home/myName/work/galaxy-dist/eggs/Cheetah-2.2.2-py2.7-linux-x86_64-ucs4.egg/Cheetah/Template.py",
 line 1004, in __str__
    return getattr(self, mainMethName)()
  File "cheetah_DynamicallyCompiledCheetahTemplate_1339157051_58_87978.py", 
line 83, in respond
NotFound: cannot find 'extra_files_path' while searching for 
'output_name.extra_files_path'


So now I don't know which way is the one to follow : the first one inspired by 
the example in the wiki, or the second one inspired by rgenetics.xml. And 
what's wrong with it... 
I will really appreciate any suggestion !

Best regards,

Marine
___________________________________________________________
Please keep all replies on the list by using "reply all"
in your mail client.  To manage your subscriptions to this
and other Galaxy lists, please use the interface at:

  http://lists.bx.psu.edu/

Reply via email to