[Biojava-dev] Biojava and biomanycores
Mark Fortner
phidias51 at gmail.com
Fri Oct 23 20:03:14 UTC 2009
As an aside there's the start of a BioGroovy cook site here:
http://biogroovy.open-bio.org.
You can learn more about using Groovy for those tasks that you used to do in
Perl. :-) Feel free to add your own recipes.
Regards,
Mark Fortner
On Thu, Oct 22, 2009 at 12:41 AM, <mark.schreiber at novartis.com> wrote:
> Hi -
>
> I think this is a historical hangover from the days when Java was not
> actually very good at launching external processes. There are actually
> two frameworks in biojava that attempted to overcome these shortcomings
> although both are now deprecated by the existence the ProcessBuilder
> (since JDK version 1.5).
>
> Below is an example of calling the Linux/Unix command "ls". Typically for
> Java much of the biolerplate is setting up the stream readers and handling
> exceptions but you get the idea. You can do much more advanced things
> such as launching long running jobs, monitoring them and cancelling them.
>
> List<String> cmd = new ArrayList<String>();
>
> cmd.add("/bin/ls");
>
> ProcessBuilder builder = new ProcessBuilder(cmd);
>
> try {
> final Process process = builder.start();
> InputStream is = process.getInputStream();
> InputStreamReader isr = new InputStreamReader(is);
> BufferedReader br = new BufferedReader(isr);
> String line;
> StringBuffer sb = new StringBuffer();
> while ((line = br.readLine()) != null) {
> sb.append(line);
> }
> return sb.toString();
> } catch (Exception e) {
> return e.getMessage();
> }
>
> Using this basic template you could theoretically launch any program, in
> your case these would be presumably be compiled to use GPUs or have
> command line options for these (the first item in the cmd list is the
> program and all other items are command line arguments).
>
> You can do this with much less work in Groovy which can be run as a stand
> alone script or compiled to a class file and called from another Java
> class.
>
> Process proc = "ls -l ".execute()
> proc.waitFor()
> result = proc.in.text
>
> If you want to get really "Groovy" you could even set up a Java program
> that executes Groovy script on the fly, you could then have all your
> scripts that lauch command line programs in text files that can be changed
> during runtime (no compilation required).
>
> Given that this is all quite easy now in java it would be good if someone
> could add some of these to biojava.
>
> Best regards,
>
> - Mark
>
> biojava-dev-bounces at lists.open-bio.org wrote on 10/22/2009 05:03:05 AM:
>
> > Dear all,
> >
> > I'm one of the people who is trying to develop the biomanycores
> > project (www.biomanycores.org) which aims to give access to efficient
> > parallel algorithms developed for GPUs to bioinformaticians.
> >
> > To reach this goal we want to provide interfaces to those algorithms
> > through Bio* frameworks. People will have to change only some lines in
> > their Bio* code to use more efficient tools. In order to realize such
> > interfaces, it is necessary to launch the command line tool and to
> > retrieve results. I didn't see in the BioJava API a class enabling to
> > do such a thing although a mechanism seems to exist in BioPython or
> > BioPerl.
> >
> > I would like to know if I miss something in the API and, if it is not
> > the case, what could be the best way to launch external programs to
> > stay in the spirit of BioJava. For the moment, I use the trilead
> > package to launch commands on distant computers and the Runtime class
> > in the standard API to launch local commands. But may be it is
> > completely irrelevant to add such functionalities to BioJava.
> >
> > Please let me know what do you think about it.
> >
> > Best regards
> >
> > Jean-Stephane
> >
> > Jean-Stephane Varre
> > http://www.lifl.fr/~varre <http://www.lifl.fr/%7Evarre>
> > http://www.lifl.fr/SEQUOIA
> > http://bioinfo.lifl.fr
> >
> >
> > _______________________________________________
> > biojava-dev mailing list
> > biojava-dev at lists.open-bio.org
> > http://lists.open-bio.org/mailman/listinfo/biojava-dev
>
> _________________________
>
> CONFIDENTIALITY NOTICE
>
> The information contained in this e-mail message is intended only for the
> exclusive use of the individual or entity named above and may contain
> information that is privileged, confidential or exempt from disclosure
> under applicable law. If the reader of this message is not the intended
> recipient, or the employee or agent responsible for delivery of the
> message to 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 the sender immediately by e-mail and delete the material from any
> computer. Thank you.
> _______________________________________________
> biojava-dev mailing list
> biojava-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/biojava-dev
>
--
Mark Fortner
blog: http://feeds.feedburner.com/jroller/ideafactory
More information about the biojava-dev
mailing list