Can you reproduce this on the main or test galaxy server @ Penn and make the workflow public? -John On Fri, Mar 1, 2013 at 11:21 AM, Marc Logghe <Marc.Logghe@ablynx.com> wrote:
From: galaxy-dev-bounces@lists.bx.psu.edu [mailto:galaxy-dev-bounces@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 ablynx@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: