Catherine Letondal (letondal@pasteur.fr), Pasteur Institute.
|
That is why we have developed a software that, given an abstract
definition of a program's parameters, can generate whatever style of
interface provided there is a configuration module for it (there are
already modules for Web, conversational, SeqLab, Tcl/Tk and X11
interfaces - not all fully maintained though). What we consider as a
parameter is very general and includes: command line parameters, simple
interaction on standard input and parameters files.
It quickly turned out that the most useful interface would be a Web
interface, because it's widely available and users are accustomed to
it (this is why the SeqLab, conversational and X11 interfaces are not
really maintained).
Features include:
The current operational server contains about 200 programs, including
EMBOSS
programs, ranging
from Blast and Fasta databases searches or classic comparison programs
(clustalw, Wise,...) to gene finding and modelling (Genscan, GeneMark,
...), RNA analysis (mfold, Vienna package), phylogeny (Phylip,
fastDNAml, Puzzle, Molphy, ...), protein and DNA
analysis, pattern discovery (HMMER, PFTOOLS, ...) and structure analysis.
Another interface generator which is currently developped, is for
biok, a Biology
Interactive Object Kit.
The on-line help is made of comments at the end of the HTML document. Parameters prompts are linked to the approppriate part of this section.
In the second case, the first job is not killed. A message is displayed telling that a similar job has been submitted, and that the user should wait for the results.
Technically speaking, a similar job is detected by a checksum on the submitted data. As all the processes are under the same Unix group, it's very easy to kill them according to a stored PID value (first case only).
If successfull, this should create a temporary directory in
Note that this directory should be linked to a big partition :-)
This part explain how to create a new interface for a program. You have to describe the program title and name as well as its parameters.
The definition of a program interface comprise the following parts:
You can also define the command as a parameter.
Example of a parameter named gapopen:
Remarks (perl only):
Code examples and comments: (in perl)
It's convenient, as some programs have a lot of parameters, to group these into appropriate rubrics. The Paragraph attribute describes such grouping. The grouped variables are listed within the vlist attribute:
There are 2 type of HTML forms:
In order to distinguish simple/advanced parameter, you can use the issimple attribute:
As programs of the same package (like PHYLIP programs) often used the same parameters, it's possible to recursively include definition files.
This attribute directs the part of the command line
for this parameter into a file; this is useful for programs wo
take their parameters from a file of from the standard input, like
Phylip programs. Example:
As you can see in the following example, the command itself can be described as a parameter. The attribute to use for this purpose is the boolean command attribute.
This attribute defines at which position in the command line the string for this parameter should be. In the following example (simplified) :
The group attribute can be defined at the paragraph level: all the paragraph's variables will be ranged at the same position in the command line.
See also the paramfile attribute note.
See design section for a general explanation.
The attribute to implement this is pipe. Example:
To "connect" clustalw output to dnadist input, you have to run a:
For the Sequence parameters, as long as the required format is described with the seqfmt attribute, the CGI automatically convert the input data into the appropiate format, by using the readseq program. In the following example, if the sequence data is neither in the fasta (8) nor in the GCG (5) format, it will be converted in the former.
Based on Basu M K SeWeR customization facility. SeWeR stands for SEquence analysis using WEb Resources.
The great advantage of this Web gateway is that:
See our local SeWeR installation, with EMBOSS programs, as well as several other Pise programs.
Distribution: ftp://ftp.pasteur.fr/pub/GenSoft/unix/misc/Pise/PiseSeWer.tar.gz.
In order to use it for your local installation, you have to:
You don't need to install Pise in order to use this package, for
it's only a client.
As shown above, this package is compatible with the Biopython
(http://www.biopython.org/) sequence and alignement types.
You can also feed the output as a handle for a Biopython parser, such
as the parser for the EMBOSS
primersearch program:
You can find more examples here: ftp://ftp.pasteur.fr/pub/GenSoft/unix/misc/Pise/python-examples.tar.gz
Authors : Alexander Garcia ( Download:
Summary
Almost all users encounter problems using sequence analysis
programs. Not only are they difficult to learn because of the
parameters syntax and semantic, but they are all different. However,
as it would certainly be useful to add a friendly interface to each
program, this is totally infeasible given the increasing number of new
software in molecular biology.
The Web server interfaces are meant to be run on any Unix machine.
Links
Design
Objectives
Easier program interfaces.
On Unix, some programs are difficult to use for inexperienced users, because they assume a basic knowledge of the filesystem or the Unix documentation. They are sometimes required to edit parameters files or even to write small scripts. Even for programs that only require a command line, it's not always easy to learn the parameter's syntax. The first aim of this interface generator is to make the interfaces easier to learn and use, by proposing and explaining parameters, and taking care of the command syntax.
Interfaces adapted to the users' environment.
The same program definition ca be used to generate an HTML interface or a X11 interface according to the user's environment. Particularily, HTML forms are convenient for desktop computer users who don't want to learn Unix, a Web browser is all they need. We also have a beta SeqLab menus generator for GCG users.
Homogeneous interfaces for all programs.
When interfaces are automatically generated, they look and behave the same for every programs. So, the user has only one interface to learn.
No rewrite of existing softwares' interface.
Our aim is to have as many users as possible using existing programs for biology, but it would be impossible to rewrite their user interface. That's why we decided to program interfaces that build the command line - which is always displayed to the user at the beginning of the execution.
As few programming as possible for software administrators.
In order to generate an interface by this system, the software administrator has to scan the program documentation to locate the parameters and the syntax. To add online help, s/he has to understand the program semantic, which is not too bad for technical support.
There is very little programming to do, because all the programming is transferred into the interfaces makers. There is still a programming part to describe pre-conditions, controls and actual command syntax (how to get the command line from parameters' values). The coding language currently used is perl, but it could be any other one (the code is tagged by a language name, so it's the interface maker responsibility to take the appropriate code in the program's definition).
Making new interfaces.
Adding a new interface maker is the most difficult part, which is normally done by interface programmers. The analyzer output (the maker input) consists of several data structures needed for generating the actual interface: parameters' presentation and syntax, etc... For now, the output of the Yacc parser is coded in perl. This means only that the makers, not the actual interface programs - are coded in perl. However, it should be easy to add a layer to transform this output into another appropriate language.
General layout
The following figure shows the general architecture of Pise.
One can enter Pise at different levels:
HTML design
We have run some usability tests with a dozen users grouped by two, one telling to the other what s/he intended to do, the other one describing what s/he was seeing.
Among a lot of useful informations, like where to put the submit button, how to indicate on-line help... these tests have showed that it's necessary to design two levels of use :
The level of a parameter is determined by an associated attribute (see simple attribute).
CGI design
Access to results:
As some analysis can be very long - several days, and due to the synchronous aspect of a CGI based Web interface, it's necessary to delay results delivery. However, we think it's worth adapting a Web interface system in order to give access to results by the Web, even if not immediatly. That's why, in case of a long analysis, the user receives one email by result file, as well as an additional email giving the URL of the results Web page.
You can see in the following schema how the two different cases (fast program < 60 seconds, slow program > 60 seconds) are handled by exchanging Unix signals between the CGI and the generated script.
Redundant submissions:
As some analysis can be very heavy regarding the CPU resource, it's very important to prevent similar submissions. There are two cases:
The first case is handled during the "interactive" period within the first 60 seconds (see above): both submissions are cancelled, and a message is displayed explaining the problem and asking the user to resubmit.
Piping programs:
As shown on the picture below, the results of a program, say clustalw, can be used as an input to another program, say dnadist. This is similar to the Unix pipe behaviour (except it's implemented with ordinary copies).
What's new?
Documentation
Installation
/local/lib/Pise, and download Pise.tar in this directory. This will create the /local/lib/Pise/version directory, which will be the PISEDIR directory in which you will have the following files and subdirectories:
drwxrwxr-x 2 you team 8192 Jun 18 15:21 Doc documentation files
drwxrwxr-x 3 you team 8192 Jun 17 17:44 Html generated .html
drwxrwxr-x 2 you team 8192 Jun 17 16:56 Images GIF files
-rw-r--r-- 1 you team 5668 Jun 18 16:15 Makefile
-rw-r--r-- 1 you team 1762 Jun 18 16:13 Makefile.global
drwxrwxr-x 2 you team 8192 Jun 18 14:58 Maker interface generators
drwxrwxr-x 2 you team 8192 Jun 17 18:30 Parser lex&yacc or XML parser
drwxrwxr-x 2 you team 8192 Jun 17 14:50 PerlDef generated perl data structures
drwxrwxr-x 2 you team 8192 Jun 18 19:28 Xml XML text definitions (version 5.a)
drwxrwxr-x 2 you team 8192 Jun 17 16:03 lib perl utilities
-rw-rw-r-- 2 you team 1801 Jun 17 14:50 README
-rw-r--r-- 1 you team 32464 Jun 18 16:20 configure.in
-rw-r-xr-x 1 you team 32864 Jun 18 16:20 configure configuration script
-rw-r--r-- 1 you team 637 Jun 18 16:20 aclocal.m4 macros for configure
Makefile.global
lib/web.pl
Makefile.global let you define:
HTML-INSTALL-DIR) and CGI (CGI-INSTALL-DIR) files
PROGRAMS)
lib/web.pl let you define:
PISEDIR: the place where Pise source and generated files
stand [e.g: /local/lib/Pise/version]
CGI_DIR: generated CGI files [e.g:
/local/http/cgi-bin/Pise], IMAGES_DIR [e.g:
/local/http/images] , ...
./configure --prefix=/local/lib/Pise
Images subdirectory to the
$IMAGES_DIR directory (see lib/web.pl).
Xml sub-directory.
make PROGRAM=xxx
This should create the following files:
PerlDef/xxx.pl: perl data structures
Html/xxx.html: HTML advanced form
Html/xxx-simple.html: HTML simple form (see explanations)
Cgi/xxx.pl: CGI file
make install PROGRAM=xxx
This should create the following files (copied from Html and Cgi subdirectories to installation directories defined in Makefile):
HTML-INSTALL-DIR/xxx.html
HTM-INSTALL-DIR/xxx-simple.html
CGI-INSTALL-DIR/xxx.pl
HTMLDIR/tmp/xxx/, containing your input and output files, as well as an index.html file presenting the results, a xxx.out file containing the standard output, a xxx.err file containing the standard error and a script perl file to run everything.
LOGDIR/log file contains a description for each submitted job:
command||{simple,advanced} form||Unix command||email||temporary dir||date
this can be used to trace user requests as well as doing some use statistics.
The Logs sub-directory contains a Makefile and a perl script to generate HTML reports from the LOGDIR/log file.
lib/clean_cgi.pl perl script as an example
to clean the work files en the HTMLDIR/tmp subdirectory.
Definition of a new program interface
Only for XML 5.a version version.
The definition of a program interface is described in XML,
according to a DTD.
You may look at some examples.
<!ELEMENT pise (head, command, parameters)>
<!ELEMENT head (title, description?, authors?, reference?, category*,doclink*)>
Example:
<head>
<title>Clustalw</title>
<description>Multiple Alignements</description>
<authors>Des Higgins</authors>
<category>alignment</category>
<doclink>http://www-igbmc.u-strasbg.fr/BioInfo/ClustalW</doclink>
</head>
Example:
<command>clustalw</command>
This means that the files containing this program descriptions will be: clustalw.html, clustalw.pl, ..., and that the effective Unix command will start by the string: "clustalw".
Parameters have a name and a given type, describing their general behaviour and properties.
A definition is composed of a list of attributes,
defining the prompted text, the default value, etc... Here is the definition:
<!ELEMENT parameter (paragraph|(name,attributes)+)>
<!ATTLIST parameter
type (InFile|Sequence|OutFile|Results|Switch|Excl|List|Integer|Float|String|Paragraph|Label) #REQUIRED
ismandatory %boolean; #IMPLIED
iscommand %boolean; #IMPLIED
ishidden %boolean; #IMPLIED
isstandout %boolean; #IMPLIED
issimple %boolean; #IMPLIED
isclean %boolean; #IMPLIED
>
Example:
<parameter type="Sequence" ismandatory="1" issimple="1" ishidden="0">
<name>sequence</name>
<attributes>
<prompt>DNA sequence (-seq)</prompt>
<format>
<language>perl</language>
<code>" -seq=$value"</code>
</format>
<group>1</group>
<seqtype><value>dna</value></seqtype>
<seqfmt>
<value>8</value>
</seqfmt>
</attributes>
</parameter>
where:
InFile
input file
Sequence
input sequence data
OutFile
output file
Results
output files (not real "parameters" known by the user)
Switch
is on or off
Excl
single choice list
List
multiple choice list
Integer
an integer value
Float
a float value
String
a string (without space and special characters)
Paragraph
a list of grouped parameters
<parameter type="Integer">
<name>gapopen</name>
<attributes>
<prompt>Gap opening penalty (-gapopen)</prompt>
<format>
<language>perl</language>
<code> (defined $value && $value ne $vdef)? " -gapopen=$value" : ""</code>
</format>
<vdef><value>10.00</value></vdef>
<group>2</group>
<comment>
<value></value>
</comment>
</attributes>
</parameter>
This is like a variable name that can be used in the attributes containing code (format, ctrl, precond).
Attribute name
Explanation
attribute values
Parameter type
comment
explanation of the parameter for the user
list of strings
format
code to transform the input value into a correct syntax for the parameter
code
group
position of this parameter in the command line (default group for command type parameter : 0)
integer
mandatory
is this parameter mandatory?
boolean
prompt
text presented to the user
string
seqfmt
sequence format (for readseq)
list of readseq codes
Sequence
simple
is it a parameter for a beginner?
boolean
vdef
default value
depends on parameter type
vlist
list of values
depends on parameter type
Excl, List, Paragraph
Attribute name
Explanation
attribute values
Parameter type
clean
is this output file to be erased?
boolean
OutFile, Results
command
does this parameter stand for the command?
boolean
ctrl
extra controls of the entered value
code
filenames
output files mask
string
Results
flist
list of format - see below list format
list of values
Excl, List
hidden
is this parameter hidden to the user?
boolean
paramfile
parameters are stored in this file instead of the command line
string
pipe
connects a program's output to another program's input
specific code
Infile, Sequence, OutFile, Results
precond
pre-condition of the parameter
code
scalemin
min value
integer
Integer, Float
scalemax
max value
integer
Integer, Float
scaleinc
increment
integer
Integer, Float
separator
for List
string
size
for presentation
integer
standout
is it the standard output of the program?
boolean
OutFile
value type attributes
string vdef prompt paramfile filenames separator
integer vdef group size scale*
decimal vdef
boolean
vdef mandatory clean simple command hidden standout
list
vlist flist comment
code
format ctrl precond
<parameter ismandatory="1" issimple="1" type="Sequence">
By default, all the boolean values are set to False.
<vlist>
<value>-align</value>
<label>-align: do full multiple alignment</label>
<value>-profile</value>
<label>-profile: merge two alignments (PROFILE1 and 2) by profile alignment</label>
<value>-sequences</value>
<label>-sequences: sequentially add PROFILE2 sequences to PROFILE1 alignment</label>
<value>-tree</value>
<label>-tree: calculate NJ tree</label>
<value>-bootstrap</value>
<label>-bootstrap: bootstrap a NJ tree</label>
</vlist>
<format>
<language>perl</language>
<code> " -infile=$value"</code>
</format>
$value entered value of the current parameter
$vdef default value of the current parameter
$variable permanent value of a parameter named variable
defined $value
is false when nothing is entered by the user. This is useful to distinguish a zero value from a non entered
value for integers (cf B parameter of Blast).
$value == $vdef
means that the user did not change the
default value.
lib/evaluation.pl) in order to protect
the name space of the interface itself
Additionals notes:
<paragraph>
<name>fastpw</name>
<prompt>Fast Pairwise Alignments parameters</prompt>
<precond>
<language>perl</language>
<code>($quicktree eq "fast")</code>
</precond>
<group>2</group>
<comment>
<value>These similarity scores calculation</value>
</comment>
<parameters>
.. list of parameters ..
</parameters>
</paragraph>
The order of this list is significant: parameters of this group will be presented in such order in the HTML form.
xxx-simple.html for a program called xxx; there is no Paragraph at this level,
xxx.html for a program called xxx.
<parameter ismandatory="1" issimple="1" type="Sequence">
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE pise SYSTEM "/local/gensoft/inst/Pise/5.a/Parser/pise.dtd" [
<!ENTITY emboss_init SYSTEM "/local/gensoft/inst/Pise/5.a/Xml/emboss.xml">
]>
...
&emboss_init;
This will include the file named emboss.xml which may
contain initialization code.
A parameter name ($quicktree in the following example) is like a variable name that can be used in the attributes containing code (format, ctrl, precond); example:
<precond>
<language>perl</language>
<code>($quicktree eq "fast")</code>
</precond>
<parameter type="Switch">
<name>use_threshold</name>
<attributes>
<prompt>Use Threshold parsimony (T)</prompt>
<format>
<language>perl</language>
<code>($value)? "T\\n$threshold\\n" : ""</code>
</format>
<vdef><value>0</value></vdef>
<group>3</group>
<paramfile>params</paramfile>
</attributes>
</parameter>
This means that, if the use_threshold parameter is on, and the value for $threshold is, say 10, the paramfile "params" will contain
these 2 lines:
T
10
when using paramfile, the group attribute defines the order of the parameter in the file, not on the command line.
<parameter ismandatory="1" iscommand="1" type="Excl">
<name>molphy</name>
<attributes>
<prompt>Program</prompt>
<format>
<language>perl</language>
<code> "$value" </code>
</format>
<vdef><value>nucml</value></vdef>
<group>0</group>
<vlist>
<value>protml</value>
<label>protml</label>
<value>nucml</value>
<label>nucml</label>
<value>njdist</value>
<label>njdist</label>
</vlist>
</attributes>
</parameter>
There can be only one such parameter. It's name stands for the name of all the program files (here : molphy.def, molphy.pl, molphy.html, ...).
<parameter type="Excl">
<name>database</name>
<attributes>
<group>2</group>
</attributes>
</parameter>
<parameter type="Sequence">
<name>query></name>
<attributes>
<group>3</group>
</attributes>
</parameter>
according to the values entered by the user, the generated Unix command will be:
% blast gb seq
clustalw.def:
<name>aligfile</name>
<attributes>
<filenames>*.aln *.gde</filenames>
<pipe>
<pipetype>readseq_ok_alig</pipetype>
<language>perl</language>
<code>1</code>
</pipe>
</attributes>
</parameter>
dnadist.def:
<parameter ismandatory="1" issimple="1" type="Sequence">
<name>infile</name>
<attributes>
<prompt>Alignement File</prompt>
<format>
<language>perl</language>
<code>"ln -s $infile infile; "</code>
</format>
<group>-10</group>
<seqfmt>
<value>12</value>
</seqfmt>
<pipe>
<pipetype>readseq_ok_alig</pipetype>
<language>perl</language>
<code>1</code>
</pipe>
</attributes>
</parameter>
% make connect
from the Pise directory. This run the Maker/make-connections.pl generator, which updates the PerlDef/pipeins perl definition file, used by the CGI to generate menus in the results form.
<parameter ismandatory="1" issimple="1" type="Sequence">
<name>query</name>
<attributes>
<prompt>Sequences File</prompt>
<seqfmt>
<value>8</value>
<value>5</value>
</seqfmt>
</attributes>
</parameter>
The values for the seqfmt attribute are the
readseq codes. Code 100 stands for the Clustalw format.
Pise/bioperl
Pise/Bioperl modules (http://www.bioperl.org).
(note that you don't need to install Pise to use these modules)
Pise/SeWeR
Pise/SeWer GUI (still experimental!!).
make sewercat CATEGORY=nucleic SEWER_FILE=SeWer/nucleicacid.htm
make sewerprog PROGRAM=program SEWER_FILE=SeWer/xxx.htm
(xxx according to the category you think best)
Pise/Biopython package
A Pise/Biopython API: this package enables to run Pise jobs from a
python program.
Example:
The following example show how to run a toppred
analysis on a Biopython SeqRecord instance:
from Pise import PiseFactory
import Bio.Fasta
import sys
factory = PiseFactory(email='user@domain')
program = factory.program("toppred",
graph_output=1,
profile_format="ps")
handle = open(sys.argv[1])
it = Bio.Fasta.Iterator(handle, Bio.Fasta.SequenceParser())
seq = it.next()
# for Sequence parameters, you can either provide:
# a Seq, or SeqRecord instance, a file,or a string
job = program.run(query=seq)
if job.error():
print job.error_message()
else:
print "url of the job: " + job.jobid()
print job.stdout()
print "Results: ", job.get_results()
psfile = job.save('.ps')
print "PostScript file saved in: ", psfile
from Pise import PiseFactory
from Bio.Emboss.Primer import PrimerSearchParser
import sys
parser = PrimerSearchParser()
factory = PiseFactory()
primersearch = factory.program('primersearch',
sequences = sys.argv[1],
primers = sys.argv[2])
job=primersearch.run()
if job.error():
print "Error: " + job.error_message()
else:
handle = job.fh('.out')
primer_record = parser.parse(handle)
for key in primer_record.amplifiers.keys():
for a in primer_record.amplifiers[key]:
print "Length: ", a.length
print "Info: ", a.hit_info
handle.close()
Download:
ftp://ftp.pasteur.fr/pub/GenSoft/unix/misc/Pise/Pise-python-5.a.tar.gz.
G-Pipe
G-Pipe is a graphical pipeline generator that allows the definition of
pipelines, and parameterisation of its component methods using Pise
web interfaces. The entire analysis protocol is stored in XML and a
complete bioinformatic experiment (linked set of methods and
parameters) can hence be reproduced or shared among users. A Perl
macro making use of Pise/Bioperl and implementing the pipeline can
also be downloaded (for developers). You can try it here: http://if-web1.imb.uq.edu.au/Pise/5.a/gpipe.html.
a.garcia@imb.uq.edu.au)
Samuel Thoraval (samuel.thoraval@librophyt.com)
ftp://ftp.pasteur.fr/pub/GenSoft/unix/misc/Pise/G-Pipe.tar.gz.
PiseWorkflow for Python
The G-pipe PiseWorkflow.pm bioperl component has been ported to Python by Pierre Tuffery. You can find it on the Pise ftp site in the (pise-python distribution).
from PiseWorkflow import *
from Pise import PiseFactory
import Bio.Clustalw
import sys
alig = Bio.Clustalw.parse_file(sys.argv[1])
factory = PiseFactory()
dnapars = factory.program('dnapars', infile=alig, print_treefile=True)
drawtree = factory.program('drawtree')
wf = PiseWorkflow()
wf.addpipe(method=dnapars, tomethod=drawtree, pipetype="phylip_tree")
wf.run()
Examples can be found in the python examples file.
EMBOSS XML files are distributed with the standard Pise distribution. There are also in a separate file: ftp://ftp.pasteur.fr/pub/GenSoft/unix/misc/Pise/emboss_xml_files.tar.gz.
In case of problem, you may try one of the ftp mirrors.
PBS variable in the
lib/web.pl file should be set to 1 (defautl). If not,
don't forget to set hits variable to 0.
./src/include/server_limits.h:
#define NO_SPOOL_OUTPUT 1 /* User output in home directory,not spool */
This program is free software; you can redistribute it and/or modify it under the terms of the General Public Licence as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Send XML definition files you would like to be added in this repository to: pise@pasteur.fr.
lib/web.pl
file and the required packages.
$path variable in the
lib/web.pl script: is the program accessible in this PATH?
Can't locate Pasteur/Email.pm in @INC (...)Why is that?
$PASTEUR variable in the
lib/web.pl script: it should be set to 0.
Xml/protdbs.xml and
Xml/nucdbs.xml files.
Makefile.global file.
make applis or make install_applis, you may have to do a make connect.
PLPLOT_LIB variable?
Xml/emboss.xml:
<name>init</name>
<attributes>
<format>
<language>perl</language>
<code> "PLPLOT_LIB=/your/path/to/EMBOSS; export PLPLOT_LIB; " </code>
</format>
<group>-10</group>
</attributes>
</parameter>
false command:
% make PROGRAM=clustalw
[...]
PISEDIR=/local/lib/Pise/5.a; export PISEDIR ; \
VERSION=5.a; export VERSION ; \
false -e -V ./Xml/clustalw.xml | ./Parser/runparser.pl > PerlDef/clustalw.pm
no element found at line 1, column 0, byte 0 at
[...]
make: Fatal error: Command failed for target `PerlDef/clustalw.pm'
Why is that?
configure command as replaced an
uninstalled command by false. Have you installed the rxp
prerequired package? (see). If
not, don't forget to rerun configure after installation.
rxp:
% make PROGRAM=clustalw
[...]
PISEDIR=/local/lib/Pise/5.a; export PISEDIR ; \
VERSION=5.a; export VERSION ; \
/usr/local/bin/rxp -V ./Xml/clustalw.xml | ./Parser/runparser.pl > PerlDef/clustalw.pm
Error: Document ends too soon
in unnamed entity at line 1 char 1 of
file:///local/lib/Pise/5.a/Xml/clustalw.xml
Why is that?
-e option in order for the expansion of XML entities
to be performed.
See rxp.
You should not have to rerun configure.
gcc -g -O2 -Wall -Wshadow -c -o grepseq.o grepseq.c grepseq.c:21: error: conflicting types for `sys_errlist' /usr/include/bits/sys_errlist.h:28: error: previous declaration of `sys_errlist'Just comment the line:
extern char *sys_errlist[];==>
/* extern char *sys_errlist[]; */into the C source files (e.g: grepseq.c, fmtseq.c, ...).
foobar in the file barfoo. When I try to make the interface, Ím getting
a message: Can't locate object method "new" via package "barfoo" at ./Maker/make-html.pl line 20.. What's going on?
command XML element and the
XML file filename should be the same.
do.analysis. When I try to make the interface, Ím getting
a message: Can't locate object method "new" via package "do.analysis" at.... What's going on?
#
BATCH comments in the Maker/make-cgi.pl script.
} else {
# BATCH: this may need to be redefined
print "
print SCRIPT \"system(\\\"\$actual_parameters\\\");\\n\";
";
Scripts directory.
DONT_EMAIL_RESULTS variable in the
lib/web.pl file.
eval. Don't forget to put quotes ("") if you want it as a litteral value, particularily for values containing perl operators (e.g: molphy.results).
PBS variable in the
lib/web.pl file. It should be set to 0 if you do not have
PBS installed (PBS: Portable Batch System).
pise@pasteur.fr: this is the address to use for installation problems.
pise-users@pasteur.fr
To subscribe, send a message to sympa@pasteur.fr, with:
subscribe pise-users Firstname Lastnamein the body of the message. Don't worry if the wellcome message subject is in french, the discussions will be in english :-)
sympa@pasteur.fr, with:
unsubscribe pise-usersThe email for unsubscribing has to be he same as the one used for subscribing.
Many thanks also to Stéphane Bortzmeyer, Daniel Azuelos, Christophe Wolfhugel and Frédéric Chauveau for the discussions about the security and synchronization issues and to all the users that have tested the interface.
Many thanks as well to the persons who have helped for the installation steps and who have given a lot of feedback: Alan Bleasby, Leonardo Marino-Ramirez, Katja Schuerer, Nicolas Joly and Burkhard Linke.
Several colleagues have help building the XML definition files over the years: Katja Schuerer, Nicolas Joly, Bertrand Neron, Eric Deveaud, Corinne Maufrais, Bernard Caudron, Thierry Rose.
Pierre Tuffery, François Moreews, Cynthia Alland and Yan Wong have built a whole integrated Web portal based on a Pise-like DTD, re-developped in Python. Their work is a rich source of inspiration, ideas and even source code for Mobyle, the next version of Pise.
Bertrand Neron is now the full-time co-developer of Mobyle. Thanks to him for his creative and very professional participation to the project.