This version is based directly on RasMol 2.7.1, on RasMol version 2.6_CIF.2, on RasMol version 2.6x1, on RasMol version 2.6.4, and RasMol 2.5-ucb and 2.6-ucb. Please read the file NOTICE for important notices which apply to this package. If you are not going to make changes to RasMol, you are not only permitted to freely make copies and distribute them, you are encouraged to do so, provided you do the following:
If you would like to use major pieces of RasMol in some other program, make modifications to RasMol, or in some other way make what a lawyer would call a "derived work", you are not only permitted to do so, you are encouraged to do so. In addition to the things we discussed above, please do the following:
This version of RasMol is not in the public domain, but it is given freely to the community in the hopes of advancing science. If you make changes, please make them in a responsible manner, and please offer us the opportunity to include those changes in future versions of RasMol.
[28/08/00] HJB all Updates to comment, resources, etc for preliminary testing release. [21/08/00] HJB abstree.c, abstree.h Change type Atom to RAtom to avoid conflicts with X. Offset all uses of xorg, yorg, zorg databse entried with fxorg, fyorg, fzorg database entries for UCB bond rotation. Change char* strings to unsigned char* strings to allow for extra UCB Angstrom and degree symbols. [21/08/00] HJB applemac.c Change from use of toolbar settings to use of RotMode. Add new "Settings" menu. [21/08/00] HJB cmndline.c Adapt GSG code from UCB mods for mouse moves, to make the moves control bond rotation, molecule rotation, or world rotation, but change from use of toolbar settings to use of RotMode [21/08/00] HJB command.c Add new error message (ErrNoBond) for "Bond for rotation not picked". Add new parameter for alternate conformer bond waist radius. Adapt to fxorg, etc. offsets. Adapt GSG UCB pick bond tool bar button to a command line command. Add show centre, show rotation, show translation and show zoom commands. Add bond, unbond commands. Add rotate bond, rotate molecule, rotate all command. [21/08/00] HJB command.h Add space after "__huge" [21/08/00] HJB font.h Adapt GSG UCB mods characters for Angstrom and degree to be additional symbols, not repalcements. [21/08/00] HJB graphics.h Add new redraw flag, "RFRotBond" to signal that a bond rotation is involved, and add it to RFRotate, RFApply and RFInitial. Add ZRange. Move main X window definitions into this header to facilitate toolbar development. [21/08/00] HJB infile.c, infile.h Change all Atom types to RAtom. Add xorg, etc. offsets on all coordinate calauclations. Move GroupPool definition to header. [21/08/00] HJB molecule.h and all referring files Change type Atom to RAtom to avoid conflicts with X. Add fxorg, fyorg, fzorg database entries for UCB bond rotation offsets. [21/08/00] HJB multiple.c Remove all use of the toolbar, converting to menu. Detect last element of file name string. Update VarList for current variables. Change to ANSI C prototypes. Move revised DrawMoleculeList from GSG's UCB toolbar.c into multiple.c, but drop list only into MolName. [21/08/00] HJB wbrotate.c, wbrotate.h Remove all use of the toolbar, converting to menu. Change to ANSI C prototypes. Revise bond and world rotation logic to use full rotation, nor increment, for improved accuracy. Change Bond rotation logic to preserve nesting of bonds without changing the original coordinates. Add database of selected bonds and logic to add bonds on the fly and remove them. [21/08/00] HJB vector.c, vector.h Change to ANSI C prototypes. Replace Vector and Matrix with their array definitions for clarity. [27/02/00] HJB transfor.c, transfor.h Add alternate conformer bond radius to EnableWireFrame [23/02/00] HJB infile.c Fix *- for - typo in XYZ and MOL2 input of coordinates [23/02/00] HJB molecule.c Fix D2O to DOD mapping. Thanks to Brian W. Beck. [23/02/00] HJB pixutils.c New code for alternate conformer bonds. [23/02/00] HJN raswin.c Update WinMail entry to WINAPI [29/01/00] HJB molecule.c Comment out chain by chain reset of bonding to allow for het groups after TER at expense of slower bonding. [29/01/00] HJB mswin31.c Update printer logic for modern windows specs. [29/01/00] HJB rasmac.c Fix reference of monaco font. [15/07/99] HJB (for AR) raswin.c Add check for \r. Thanks for Andrew Raine. [15/07/99] RS raswin.c Add .ML2 and .SY2 extensions for Sybyl and MOL2.
Note: These mods to not reflect the complete source of UCB RasMol. In particular toolbar.h and toolbar.c have not been used in this pass, and the full source of UCB RasMol has not yet been recovered.
[30/11/95] GSG rasmac.c Hide command window. Add help screen menu logic. Add hooks to load multiple molecules. Add toolbar menu to Windows menu. Make mouse moves control bond rotation, molecule rotation or world rotation depending on tool bar button choices. Same for scroll bars. [29/11/95] GSG applemac.c Change default background for printing to white. Hook scroll bar H values to bond angle (BRotValue), molecule rotation angle (DialValue) or world rotation angle (WRotValue) depending on toolbar settings. Hook scroll bar V values to molecule rotation angle (DialValue) or world rotation angle (WRotValue) depending on tool bar settings. Allow file open when less than MAX_MOLECULES molecules. [21/08/00] GSG font.h Add characters for Angstrom and degree as replacements for vertical bar and tilde. [16/11/95] GSG render.c, render.h Add PickBond. Add hooks to draw multiple molecules. Automatically switch to the molecule of any picked atom. Add monitor for picked distance, angle or torsion angle. [14/11/95] GSG transfor.c Add hooks for bond rotation and global rotation. [14/11/95] GSG vector.c, vector.h, wbrotate.c, wbrotate.h New routines introduced with UCB mods to allow for bond rotations and global rotation. [14/11/95] GSG infile.c Add fxorg, fyorg, fxorg for MDL molecule input only. [14/11/95] GSG molecule.c, molecule.h Add fxorg, fyorg, fxorg and list of bonds to atom database for world and bond rotation. [11/11/95] GSG multiple.c, multiple.h New routine introduced with UCB mods to allow for multiple molecules. [10/11/95] GSG tokens.c,tokens.h Add MoleculeTok. [10/11/95] GSG repres.h Add flag for units to Monitors. [09/11/95] GSG command.c, command.h Add hooks for multiple molecules. Log background status to allow default white print background. Add molecule command. [09/11/95] GSG rasmol.c Add initialisation for multiple molecules.
[15/07/99] HJB documentation Add Dunix binaries. Thanks to David Atkinson [06/07/99] HJB all Release 2.7.1 [05/07/99] HJB documentation Cut-off date for Release 2.7.1 documentation changes. [22/06/99] HJB all source Cut-off date for Release 2.7.1 code changes. [22/06/99] HJB command.c Save fact that a data file was loaded inline. Add processing for star command, all new options for bondmode [all | none | not bonded ] [22/06/99] HJB infile.c Update DataFileFormat after autorecognition. [22/06/99] HJB molecule.h Add MarkAtoms to hold new bondmode flags. [22/06/99] HJB pixutils.c, render.c Add code for new star command. [22/06/99] HJB script.c Add logic to write star command output. Report data loaded as CIF or as inline correctly. Warn users that inline data is not being written out. Check inversion of Y-axis on POVRAY3. Thanks to Curt Haltiwanger for suggesting marking non-bonded atoms on wireframe displays. [22/06/99] HJB transfor.c Add code for new star command, new bondmode options. [18/06/99] HJB pixutils.h, pixutils.c Change name of DisplayString to DisplayRasString to avoid a conflict with X libraries. Add FontWid array to hold character widths (FontSize for FS, FontSize/4 +1 + maximum x position for PS). Add FontStroke logic to write cylinders instead of lines when FontStroke is not zero. [18/06/99] HJB render.c Change name of DisplayString to DisplayRasString to avoid a conflict with X libraries. [18/06/99] HJB repres.c When FonstStroke is non-zero, don't offset character color by (ColourMask>>1), to allow room for color adjustments in cylinder drawing. [18/06/99] HJB script.c Add logic to write PS flag for proportional spacing on set fontsize, and logic to write set fontstroke n. [18/06/99] HJB tokens.c, tokens.h Add tokens for BlueTint (BlueTintTok), Brown (BrownTok), FontStroke (FontStrokeTok), FS (FSTok), Gold (GoldTok), Gray or Grey (GrayTok), GreenTint (GreenTintTok), HotPink (HotPinkTok), Pick as an alternative for Picking (PickingTok), Pink (PinkTok), PinkTint (PinktintTok), SeaGreen (SeaGreenTok), SkyBlue (SlyBlueTok), YellowTint (YellowTintTok) [13/06/99] HJB command.c Change processing of load inline command to work from the currently opened script, saving the file position. Accept HEADER and DATA_... as commands in a script, processing that line and all subsequent lines as a data file, unless a prior load inline command was already done [12/06/99] HJB infile.c When processing a PDB file, test for DATA_... until a non-comment, non-blank line is found. Revert to CIF processing if DATA_... is found. [11/06/99] HJB infile.c In PDB format input extract EXPDTA for Info.technique. In CIF format input accept _audit_block_code for the entry ID, _exptl.method, _diffrn_radiation.probe or _diffrn_radiation_probe for Info.technique. Preserve low order bits of coordinates in xtrl, yrtl, ztrl. On PDB output, report Info.technique in EXPDTA and reinsert low-order bits for coordinates. [10/06/99] HJB abstree.c Add code to report coordinates for show selected cordinates [10/06/99] HJB command.c Recognize new commands, picking coordinates, show selected cordinates. Update default title produced by title command. [10/06/99] HJB molecule.h Add new Info fields for date and technique. Extend identcode to 80 columns. Add CRD to Selection enum type. Add prototype for ReviseTitle. [10/06/99] HJB render.h, render.c Add code to report coordinates for picking coordinates, define PickCoord symbol. [10/06/99] HJB tokens.h, tokens.c Add code recognize COORD, COORDS, COORDINATE, COORDINATES for new CoordTok, DATA_... for CIFDataTok, HEADER for HeaderTok [09/06/99] HJB molecule.c Put PDB entry ID and EXPDTA info into canvas title, report EXPDTA data from Info.technique on reading file. [06/06/99] HJB infile.c Restore the origin on PDB and other outputs. [06/06/99] HJB script.c Change script output to include centering and change various coordinate outputs to restore origins the z-axis orientation. [06/06/99] HJB command.c Add command centre [CenX,CenY,CenZ] to center by offsets from centre of gravity. [03/06/99] HJB render.c Remove call to TranslateToCentre, hold centering in CenX, CenY and CenZ, decoupled from dials, add RFRotate to ReDrawFlag on centering. Thanks to Bohdan Schneider for pointing out the problems with centering. [03/06/99] HJB transfor.c Remove TranslateToCentre, remove processing of CenX, CenY and CenZ from dial values, and put it into computation of ptr->x,y,z
[27/04/99] HJB README.html, Changelog.html, INSTALL.html, manual Add navigation links at top and bottom of each page. Add links for gzipped versions of raswin.hlp, rasmol.hlp. Thanks to E. Martz and Kjeld Olesen. [27/04/99] HJB INSTALL.html, manual Replace empty copy of INSTALL.html in doc/, correct embedded html in manual. Thanks to Kurt Giles.
[22/04/99] HJB Announce RasMol 18.104.22.168 on email@example.com, firstname.lastname@example.org, email@example.com [11/04/99] HJB *.c, *.h Update all comment blocks for new version and date [11/04/99] HJB abstree.h Realign Pred... to agree with ...Tok to correct misaligned introduced by HJB (not AM) during merge of 2.6x1 into 2.7.0. [11/04/99] HJB tokens.h Fix definition of IsPredTok [09/04/99] HJB molecule,h Make residue identification case-insensitive.
[30/03/99] HJB all Cleanup and release of version 2.7.0 [23/03/99] HJB abstree.c Add code to select on alternate conformers. Increase accuracy of torsion angle calculation. [23/03/99] HJB command.c, command.h Make InitHelpFile generally available, change to WriteString for reporting CisBondCutOff for use on mac, report models on show selected. [23/03/99] HJB rasmol.c, raswin.c, rasmac.c Add suggestion for help notice to initial text lines. [23/03/99] HJB script.c In order to support mac introduce WriteBuffer and change all fprintf(outFile, ... to WriteBuffer, provide code from fisipl for Ramachandran printer plot. Handle signs of torsion angles. Thanks to F. C. Bernstein. [23/03/99] HJB tokens.h, tokens.c Add RamPrintTok, RPP, RDF, etc., hook POVRAY3 to the new POVray code. [20/03/99] HJB *.h, *.c In general, the RasMol_2.6_CIF.2 version was used as a base and upgraded with the RasMol_2.6.4 changes. The exceptions are below [20/03/99] HJB infile.c Cell parameters are read with the double routine ReadDecValue from 2.6_CIF.2, rather than ReadValue2 from 2.6.4
[15/2/98] AM abstree.c, abstree.h Add PredCisBond, DescribeObj, CalcPhiAngle, CalcPsiAngle, CalcOmegaAngle, shift torsion angle calculations 180 degrees. [15/2/98] AM command.c Add FindCisBonds, CisBondCutOff, show of selected chains, groups, atoms, show and write of phi-psi angles [15/2/98] AM molecule.h, molecule.c Add CIS bond logic [15/2/98] AM rasmol.h, rasmol.c Add USE_FD_SET_TYPE option [15/2/98] AM script.h, script.c Add WritePhiPsiAngles, code for POV-Ray version 3 [15/2/98] AM tokens.h Add CisBondedTok, RamachanTok, CisAngleTok, PhiPsiTok, define PHIPSI, CISANGLE, RAMACHAN, CISBONDED
[8/2/99] RS command.c, rasmol.c, scripts.c, rastxt.c, raswin.c rasmac.c Final fixup and release of version 2.6.4 [27/12/98] RS *.h, *.c Remove all non-ANSI-C prototypes and ensure use of ( void ) for empty argument lists. Upgrade all procedure delcarations. Convert to use of MSWIN. [27/12/98] RS abstree.c Redo torsion angel calculation. [27/12/98] RS applemac.c Convert to Apple's new routine names [27/12/98] RS cmndline.c, cmndline.h New routine for mouse, keyboard, dials [27/12/98] RS command.c, command.h Move routines for mouse, keyboard, dials to cmndline.c. Redo ParseColour. Reorganize command parsing [27/12/98] RS infile.c Change references to MMIO to MMIOLIB. Pass fp and buffer to FetchRecord as argument. Add ReadValue2, ProcessPDBBond, ProcessPDBUnitCell. Fix recognition of END. Use InvalidateCmndline and UnusedArgument. Write MODEL and ENDMDL records when appropriate [27/12/98] RS molecule.c Reorganize FindResNo as a character-oriented search tree Add Cache. [27/12/98] RS rasmac.c Convert to Apple's new routine names [27/12/98] RS rastxt.c New text-only main program [27/12/98] RS repres.c Add LabelTermnii [27/12/98] RS tranfor.c Add TranslateToCentre [27/12/98] RS transfor.h Reorganize the logic defining DefaultAmbient, making the default value 0.4 instead of 0.6, except for E&S, which is still .05. [27/12/98] RS tokens.c New routine for character-oriented search tree for tokens. [01/08/97] RS infile.c Decreased the maximum valid alpha carbon to alpha carbon distance to 4.2 Angstroms from 7.0 Angstroms. Thanks to Kostas Sfyrakis and Harren Jhoti. [15/04/97] RS molecule.c repres.c Fixed a bizarre feature in the OpenVMS compiler that complained about "a=*b" as "=*" operator is an obsoltete form and may not be portable. Special thanks to Remington Stone. [28/11/96] RS rasmol.h rasmol.c Several minor fixes to compile RasMol under VMS. Special thanks to Adam Ralph (and CCP4).
[24/2/99] HJB Release of RasMol_2.6_CIF(Rev 2) at http://www/bernstein-plus-sons.com/software/rasmol and announce to mailing lists. [21/2/99] HJB cif.h Add prototypes of cif_make_handle, cif_read_file, cif_make_file, cif_save_character to avoid compiler warnings [21/2/99] HJB cif_ctonum.c Remove unneeded values.h [21/2/99] HJB cif_ctonum.h Correct prototype [21/2/99] HJB infile.c Add cif_ctonum.h, define LoadCIFMolecule prototype, initialize ch, add return to avoid compiler warnings. [21/2/99] HJB abstree.c, cif.c, cif_ctonum.c, command.c, infile.c, molecule.c Use string_case.h instead of
for IBMPC, VMS and APPLEMAC. [21/2/99] HJB rasmol.h Update version, add some definitions from R. Sayle's 2.6.4 in preparation for 2.7.0. [21/2/99] HJB rasmac.c, rasmol.c, raswin.c Update reported date on startup. [21/2/99] HJB render.c Add cif_fract.h to avoid compiler warnings. [21/2/99] HJB string_case.c Replace garbled version, provide string_case.h. [21/2/99] HJB script.c Initialize first, last, radius, to avoid compiler warnings [21/2/99] HJB transfor.c Initialize min and max to avoid compiler warnings. [10/1/99] HJB Release of RasMol_2.6_CIF(Rev 1) at http://www.bernstein-plus-sons.com/software/rasmol and announce to mmCIF mailing list. [9/1/99] HJB cif.c Change toupper calls to ToUpper calls. [8/1/99] HJB command.c Add argument to CreateMoleculeBonds to force zapping on connect. [8/1/99] HJB infile.c Log requested bonds which cannot be made in NullBonds and report to users, add RightJustify to right-justify residue names, recognize _atom_site_disorder_group for small molecule alternate conformerse, recognize bonds which don't have either atom names or atom numbers. [8/1/99] HJB molecule.c Add argument to CreateMoleculeBonds to force zapping on connect. [8/1/99] HJB molecule.h Add argument to CreateMoleculeBonds to force zapping on connect, add NullBonds to log requested bonds which cannot be made. [8/1/99] HJB mswin31.c Use VERSION to construct window title. [8/1/99] HJB outfile.c Use VERSION to construct Postscript output file header. [8/1/99] HJB rasmac.c Use VERSION to report version on startup. [8/1/99] HJB rasmol.c Use VERSION to report version on startup. [8/1/99] HJB raswin.c Use VERSION to report version on startup. [8/1/99] HJB script.c Use VERSION to construct various output file headers. [8/1/99] HJB x11win.c Use VERSION to construct window title.
[22/12/98] HJB Preliminary release of RasMol_2.6_CIF at http://www.bernstein-plus-sons.com/software/rasmol [19/12/98] HJB command.c correct handling of internal help files under windows, and allow for unix help files on a mac. [18/12/98] HJB Makefile.in, Imakefile Update for CIF support. [09/12/98] HJB infile.c Cummulative changes for fractional coordinates, CIF. [09/12/98] HJB command.c Changes for alt, model labels, colour schemes, CIF. [09/12/98] HJB molecule.h Cummulative changes for fractional coordinates, new colour schemes, CIF. [09/12/98] HJB molecule.c Cummulative changes for fractional coordinates, new colour schemes, CIF. [09/12/98] HJB x11win.c Update comments, menus and version text. [09/12/98] HJB mswin31.c Update comments, output file commentary. [09/12/98] HJB outfile.c Update comments, output file commentary. [09/12/98] HJB script.c Update comments, output file commentary. [09/12/98] HJB rasmol.c Update comments, output file commentary. [04/12/98] HJB pixutils.c Update comments, code to stripe bonds for alternate conformers. [04/12/98] HJB pixutils.h Update comments, protytpes to stripe bonds for alternate conformers. [04/12/98] HJB rasmac.c Update comments, adjust code for current Metrowerks compiler. [04/12/98] HJB raswin.c Update comments, adjust code for current Metrowerks compiler. [04/12/98] HJB tokens.h Update comments, tokens for alt, model colours. [04/12/98] HJB transfor.c Update comments, add code for alt, model colours. [04/12/98] HJB transfor.h Update comments, prototypes for alt, model colours. [23/11/98] HJB abstree.c Add code for %A, %M specifiers, divide u/l case. [22/11/98] HJB cif_fract.c New routine, derived from cif2pdb by H.J. Bernstein and F. C. Bernstein. [22/11/98] HJB cif_fract.h. New header for cif_fact.c. [22/11/98] HJB cif_stx.c New routine, derived from P. Ellis CBFlib parser. [23/11/98] HJB render.c Update comments, add code to stripe bonds for alternate conformers. [23/11/98] HJB repres.c Update comments, add code to stripe bonds for alternate conformers. [09/09/98] HJB cif_ctonum.c New routine, derived from ciftbx by S. R. Hall and H. J. Bernstein. [09/09/98] HJB cif_ctonum.h New header for cif_ctonum.c. [18/08/98] HJB cif.h New header for cif.c, derived from CBFlib by P. Ellis and H. J. Bernstein. [18/08/98] HJB cif.c New routine derived from CBFlib by P. Ellis and H. J. Bernstein. [14/08/98] HJB rasmol.c Added hooks for termio for Linux. These changes are similar to, but not identical to the FreeBSD hooks. See the linux conditionals. -- H. J. Bernstein
The complete version 2 change history is in the directory ChangeLog