[emboss-dev] Bio-Emboss: executing "diffseq" as a perl function

Peter Ernst P.Ernst at dkfz-heidelberg.de
Fri Mar 24 15:02:28 UTC 2006


On Fri, 24 Mar 2006, Sebastian Konietzny wrote:

> I would like to know how I can use Bio::Emboss in such a way, that I 
> will not longer have to execute the "diffseq"-command as a system-call.
> 
> I heard that it ought to be possible to use emboss-tools from inside a 
> perl-script without system-calls but by using Emboss perl functions 
> instead. Can anyone help me and explain, what would be the right 
> subroutine and how I have to manage it's call?



Bio::Emboss provides a Perl-API to the Emboss libraries, but not to
the Emboss tools. 

A few Emboss tools, like "seqret", rely in their functionality almost
completely in one or two library calls, and can therefore be easily
copied to Perl.

The "diffseq" tool, however, does a lot more than just calling a few
library functions.

If you would translate the diffseq.c source code line-by-line into
Perl (what I do not recommend; too much work), the Bio::Emboss module
would provide the interface to the Emboss functions like
embWordBuildMatchTable().

If you *really* need a Perl-API for "diffseq",

 1st) create a C library based on diffseq.c, providing the function
      you would like to use from Perl.

 2nd) Use PerlXS, to interface from Perl to this library.
      (this is what Bio::Emboss does for the Emboss libraries)

Kind regards,

     Peter

-- 

 Peter Ernst
 Department of Molecular Biophysics - B020
 Deutsches Krebsforschungszentrum (German Cancer Research Center) DKFZ



More information about the emboss-dev mailing list