One of the projects that was really interesting was Trident - https://tridentworkflow.codeplex.com/. It provided a graphical designer based on Windows Workflow 3.0 to create scientific analysis applications. The .NET Bio team created some activities to introduce bioinformatics into that platform and it was a sample application that was shown off in some of the training sessions. Unfortunately, WF 3.0 was deprecated when .NET 4.0 shipped (and replaced by a completely different version of Workflow!), and the TSCB project just went dark. It also was quite heavy and slow having requirements on SQL server and some services to actually execute the workflows themselves.
But I really liked the idea of creating simple analysis programs with WF so I took the concept and created a new project – BioWF (http://markjulmar.github.io/BioWF/) which uses .NET 4.5 and .NET Bio 1.1 to provide a similar capability. It has two parts to it:
- A GUI designer which re-hosts Workflow 4.5 and provides access to a set of pre-defined activities and the core WF activities. You can create, edit and save workflows to XML based files.
- A console based runner which can take a persisted WF and execute it providing both input and output capabilities.
Here’s a screen shot of the GUI app when it is first started:
You can then drag various activities from the toolbox on the left. Each activity can be selected and have properties changed in the property explorer on the bottom right of the screen. As an example, let’s create a sequence and save it to a FASTA file:
1. Drag the CreateSequence activity onto the design surface (right where it says “Drag activity here”. It should have some validation errors which show up:
The validation errors are shown both on the item and it’s parents – as well as in a list at the bottom of the application. To correct the error, you need to add some sequence data – this can be supplied as a variable, parameter or literal string which we’ll use here.
2. Type “AAA-CCC-GGG-TTTT” into the sequence data box. Make sure to include the quotes. Once you tab out, the validation error should disappear.
The SaveSequencesToFile activity is what we want to use to write out sequences, but it takes an IEnumerable<ISequence> as input – what we’ve created is a single sequence. That’s why there is an EnumerableFromItem<T> activity. This takes a single item and generates an Enumerable sequence from it.
3. Drag the EnumerableFromItem<T> directly below the CreateSequence activity. It will prompt you for the type of enumerable to create:
Select the drop-down and use the “Browse” functionality to show all the known assemblies. You can use the search box – type ISequence and it will narrow the search.