[BioRuby] gsoc suggestion: microframework for simple scientific web wrappers

Iain Barnett iainspeed at gmail.com
Thu Feb 6 16:54:40 UTC 2014


Rather than wrapping commandline executables, it'd be better if the
projects that supply the executables wrote them as a library + exe, where
the command line exe was a wrapper around the lib. It's a lot easier to
wrap other interfaces if concerns are split this way.

Sinatra has a plugin system called extensions
http://www.sinatrarb.com/extensions-wild.html, which would be an easier way
for people to include a library's functions in a webserver. I can't think
of a way to create a one size fits all solution unless libraries all had a
standard or incredibly similar API.


I'm not sure how you'll create a GUI that is also one size fits all for the
same reasons as above. What you might consider is using something like
Weasel Diesel https://rubygems.org/gems/weasel_diesel to generate an API
and write pages with javascript calling code against it. Then you would get
the param checking features you wanted.

Regards,
Iain


On 6 February 2014 12:24, Yannick Wurm <y.wurm at qmul.ac.uk> wrote:

> Thanks, glad you like the idea.
>
> The thing is I'm not technical enough to supervise the implementation...
> so I could only co-supervise with the help of a strong technical thinker.
>
> This could fit under sci-ruby's remit as well.
>
> Cheers,
> Yannick
>
>
>
> On 6 Feb 2014, at 06:34, Pjotr Prins <pjotr.public14 at thebird.nl> wrote:
>
> > This is a very good idea, and ties in with earlier bio-ngs work and
> > our future plans in pipeline software management.
> >
> > GSoC also likes 'infrastructure' type projects - it was found out the
> > last summit.
> >
> > Do add it to the OBF project proposal list. Also mention bio-ngs and
> > your project.
> >
> > Pj.
> >
> > On Thu, Feb 06, 2014 at 12:09:58AM +0000, Yannick Wurm wrote:
> >> Dear all,
> >>
> >> a small thought about a potential GSoC project.
> >>
> >> Many bioinformatics software consist in a binary that you run on the
> command line with one or few input files, some parameters and generates
> some output files. Let's consider only software that generates potentially
> human-readable output.
> >>
> >> Most of us on this mailing list have no problem running that kind of
> software on the command-line. But for the majority of biologists that's
> still impossible: they need a point and click interface instead.
> >>
> >> So if you're the person who needs to implement that point and click
> interface, how do you do it?
> >> 1. create a wrapper for galaxy [1]. This has become easy.. but puts the
> burden on your enduser to have or set up a galaxy installation (not
> trivial), and the galaxy user experience is debatable.
> >> 2. use sinatra.rb (we did this for our sequenceserver wrapper for
> blast) - it worked but involved way too much manual labor.
> >> 3. be old-skool (build your own from php/etc).
> >>
> >>
> >> Clearly 1 isn't always appropriate & locks you into a weird framework,
> and 2. is still to much work. Padrino & rails are overkill for the simplest
> apps. With Ruby providing such great web development frameworks, why isn't
> there an easier/faster way to generate a web wrapper around a piece of
> scientific software?
> >>
> >> Perhaps I'm missing something.
> >>
> >> Alternatively, creating a "wrapping scientific software" framework
> could be a viable GSoC project.
> >>
> >> Build it upon Sinatra, create a rigid framework where the basic
> locations of files that the developer needs to edit are predetermined
> (similarly to rails). Single page/webform for the user to enter data;
> single output/download page after the run was successful. No need to store
> any user-data on the server. The framework should include the following
> features:
> >> * easy way to verify presence, executability and version of binary (or
> script) that is being wrapped
> >> * easy way to specify number of input files, and potential constraints
> on them  [this stuff should be specified once; appropriate HTML should be
> auto-generated (bootstrap)].
> >>    * most basic constraints: size and/or extension
> >>    * more advanced constraints: user-extensible function that verifies
> the format
> >> * easy way to specify possible parameters and constraints on their types
> >> * easy way to show/include local data (HMM models, sequence databases
> etc...)
> >> * easy way to make text-output look good
> >>    * eg. inserting specific headers or indexing at specific regexps
> (for table of contents)
> >>    * eg. csv output should be shown as a table
> >>
> >> I'm not the best qualified person to consider exact implementation
> details, but if someone wants to go ahead with it I'm happy to provide more
> general thoughts.
> >>
> >> Cheers,
> >>
> >> Yannick
> >>
> >> [1]: http://galaxyproject.org
> >>
> >>
> >> -------------------------------------------------------
> >> Yannick Wurm - http://yannick.poulet.org
> >> Ants, Genomes & Evolution ??? y.wurm at qmul.ac.uk ??? skype:yannickwurm
> ??? +44 207 882 3049
> >> 5.03A Fogg ??? School of Biological & Chemical Sciences ??? Queen Mary,
> University of London ??? Mile End Road ??? E1 4NS London ??? UK
> >>
> >>
> >> _______________________________________________
> >> BioRuby Project - http://www.bioruby.org/
> >> BioRuby mailing list
> >> BioRuby at lists.open-bio.org
> >> http://lists.open-bio.org/mailman/listinfo/bioruby
>
>
> _______________________________________________
> BioRuby Project - http://www.bioruby.org/
> BioRuby mailing list
> BioRuby at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioruby
>



More information about the BioRuby mailing list