From: galaxy-dev-boun...@lists.bx.psu.edu 
[mailto:galaxy-dev-boun...@lists.bx.psu.edu] On Behalf Of Marc Logghe
Sent: Thursday, February 28, 2013 10:25 PM
To: galaxy-dev@lists.bx.psu.edu
Subject: [galaxy-dev] blend4j

Hi all,
Is this the correct forum to post blend4j issues ? Apologies if this is not the 
case.

I was trying to run a custom workflow via blend4j, according to 
https://github.com/jmchilton/blend4j
In my hands, the call to workflowDetails.getInputs() returns an empty Map. I 
believe the corresponding REST request looks like:
/galaxy/api/workflows/<workflow id>?key=<API key>
In the JSON response, the 'inputs' attribute is empty indeed ({"url": 
"/galaxy/api/workflows/f09437b8822035f7", "inputs": {}, ...).
I do not understand why this is the case because 2 steps require inputs to be 
set at runtime. Via the Galaxy web interface those required parameters can be 
set and the workflow is running smoothly.
Or has the term 'inputs' nothing to do with 'parameters' ?

Please allow me to come back to this. I now realize that the workflow needs 2 
inputs (instead of parameters). As far as I understand, for the moment it is 
not possible to pass parameter values via the REST API without tempering with 
the JSON strings themselves.
But dataset inputs should be supported. In my case, step 1 and step 2 need the 
same dataset as input.
According to this snippet taken from the blend4j page (shown below), the 
workflow should provide you with the input ids (here workflowInput1Id and  
workflowInput2Id).
The issue is I don't have a clue what these input ids are, since in my hands 
workflowDetails.getInputs() returns an empty collection. Do you need to add 
metadata/attributes to the workflow in order to have these input IDs returned ?


final WorkflowDetails workflowDetails = 
workflowsClient.showWorkflow(matchingWorkflow.getId());
    String workflowInput1Id = null;
    String workflowInput2Id = null;
    for(final Map.Entry<String, WorkflowInputDefinition> inputEntry : 
workflowDetails.getInputs().entrySet()) {
      final String label = inputEntry.getValue().getLabel();
      if(label.equals("WorkflowInput1")) {
        workflowInput1Id = inputEntry.getKey();
      }
      if(label.equals("WorkflowInput2")) {
        workflowInput2Id = inputEntry.getKey();
      }
    }

    final WorkflowInputs inputs = new WorkflowInputs();
    inputs.setDestination(new 
WorkflowInputs.ExistingHistory(matchingHistory.getId()));
    inputs.setWorkflowId(matchingWorkflow.getId());
    inputs.setInput(workflowInput1Id, new 
WorkflowInputs.WorkflowInput(input1Id, WorkflowInputs.InputSourceType.HDA));
    inputs.setInput(workflowInput2Id, new 
WorkflowInputs.WorkflowInput(input2Id, WorkflowInputs.InputSourceType.HDA));
    final WorkflowOutputs output = workflowsClient.runWorkflow(inputs);
    System.out.println("Running workflow in history " + output.getHistoryId());
    for(String outputId : output.getOutputIds()) {
      System.out.println("  Workflow writing to output id " + outputId);
    }

Regards,
Marc
________________________________________
THIS E-MAIL MESSAGE IS INTENDED ONLY FOR THE USE OF THE INDIVIDUAL OR ENTITY TO 
WHICH IT IS ADDRESSED AND MAY CONTAIN INFORMATION THAT IS PRIVILEGED, 
CONFIDENTIAL AND EXEMPT FROM DISCLOSURE. 
If the reader of this E-mail message is not the intended recipient, you are 
hereby notified that any dissemination, distribution or copying of this 
communication is strictly prohibited. If you have received this communication 
in error, please notify us immediately at abl...@ablynx.com. Thank you for your 
co-operation. 
"NANOBODY" and "NANOCLONE" are registered trademarks of Ablynx N.V. 
________________________________________
___________________________________________________________
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