Convert_Taverna_listlist_of_r_expressions22r_list_of_expressionsFlattenListOfStringsToStringstringlist1concatenated00net.sf.taverna.t2.activitieslocalworker-activity1.4net.sf.taverna.t2.activities.localworker.LocalworkerActivity stringlist 1 l('text/plain') java.lang.String true concatenated 0 0 workflow org.embl.ebi.escience.scuflworkers.java.StringListMerge UserNameHere 2013-10-14 14:22:51.151 UTC net.sf.taverna.t2.coreworkflowmodel-impl1.4net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize 1 net.sf.taverna.t2.coreworkflowmodel-impl1.4net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBouncenet.sf.taverna.t2.coreworkflowmodel-impl1.4net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failovernet.sf.taverna.t2.coreworkflowmodel-impl1.4net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry 1.0 1000 5000 0 net.sf.taverna.t2.coreworkflowmodel-impl1.4net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.InvokeCombineListOfStringsIntoRListstringlist1output11net.sf.taverna.t2.activitieslocalworker-activity1.4net.sf.taverna.t2.activities.localworker.LocalworkerActivity stringlist 1 l('text/plain') java.lang.String true output 1 1 workflow org.embl.ebi.escience.scuflworkers.java.StringListMerge UserNameHere 2013-10-14 14:21:14.818 UTC net.sf.taverna.t2.coreworkflowmodel-impl1.4net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize 1 net.sf.taverna.t2.coreworkflowmodel-impl1.4net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBouncenet.sf.taverna.t2.coreworkflowmodel-impl1.4net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failovernet.sf.taverna.t2.coreworkflowmodel-impl1.4net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry 1.0 1000 5000 0 net.sf.taverna.t2.coreworkflowmodel-impl1.4net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.InvokeFlattenListOfStringsToStringstringlistlist_of_r_expressionsCombineListOfStringsIntoRListstringlistFlattenListOfStringsToStringconcatenatedr_list_of_expressionsCombineListOfStringsIntoRListoutput 1ff54110-840d-474e-95a4-877c8f2c5b5e 2013-09-04 15:26:02.821 UTC Convert Taverna list of RExpr to R list - v2 2013-10-14 15:39:10.475 UTC 6408ff2d-9a91-464c-b411-da3787a46b75 2013-10-14 15:39:54.238 UTC Jonathan Giddy 2013-09-04 15:12:34.436 UTC 472c6bef-15bc-4782-ab72-9e041b46e9d0 2013-10-14 14:28:56.870 UTC 13112099-3efd-42a7-bf18-a93c89de52dd 2013-09-04 15:30:31.850 UTC This workflow accepts a Taverna list of arbitrary R expressions and returns a single R expression representing an R list containing the original expressions. This workflow relies on the current Taverna behaviour of an R expression being represented by a list of strings containing the deparsed expression. If this changes, this workflow will likely break. The first BeanShell converts each R expression (actually a list of strings) to a single string. This uses implicit iteration to do this for each R expression, so input port depth is 2 but the BeanShell input depth is 1. The second Beanshell creates a comma-separated list of the deparsed R expressions and wraps the string with the R list() function. So now we have a single string s that can be turned into an R list using eval(parse(text=s)). But RShell already does that parsing for us, so we just need to ensure the string looks like an R expression by turning it into a list of strings. So we actually output a 1-element list containing the string. Version 1: initial implementation Version 2: reduce number of BeanShells 2013-10-14 15:39:54.126 UTC