July, 1993
Rick Westerman
westerm at aclcb.purdue.edu
How long have we had MSF (multiple sequence format) files within
the GCG package? Two or three years by now. And so why do I have to keep
telling my users over and over that if they wish to use MSF files they
must append "{*}" to the end of the file name? Even experienced users
seem to forget. Sigh.
I finally have gotten tired enough of the above problem that I modified
the GCG package. Now my users no longer need to append the "{*}" to their
MSF files. In other words, instead of having to do:
$ pretty pileup.msf{*}
they can now do:
$ pretty pileup.msf
additionally, they can still use the "{*}" or "{sequence}" forms. The
modification effects all GCG programs because it changes one of the
base routines -- NEXTFILE.
The downside of the modification is that any file that ends with ".msf"
is considered to be a MSF file. To implement the modification, change your
directory to where you keep modified GCG source code and:
1) $ GCGSupport
2) $ copy GENLIB:NEXTFILE.FOR []
3) Edit NEXTFILE.FOR and put in the changes below.
4) $ FORTRAN NEXTFILE.FOR
5) $ ToGenLib NEXTFILE.OBJ
6) $ MakeShare
7) If you have shared libraries installed,
$ @GenCom:GCGIMAGE REPLACE
If you wish to test out the modification before installing it, I
suggest that after step #4, you do:
4A) $ library/create test.olb nextfile.obj
4B) $ copy GENSOURCE:PRETTY.FOR []
4C) $ fortran PRETTY.FOR
4C) $ genlink pretty.obj test.olb
4D) $ run pretty
This runs the pretty program with the modified code
While I and my users have tested this code, there are no guarantees. Use
at your own risk.
The source code modifications to NEXTFILE are:
1) Change the line:
Character WildName(*), ThisFName(*)
To:
Character WName(*), ThisFName(*), WildName(256)
Integer StrConcat, RPW
2) After the line:
Integer StrFind
Add the following:
Call StrCopy(WildName,WName)
If (((StrFind('.MSF',WildName).gt.1) .or.
& (StrFind('.msf',WildName).gt.1) .or.
& (StrFind('.Msf',WildName).gt.1)) .and.
& (StrFind('{',WildName).eq.0))
& RPW = StrConcat(WildName,'{*}')
3) Make sure the "&"s in the above are in column 6. Add comments as
desired. That's all there is to it. Basically, whenever the program
sees a file that ends in ".MSF", ".msf", or ".Msf" and there is
no "{" in the file name, then "{*}" is appended to the file name.
-- Rick
Rick Westerman System Manager of the AIDS Center Laboratory
westerm at aclcb.purdue.edu for Computational Biochemistry (ACLCB), BCHM
Phone: (317) 494-0505 bldg., Purdue University, W. Lafayette, IN 47907
FAX: (317) 494-7897