In article <5gosup$bc6 at news.u-strasbg.fr>,
pingouin at crystal.u-strasbg.fr (Francois JEANMOUGIN) writes:
> In article <PMR.97Mar19125859 at unst.sanger.ac.uk>,
>pmr at sanger.ac.uk writes:
> [...]
>> As soon as we have the GCG 9.0 source code, the schedule is:
>> Stop, stop, stop. What's that??? Even you, Peter, you don't have
... ... ...
> Regarding the survey we start some times ago on GCG performances,
> we can say that most of sites are running GCG8 because they are waiting
> for EGCG9 before installing GCG9, so that makes 4 months of licensing for
> an unuse software suite...
>
As I already pointed out, there is no need to wait if you don't want to.
All you need is to load in your shared libs path the old v8 libs before
running EGCG programs and turn back to v9 before continuing using GCGv9.
> This is really a bad news,
> Francois.
And since there seems to be some 'demand' for detailed explanations, here
they are:
First, on installation you have the option of leaving an old version
installed too 'just in case', and you are actually advised to keep an old
version around until you are satisfied everything is OK with the new one.
Thus, you start with each version in a separate directory hierarchy. If
you deleted the old one, you'll have to reinstall it in a separate
directory.
Under VMS, the startup procedure installs the shared libraries. This
can also be done so that they are specific to the current GCG being run:
if you run gcgstartup at system boot, then they are installed for all the
system up time. But you can run gcgstartup from genetics.com so that they
are used only for that personal GCG session. This implies removing
GCGSTARTUP from your SYSTARTUP commands, commenting out the line in
GCGSTARTUP that defines "$ InstallImages = 1" and changing GENETICS.COM so
it calls GCGSTARTUP (first option, remember to use correct path).
Under UNIX if you start GCG as
source /some/path/gcg/gcgstartup
source /some/path/gcg/genetics
you don't have to care.
This is what you want: instead of loading GCGSTARTUP at system boot
time, you defer it until the user types 'GCGx' to call GENETICS. And you
do that for both packages, GCGv8 and GCGv9.
Now, when the user starts GCGv9 s/he'll get access to the shared
libraries of version 9 and won't be able to run EGCG. But if s/he starts
GCGv8 the libraries from version 9 are 'unloaded' and the ones from
version 8 are used instead. Now GCGv9 programs won't run, but EGCG will.
If the user types again the command to start GCGv9, v8 libraries are
unloaded and v9 libs used again, EGCG doesn't run and GCGv9 does... and on,
and on as many times as you want.
Hence, all you need is to be able to have both environments, so the
user can switch between them at will. Whenever s/he wants EGCG, s/he
loads v8, and whenever she wants to use GCG, reconfigures for GCGv9
again.
Under UNIX, instead of using the VMS 'install' utility, it plays
with the environment variable LD_LIBRARY_PATH to make it point to where
the shared libraries should be sought: e.g. on GCGv9 it could be
# printenv LD_LIBRARY_PATH
/usr/local/lib:/usr/local/contrib/gcg9/gcgbin/oblib
^^^^
and on GCGv8
# printenv LD_LIBRARY_PATH
/usr/local/lib:/usr/local/contrib/gcg8/gcgbin/oblib
^^^^
depending on the setup, programs will find one or the other libraries.
Since all reduces to shared libraries, all you actually need is the
shared libs directory. All the rest of GCGv8 could be disposed, as long
as the user remembers to change its LD_LIBRARY_PATH env. var. on UNIX
or reinstall the old shared libs on VMS before running any EGCG program
(say, by running a script or command file). You could delete everything
but the gcg8/gcgbin/oblib directory and would setup a script to install
the libs (VMS) or define LD_LIBRARY_PATH (Unix) and that'd be all.
The only caution: you need a way to convert damn %&$°"! new alignments
/files to old dot-gaping convention. The problem arises because new GCG
allows both, '.' and '~' to be used to represent a gap in a sequence, and
EGCG groans at that. The symptons as they were brought up to me where that
PRETTYBOX would refuse to load sequences aligned with PILEUP (v9). After
much trying and misleading some of my poor users, I finally got to it, and
a few minutes ago I wrote this small program to change '~' by '.' (which
is pretty much untested, and maybe perhaps could change something undue
-hypothetically):
- ------------------------------------------------------------------
/*
* todots.c
* Change tildes by dots.
* This hould fix a nasty incompatibility between
* files generated by GCG9 and EGCG8.
*
* Jose R. Valverde EMBnet/CNB 19-Mar-1997
*/
#include <stdio.h>
#include <stdlib.h>
main(argc, argv)
int argc;
char *argv[];
{
FILE *fp1, *fp2;
int ch;
fprintf(stdout, "\nTODOTS changes all the tildes in a file by dots\n");
if (argc != 3) {
fprintf(stderr, "\nUsage: TODOTS infile outfile\n");
/* VMS convention for error codes */
exit(0 | 0x8000000 | 0x10000000);
}
if ((fp1 = fopen(argv[1], "r")) == NULL) {
puts("ERROR - HORROR: Cannot open input file");
exit(2 | 0x8000000 | 0x10000000);
}
if ((fp2 = fopen(argv[2], "w+")) == NULL) {
puts("ERROR - HORROR: Cannot open output file");
exit(2 | 0x8000000 | 0x10000000);
}
while ((ch = getc(fp1)) != EOF) {
if (ch == '~') /* tilde */
putc('.', fp2);
else
putc(ch, fp2);
}
fclose(fp1);
fclose(fp2);
exit(1 | 0x8000000 | 0x10000000);
}
- ---------------------------------------------------------------------
Cut, compile and put in some appropriate place (defining a symbol to run
it if you are in VMS).
I am not aware of any more incompatibilities yet, but if and when they
arise I'll try to fix them up... and let everyone know (if I can).
jr
--
Jose R. Valverde
EMBnet/CNB