Edirect Perl library dependency problem

From Bioinformatics.Org Wiki

Jump to: navigation, search

Mystica Arrow set (with deep) 1.png [return to BIRCH Release To Do List]


My goal is to include Edirect [1] as part of the BIRCH bioinformatics package: [2]

BIRCH ties together numerous 3rd party tools using a programmable GUI that we have developed called BioLegato. BioLegato interfaces are available for many sorts of data, including DNA and protein sequences, alignments, molecular markers, phylogenetic trees [3]. A new BioLegato interface, called blncbi, provides a graphical interface for using Edirect tools [4].


NCBI Edirect is a set of wrappers for calling NCBI Eutils. The wrappers are useful because they allow Eutils API functions to be called as scripts. They add power to the Eutils API functions by integrating them into the Unix pipe functions, allowing complex use of Eutils functions within scripts.

EDirect has several platform dependency issues that need to be resolved:

Special considerations for BIRCH - In order to include the Edirect tools as part of a BIRCH distribution, it would be best if users didn't have to build Edirect on their systems. Many users will not have the sophistication to do that, and even sophisticated users will not necessarily have sysadmin privileges. The big problem seems to be that some .so files are needed, which would somehow have to be included, presumably, in the aux directory tree.

The dependency problem could be a special case on every host on which Edirect is installed. It will differ not just by the platform and release, but also by whatever packages the user/sysadmin has installed on a paritcular machine.

If this was Python or Java, the solution would be to distribute a .pyc of .jar file. Unfortunately, Perl has no such mechanism.

Another approach is to rewrite ncbiquery.py as a Java application, using the EUtils Java API. This might actually be more reliable and less work to maintain in the future.It might be worthwhile, in the long run, to rewrite Edirect in Java using the Java API for Eutils. This idea might have been good, but as of summer 2015, SOAP web services at NCBI will no longer be supported, which includes the Java API.

Can we use the .fcgi http utilities? This seems to be the approach most commonly used in the programming world. So let's see what's available in the Java and Python worlds.




Test of build and execution on Linux and MacOSX systems EDirect Test 12Dec14A

Test of portability to new systems EDirect Portability Test 17Dec14A

Personal tools
wiki navigation