Dear Grasp User,
Version 1.2 has not yet been fully documented, however, rather than
delay further, i decided to release the program as is. For one thing,
as described below, many of the improvements do not require much
additional description. plus, the release notes below contain much of
the essentials on this update. There are alternative documents
available in rtf and word format from Kim Andersen, who has nicely
formatted the original manual so that it actually looks organized.
Thanks Kim!
A brief probably incomplete list of improvements in the program:
Also, there were considerable problems porting to the 5.2 version of the operating system on the SGI. these seem to have been overcome, though somewhat unsatisfactorily in my opinion. people had complained that Grasp ran slowly under 5.2. i was never able to reproduce this on our machines. hopefully, however, the fully 5.2 compiled version will not have this problem. we will also provide a 4.0.x version for those who think SGI operating systems are getting worse not better. (grasp_1.2.5 for 5.x and grasp_1.2.4 for 4.x)
There are more than one hundred names on the current mailing list, which is only the ones i could safely extract from my disk-filling mailbox. This might suggest that a users newsgroup might be a good idea, both for me to find out what people are using Grasp for and for users to discuss problems, anger, angst, whatever. if there is interest let me know.
Though it may be obvious, this update is free. the original 1.0 version of Grasp in 1992 promised "at least two free updates" and 1.1 promised "at least one free update", and so this fulfulls both. however, it is my intention to continue to provide free "meaningful" upgrades for as long as it is in my power to do so. i still intend to include many of the features in the original "plan" for Grasp in the program. what has slowed development has to a large extent been the limited interface tools provided by SGI. as detailed below, we have now developed our own such tools and i predict this will be a real spur to program functionality, as well as providing new avenues to explore what a modelling program should really be like (i.e. is there no drag and drop functionality in modelling programs?).
Finally, Isabelle Cretegny, who joined the lab but a little over a year ago, has been the driving force behind the interface development and this release is as much hers as mine. She will be taking over the responsibility for email support of Grasp in the coming months as well as continuing her herculean efforts to make Grasp a more user-friendly program. I shall be trying to actually deliver some of the functionality i've always promised!
Anthony Nicholls
The predominant changes to the program from 1.1 to 1.2 are systematic, i.e. although there is new functionality the major changes are internal. for instance, two major program advances are dynamic memory and a panel interface. the first removes limits on the size of molecules or surfaces, except for how much memory/swop space you can afford. the second should allow new users to more easily get to use Grasp, and also provide more functional information to users already adept at Grasps byzantine ways. (NB that the old menu methods are all still operative).
Panels
the construction of a panel interface has been a major undertaking and
one which has been entirely coded by Isabelle Cretegny. Isabelle has
performed a major feat of program engineering, not only by her
interface design but by writing it in C and grafting this onto my
unruly fortran. the work is far from finished however as less than half
of Grasp functionality is so far "panelized". the panels are
GL based, as opposed to mosaic or X, partly because of Isabelle's
experience, and partly because the latter are so ugly. A drawback of
our approach is probably that our panels are not as functionally robust
as they might be, however I think they are good enough for people to
try and give us some feedback on. help is provided within each window
if one has the file "help.txt" in ones Grasp data directory
(/data/help.txt on the Grasp server).
A few words on usage. typically buttons light up when the mouse rests upon them. if text can be entered a red line appears. if neither happens try taking the mouse off and back onto the panel again. some text windows require an enter after the text to cement the entry, some (most) do not. windows can be shrunk/enlarged to any size and retain functionality (neat, neat, neat). they can of course be iconized. use either the left or right mouse to make things happen. the middle button is being reserved for a more efficient help system. the main panel can be popped open from the main menu or by having the line "panels=on" in ones init_grasp file.
DELPHI
one major limitation in the present panels is that actions through
such are not recorded in the history file. this limitation will be
addressed with the highest priority. On the positive side, there is an
interface to the program DelPhi, from which much of the inspiration for
Grasp came. by adding the name of a DelPhi version to your init_grasp
file, DelPhi can be driven from within Grasp to provide high resolution
potentials within a chosen domain of a protein, compared to Grasp's low
resolution potential maps. example line in init_grasp:
DELPHI=/usr/people/nicholls/bin/delphi
Dynamic Memory
atoms: the program should take any number of atoms but is only set to
read in 25,000 at a time. but you can alter this default by putting a
line which reads:
MAXIMUMATOMSPERPDB=n
in your init_grasp defaults file, where you set n > 25,000 obviously. secondly you can reduce the memory requirements for REALLY large files by changing a typical file header like:
GRASP PDB FILE
to
GRASP ATOM FILE
in the latter case no bonds are calculated or shown.
Surfaces:
To define a higher resolution go to the menu "Set Parameters:
system parameters: minumum surfacing scale" and enter a value
larger than the default value one gets when a surface is constructed
with default resolution. this forces the program to define larger grids
for the surfacing. beware that this can be memory expensive. if more
than 25,000 vertices are needed per surface build you have to ALSO set
a parameter in your init_grasp file like so:
VERTEXMAXIMUMPERBUILD=n
where n > 25,000 (Possible bug: deleting surfaces. i'm still waiting to reproduce this reliably)
Secondary Structure:
residues can be "assigned" to a structural type via the line
commands: alt(s=b),rn=(n,m) assignes beta sheet to residues
n-m, alt(s=r) to assign random coil and alt(s=h)
for helix. once assigned one can use these in subset selection, e.g.
c=2,r=bet colors red all beta sheet atoms. similarly r=hel,
r=ran for the obvious.
State Save
this saves all variables in the current grasp session for later
start-up, which is then instant. one problem is sometimes the size of
these files (which can often be dramatically compressed via standard
system calls). access via usual read/write menus.
Antialiasing.
those making critial pictures for publication might like to try the
new feature under "miscellaneous" entitled "antialiasing
(polygons) (one shot)". this enacts a mulitpass filtering which
sharpens up the edges of solids. If one then writes out an rgb file
from within grasp IMMEDIATELY after this operation is run it will
repeat and write out a sharpened rgb file. WARNING! once you are used
to antialiased images it is hard to go back.
Recentering.
for those hardy souls trying to align two objects in space it may come
as some comfort to know that one can now (via control J) change the
center of a formal subset as well as the world center.
DOTS on surfaces/ transparent CPK atoms
Grasp dot surfaces where never very useful as the dot density was
always too low. this can be increased by factors of 2 or 8 via the
system parameter menu. as an alternative to molecular surfaces try
atoms in full sphere mode, but with a transparency factor.
External File control.
The miscellaneous menu also contains a facility to have Grasp
"look" for an external file, and act out an internal macro
when it sees it. this queuing allows one to have Grasp act as a slave
to another program via external files. try it for more details.
Labelling.
An often repeated request. Under "Mouse Function" is the
option to assign one of the mouse buttons to a labelling funtion.
labelling is treated as an "object" with regards hiding or
viewing menus. The text automatically assigned is that which would be
sent to the screen from a "pick", though users can also enter
their own. not completed yet, but there in case it is useful as-is.
Distance Lines/ Surfaces
One can now have grasp display lines between points labelled by the
length of this line. NB this updates if atoms at the end of lines are
moved. One can also measure surface distance/angles/ torsions now.
History File redirects.
Grasp by default writes history files to the current directory. since
it writes down every rotation/translation this can be a lot of lines.
if you are running one a remote disk this means a lot of net traffic/
requests for file info. this can bring rotations to a crawl even if the
machine fast. solution: put a line like:
HISTORYDIRECTORY=/usr/people/me/history/
and create a directory history for the history files to be store
LOCALLY. (or write them to scratch or temp...)
Bond Colors
The file bond.color in the data directory on the grasp server
illustrates how this file can control default bond colors. note that
this file must be in your CURRENT directory to be effective, i.e. it
can NOT be left in the grasp data directory.
Proteus
This is a program marilyn gunner has been developing to add protons
rapidly and "correctly" without using molecular dynamics. it
has much functionality not yet included in the current Grasp which will
be incorporated at a later date. one is refered to the directory
/proteus and the files within for further details.
MORASS
Grasp supports a varient of the standard interaction pair file for use
with the NMR structure refinement program MORASS. bruce luxon
(University of Texas at Galveston) was responsible for pushing this
through, (thanks bruce!). for more info on MORASS try website http://www.nmr.utmb.edu. An example
of the file format is given below:
GRASP Rij %THE DIFFERENCE PAIR-WISE INPUT FILE
FORMAT = 4 H6 CYT A 10 H8 ABP A 12 2 0.744693 HC42 ABP A 12 HC44 ABP A 12 5 1.424259 HC34 ABP A 12 HC40 ABP A 12 5 1.326961
the difference with other formats is that this is atom based but simpler than the HINT format.
WINDOW PARAMETERS.
use the following init_grasp commands to customize your window:
WINDOWWIDTH=n
WINDOWHEIGHT=m
WINDOWPOSITION=i,j
(bug: if the window is sized greater than the usual 800 by 800) there
seems to be a slight distortion in the view which is only
"repaired" by effecting a window redraw..i.e. push and pop
the window once.)
Worms:
Grasp uses a b-spline to calculate worms. this leads to a smooth worm
which is not necessarily passing through alpha carbons. it has been
brought to my attention that this is unfortunate when one wants to draw
side chain bonds and a worm together, i.e the CB-CA bond
"hangs" in mid-air. the worm parameter menu now contains a
"fix" to this which allows a temporary displacement of the CA
end of this bond to the worm itself.
Note: v1.3.6 is similar in almost all respects to v1.2.5 except that this version doesn't crash on SGI 6.X operating systems. This includes the IRIS INDIGO IMPACTs and the O2 machines.