|
Version 2.1 (April 1995)
NOTE: most of the information provided in the users manual and the reference manual is not really nescessary until you want to write your own script or you download the ASC package to run your own version.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ USER MANUAL for the program ASC / GM Version 2.14 (April 1995/August 2001) Introduction ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ LICENSE AGREEMENT When using the package ASC/GM the following conditions are accepted. The program package ASC/GM will be distributed by the author Frank Eisenhaber free for academic use. The detailed conditions are listed in the header of any source code file. Commercial users will be given special contracts. Please cite the following references when making use of this program : 1) Frank Eisenhaber & Patrick Argos "Improved Strategy in Analytic Surface Calculation for Molecular Systems: Handling of Singularities and Computational Efficiency" Journal of Computational Chemistry, volume 14, N11, pp.1272-1280 (1993) 2) Frank Eisenhaber, Philip Lijnzaad, Patrick Argos, Chris Sander & Michael Scharf "The Double Cube Lattice Method: Efficient Approaches to Numerical Integration of Surface Area and Volume and to Dot Surface Contouring of Molecular Assemblies" Journal of Computational Chemistry, volume 16, N3, pp.273-284 (1995) The author made his best to avoid program bugs and algorithmic errors. He will not accept any responsibility for any losses or disadvantages directly or indirectly caused by the use of the program. The program is thought for a professional user aimed at solving various tasks in context with surface of volume calculations. In the case of user-specific wishes, problems, obvious errors, or strange behaviour of the program, please contact the author via Dr. Frank Eisenhaber IMP (Research Institute of Molecular Pathology) Dr. Bohr Gasse 7 A-1030 Vienna Austria Frank.Eisenhaber@imp.ac.at ACKNOWLEDGEMENTS To Philip Lijnzaad, Eugene Demchuk, Ruben Abagyan, Maxim Totrov, Dima Kuznetsov and Erik van Heyningen for suggestions and discussion. ******************************************************************************* INTRODUCTION The program package ASC / GM is designed for molecular-mechanical calculations in conjunction with surface computations. Version 2.1 has the following options: 1) calculation of the surface of a set of intersecting spheres via the new analytical method (the van-der-Waals surface or the solvent-accessible surface with any probe radius) 2) numerical determination of the surface via the double cube lattice method as well as the calculation of volume and of dot surfaces 3) computation of surface energies and hydrophilic/hydrophobic surface for ensembles of molecules and their constituents The program is equipped with a command interpreter for a C-like program language. For each command on-line help can be obtained (see file manual.lib). The program writes a protocol at the location --> workdir() which can be analyzed after the session visually (and also by programs). The filename of the protocol file is formed by default with the execution time of the program. The program had been tested on DEC-stations (ULTRIX and OSF1) and on SGI-computers (IRIX and IRIX64). ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Call asc -h in your shell to see the commandline options. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ At the beginning of execution the program tries to read the environment variables : workdir directory for result and protocol files objdir directory for object (e.g. PDB) files libdir directory for libraries commdir directory for command scripts prot_file name of a possible protocol file comm_file name of a possible first command script It is not a must to define these names. Most of them may be changed also from inside the program interactively or in command scripts. See in the refence manual --> workdir, commdir, libdir, objdir, ch_env. Some values may be influenced also by command line options. Throughout the program, file names are recognized as absolute locations if they start with (in UNIX) "/" or ".". In all other cases, the file name is understood relative to workdir, commdir, i libdir, or objdir. The preference of the definition of this file is as following: (1) Command line definition e.g. with options -p (-np), -c etc. (2) If there is no command line defintion, the program tries to read the environment variables. (3) If there are no definitions in accordance with (1) or (2), the program takes default values as defined in the small header file "system.h". Please ensure that the protocol file name, the command script directory, and the library directory are completely defined by one of the three means to ensure regular functioning of the program. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ EXAMPLE of a command script (or an interactive conversation with asc): include "std.def" # read standard definitions ch_env OBJDIR "/data/pdb/" # change objdir to PDB-location r_pdb "5pti.pdb", heavy, _nohyd # read heavy atoms in 5pti without H-at. sf_set we92 # surface parameter set "we92" time 1 # monitor cpu-time asc # surface - analytically sf_val asc full # results of surface calculation nsc 600 # surface - numerically for >=600 dots sfdiff 1. # differences per atom in surface # areas # calculated in both ways larger than # 1 sq.Angstrem quit # finish ASC Example of input commands r_pdb "1crn.brk" r_msf "1crn.msf", we92 r_msf "1crn_sfty.msf", "sfmcla.sfty" r_xyzr "1crn.xyzr" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ***************************** * * * C-like COMMAND LANGUAGE * * * ***************************** LEXICAL STRUCTURE The shell of ASC/GM analyzes command lines (<=256 letters finished by a non-escaped new-line outside of quotes). Generally, quotes (single and double) and the escape character \ (backslash) remove the special meaning of some characters (as in C-shell or C). Each line may contain a precompilation statement (see manual.lib) include, source, define, alias, undef, unalias, and chalias, or one or several commands delimited by semicolons (outside quotes, non-escaped and outside of parentheses). Commands may be grouped by curly braces {}. Any identifiers should not be longer than 11 = MAXBEZ-1 letters; the name may consist of uppercase and lowercase letters, underscores and digits, but starting with a letter or underscore. Commentaries are C-like /* ... */ or the rest of line after # (the latter only in command scripts). Commands/functions are recognized by their command word. They have normally two effects - one during execution and a second one with their return value (can be used in expressions). Outside expressions, the syntax may be very simplified (e.g. the command body may not be enclosed in parentheses, only the commas after expressions followed by non-white space are necessary). Example time 1 # activate time monitoring but if (time()) { ... } # ask for action if time is monitored The commands may be invoked by using their first letters only. For example, q, qu, qui are equivalent to quit, if their is no ambiguity to other commands. But in such cases, the program informs the user about the set of similar commands. CONTROL STRUCTURES The if-else-statement may have the following form if { command; command; ... } else { command; command; ... } the else-component being optional. The control word may be followed by a single executable command instead of a group of commands in braces. Conditional pre- compilation is possible, e.g. for (i=1; i<< >> 6 < <= >= > 7 == != 8 & 9 ^ 10 | 11 && 12 || 13 ?: Operators of level 2 should not be used multiply (except !~+-*) and mixed (except !~+-). In assingments ("=" statements), type conversions are carried out without warning. The equality of pointer levels at both sides is not checked, and the control is on behalf of the user. The decrement and increment operators may be used only directly for identifiers and arrays but not in other context: EXAMPLES: --i; i++; ++a[9]; b[77]--; *p++ are allowed (*p)-- is not allowed (application on parenthesized expression) Two non-C string operations are possible : c = "Hallo"; copies the string Hallo into the location c (c must be a pointer to character and point into an array of characters, i.e. the commands char let[200]; char *c; c = &let[0]; had been invoked before). The command echo c // ""; returns Hallo on the screen. The command (// in level 4 of operation preferences) echo c // " , my darling !"; echoes Hallo, my darling ! (string concatenation); at the same time, the whole string is now written into the character array beginning with the location c. echo c // "",", my darling !"; echoes the same string without writing it into location c. The C-typical built-in-functions sin, cos, tan, asin, acos, atan, atan2, sinh, cosh, tanh, exp, log, log10, pow, sqrt, ceil, floor, and fabs can be used. The function m_pi() returns the value of pi as well as the definition PI. All commands can be used inside expressions as functions (see manual.lib for full syntax and the description of return values). ATOM SETS It is often of interset to work only with a subset of atoms. Functions with molecular-mechanic action (as asc, nsc_1, sfdiff) operate over the set of activated atoms (--> active_at). Descriptive functions (e.g. w_pdb, w_msf, w_xyzr, sf_val, listat, sfatom, ...) use the subset of selected atoms (--> select_at). During reading of objects the set of all atoms is formed. The newly added atoms are by default also included into the set of activated and selected atoms.