RASMOL(1)

okay bestie, welcome to the rasmol glow-up ๐Ÿ’… this is the man page for RASMOL(1) from the General Commands Manual, and it is a whole journey โ€” flags, formats, legal notices, and then the entire GNU GPL just vibing in the middle of it like it owns the place. buckle up ๐ŸŽ€


โœจ NAME โœจ

  • rasmol โ€” Molecular Graphics Visualisation Tool v2.7.5 ๐Ÿงฌโœจ

๐ŸŒธ SYNOPSIS ๐ŸŒธ

okay so here's the whole invocation, exactly as written, no cap:

rasmol [-nodiplay] [[-format ] filename] [-script scriptfile]
heads up bestie: -nodiplay is spelled exactly like that in the original. i am not fixing it. that's not my job, that's history ๐Ÿ’€

๐Ÿฆ‹ FORMATS ๐Ÿฆ‹

these are the file formats rasmol speaks, and the flag you use to tell it which one you're feeding it:

  • -pdb โ€” Protein Data Bank ๐Ÿ’–
  • -mdl โ€” MDL's MOL File Format
  • -mol2 โ€” Tripos' Sybyl MOL2 Format
  • -xyz โ€” MSC's XYZ (XMol) Format
  • -mopac โ€” MOPAC Input or Output File Format
  • -alchemy โ€” Alchemy File Format
  • -charmm โ€” CHARMm File Format
  • -cif โ€” IUCr CIF or CIF File Format ๐Ÿ‘‘

๐Ÿ’œ NOTICES ๐Ÿ’œ

okay so the lore here is deep. this software was built from several sources, and the receipts matter:

Much of the code is from RasMol 2.6, as created by Roger Sayle. The torsion angle code, new POVRAY3 code and other features are derived from the RasMol2.6x1 revisions by Arne Mueller. The Ramachandran printer plot code was derived from fisipl created by Frances C. Bernstein. See the Protein Data Bank program tape.

The code to display multiple molecules and to allow bond rotation is derived in large part from the UCB mods by Gary Grossman and Marco Molinaro, included with permission of Eileen Lewis of the ModularCHEM Consortium.

The CIF modifications make use of a library based in part on CBFlib by Paul J. Ellis and Herbert J. Bernstein. Parts of CBFlib is loosely based on the CIFPARSE software package from the NDB at Rutgers university.

and then, the homework ๐Ÿ“š โ€” you gotta actually go read these:

Please type the RasMol commands help copying, help general, help IUCR, help CBFlib, and help CIFPARSE for applicable notices. Please type help copyright for copyright notices. If you use RasMol V2.6 or an earlier version, type the RasMol command help oldnotice.


๐Ÿ‘‘ COPYING ๐Ÿ‘‘

so this version is a lineage, a family tree, a whole ancestry.com situation. it is based:

  • directly on RasMol version 2.7.4.2, on RasMol version 2.7.4.2, on RasMol version 2.7.4, on RasMol version 2.7.3.1, on RasMol version 2.7.3, on RasMol version 2.7.2.1.1, Rasmol version 2.7.2, RasMol version 2.7.1.1 and RasTop version 1.3
  • and indirectly on the RasMol 2.5-ucb and 2.6-ucb versions and version 2.6_CIF.2, RasMol 2.6x1 and RasMol_2.6.4.
yes, 2.7.4.2 really is listed twice up there. iconic behavior honestly. it stays.

RasMol 2.7.5 may be distributed under the terms of the GNU General Public License (the GPL), see

http://www.gnu.org/licenses/gpl.txt

or the file GPL or type the command help GPL

or RasMol 2.7.5 may be distributed under the RASMOL license. See the file NOTICE or type the command help RASLIC


๐Ÿ“œ GPL ๐Ÿ“œ

bestie i am not rewriting a license document, that's a legal crime and i refuse ๐Ÿ’€ so here it is, word for word, exactly as it appears:

                                  GNU GENERAL PUBLIC LICENSE
                                     Version 2, June 1991

               Copyright (C) 1989, 1991 Free Software Foundation, Inc.
                                     59 Temple Place, Suite 330, Boston, MA
              02111-1307  USA
               Everyone is permitted to copy and distribute verbatim copies
               of this license document, but changing it is not allowed.

                                          Preamble

                The licenses for most software are designed to take away your
              freedom to share and change it.  By contrast, the GNU General
              Public License is intended to guarantee your freedom to share and
              change free software--to make sure the software is free for all
              its users.  This General Public License applies to most of the
              Free Software Foundation's software and to any other program
              whose authors commit to using it.  (Some other Free Software
              Foundation software is covered by the GNU Library General Public
              License instead.)  You can apply it to your programs, too.

                When we speak of free software, we are referring to freedom,
              not price.  Our General Public Licenses are designed to make sure
              that you have the freedom to distribute copies of free software
              (and charge for this service if you wish), that you receive
              source code or can get it if you want it, that you can change the
              software or use pieces of it in new free programs; and that you
              know you can do these things.

                To protect your rights, we need to make restrictions that
              forbid anyone to deny you these rights or to ask you to surrender
              the rights.  These restrictions translate to certain
              responsibilities for you if you distribute copies of the
              software, or if you modify it.

                For example, if you distribute copies of such a program,
              whether gratis or for a fee, you must give the recipients all the
              rights that you have.  You must make sure that they, too, receive
              or can get the source code.  And you must show them these terms
              so they know their rights.

                We protect your rights with two steps: (1) copyright the
              software, and (2) offer you this license which gives you legal
              permission to copy, distribute and/or modify the software.

                Also, for each author's protection and ours, we want to make
              certain that everyone understands that there is no warranty for
              this free software.  If the software is modified by someone else
              and passed on, we want its recipients to know that what they have
              is not the original, so that any problems introduced by others
              will not reflect on the original authors' reputations.

                Finally, any free program is threatened constantly by software
              patents.  We wish to avoid the danger that redistributors of a
              free program will individually obtain patent licenses, in effect
              making the program proprietary.  To prevent this, we have made it
              clear that any patent must be licensed for everyone's free use or
              not licensed at all.

                The precise terms and conditions for copying, distribution and
              modification follow.

                                  GNU GENERAL PUBLIC LICENSE
                 TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND
              MODIFICATION

                0. This License applies to any program or other work which
              contains a notice placed by the copyright holder saying it may be
              distributed under the terms of this General Public License.  The
              "Program", below, refers to any such program or work, and a "work
              based on the Program" means either the Program or any derivative
              work under copyright law: that is to say, a work containing the
              Program or a portion of it, either verbatim or with modifications
              and/or translated into another language.  (Hereinafter,
              translation is included without limitation in the term
              "modification".)  Each licensee is addressed as "you".

              Activities other than copying, distribution and modification are
              not covered by this License; they are outside its scope.  The act
              of running the Program is not restricted, and the output from the
              Program is covered only if its contents constitute a work based
              on the Program (independent of having been made by running the
              Program).  Whether that is true depends on what the Program does.

                1. You may copy and distribute verbatim copies of the Program's
              source code as you receive it, in any medium, provided that you
              conspicuously and appropriately publish on each copy an
              appropriate copyright notice and disclaimer of warranty; keep
              intact all the notices that refer to this License and to the
              absence of any warranty; and give any other recipients of the
              Program a copy of this License along with the Program.

              You may charge a fee for the physical act of transferring a copy,
              and you may at your option offer warranty protection in exchange
              for a fee.

                2. You may modify your copy or copies of the Program or any
              portion of it, thus forming a work based on the Program, and copy
              and distribute such modifications or work under the terms of
              Section 1 above, provided that you also meet all of these
              conditions:

                  a) You must cause the modified files to carry prominent
              notices
                  stating that you changed the files and the date of any
              change.

                  b) You must cause any work that you distribute or publish,
              that in
                  whole or in part contains or is derived from the Program or
              any
                  part thereof, to be licensed as a whole at no charge to all
              third
                  parties under the terms of this License.

                  c) If the modified program normally reads commands
              interactively
                  when run, you must cause it, when started running for such
                  interactive use in the most ordinary way, to print or display
              an
                  announcement including an appropriate copyright notice and a
                  notice that there is no warranty (or else, saying that you
              provide
                  a warranty) and that users may redistribute the program under
                  these conditions, and telling the user how to view a copy of
              this
                  License.  (Exception: if the Program itself is interactive
              but
                  does not normally print such an announcement, your work based
              on
                  the Program is not required to print an announcement.)

              These requirements apply to the modified work as a whole.  If
              identifiable sections of that work are not derived from the
              Program, and can be reasonably considered independent and
              separate works in themselves, then this License, and its terms,
              do not apply to those sections when you distribute them as
              separate works.  But when you distribute the same sections as
              part of a whole which is a work based on the Program, the
              distribution of the whole must be on the terms of this License,
              whose permissions for other licensees extend to the entire whole,
              and thus to each and every part regardless of who wrote it.

              Thus, it is not the intent of this section to claim rights or
              contest your rights to work written entirely by you; rather, the
              intent is to exercise the right to control the distribution of
              derivative or collective works based on the Program.

              In addition, mere aggregation of another work not based on the
              Program with the Program (or with a work based on the Program) on
              a volume of a storage or distribution medium does not bring the
              other work under the scope of this License.

                3. You may copy and distribute the Program (or a work based on
              it, under Section 2) in object code or executable form under the
              terms of Sections 1 and 2 above provided that you also do one of
              the following:

                  a) Accompany it with the complete corresponding machine-
              readable
                  source code, which must be distributed under the terms of
              Sections
                  1 and 2 above on a medium customarily used for software
              interchange; or,
  • b) bestie option two ๐Ÿซถ โ€” you ship it with a written offer, valid for at least three years, promising to give any third party a complete machine-readable copy of the corresponding source code, for a charge no more than your cost of physically performing source distribution, and that copy gets distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. or,
  • c) option three ๐Ÿ’… โ€” you ship it with the information you received as to the offer to distribute corresponding source code. BUT. heads up, queen. this alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above. read that twice. it's giving conditions. ๐Ÿ˜ญ

okay so, what even is "the source code" for a work? ๐Ÿ’ญ it means the preferred form of the work for making modifications to it. periodt. and for an executable work, "complete source code" means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. the whole vibe. every file. ๐Ÿ”ฅ

but โ€” special exception alert ๐Ÿšจ โ€” the source code you distribute need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. iykyk.

and if you're distributing executable or object code by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code โ€” even though third parties are not compelled to copy the source along with the object code. sneaky but legal. slay. โœจ

  • 4. you may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. ๐Ÿ’€ any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. however! parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. so likeโ€ฆ be good. ๐Ÿซถ
  • 5. you are not required to accept this License, since you have not signed it. cute. BUT nothing else grants you permission to modify or distribute the Program or its derivative works. these actions are prohibited by law if you do not accept this License. so by modifying or distributing the Program (or any work based on the Program), you're indicating your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. signing with your actions, bestie. ๐ŸŽ€
  • 6. every time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. you may not impose any further restrictions on the recipients' exercise of the rights granted herein. also you are not responsible for enforcing compliance by third parties to this License. not your job, not your problem. ๐Ÿ’…
  • 7. okay this one's a whole saga ๐Ÿ˜ญ โ€” if, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. if you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. for example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. ๐Ÿ˜ฎโ€๐Ÿ’จ

if any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

it is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. no forcing hands here. ๐Ÿšซ๐Ÿค

this section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. clear as glass. โœจ

  • 8. if the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. in such case, this License incorporates the limitation as if written in the body of this License. ๐ŸŒ not every country is invited to the party, and that's allowed.
  • 9. the Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. glow-up, but make it legally binding. ๐Ÿ’œ

each version is given a distinguishing version number. if the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. if the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. pick your fighter. ๐Ÿ‘‘

  • 10. if you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. ๐Ÿ“ฉ for software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. the goals are the moment. ๐ŸŒˆ

โœจ NO WARRANTY โœจ

this is the part where everyone gets very serious. buckle up. ๐Ÿšจ
  • 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. ๐Ÿ’€ no cap, that's on you.
  • 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. ๐Ÿ˜ญ soz. nobody's paying for your lost data.

๐ŸŒธ END OF TERMS AND CONDITIONS ๐ŸŒธ


๐ŸŽ€ How to Apply These Terms to Your New Programs ๐ŸŽ€

so you made a new program and you want it to be of the greatest possible use to the public? bestie, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. main character move. ๐Ÿ‘‘

to do so, attach the following notices to the program. it is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. don't skip this part, it matters. ๐Ÿ’–

<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year>  <name of author>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

also add information on how to contact you by electronic and paper mail. ๐Ÿ“ฌ yes, both. old school and new school.

if the program is interactive, make it output a short notice like this when it starts in an interactive mode: ๐Ÿ–ฅ๏ธ

...okay so you've got the GPL text itself, and now here comes the part where it shows you what your notice should look like โ€” literally copy-paste this energy, bestie:

Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.

The hypothetical commands show w and show c should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than show w and show c; they could even be mouse-clicks or menu items -- whatever suits your program. ๐Ÿ–ฑ๏ธโœจ

You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.

<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice

This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. ๐Ÿ‘€


RASLIC ๐Ÿ’–

If you do not use the GPL, the following license terms apply:

RasMol License ๐ŸŽ€

Even though the authors of the various documents and software found here have made a good faith effort to ensure that the documents are correct and that the software performs according to its documentation, and we would greatly appreciate hearing of any problems you may encounter, the programs and documents any files created by the programs are provided AS IS without any warranty as to correctness, merchantability or fitness for any particular or general use.

THE RESPONSIBILITY FOR ANY ADVERSE CONSEQUENCES FROM THE USE OF PROGRAMS OR DOCUMENTS OR ANY FILE OR FILES CREATED BY USE OF THE PROGRAMS OR DOCUMENTS LIES SOLELY WITH THE USERS OF THE PROGRAMS OR DOCUMENTS OR FILE OR FILES AND NOT WITH AUTHORS OF THE PROGRAMS OR DOCUMENTS. ๐Ÿ˜ญ like, fr fr, it's on you bestie.

Subject to your acceptance of the conditions stated above, and your respect for the terms and conditions stated in the notices below, if you are not going to make any modifications or create derived works, you are given permission to freely copy and distribute this package, provided you do the following:

  1. Either include the complete documentation, especially the file NOTICE, with what you distribute or provide a clear indication where people can get a copy of the documentation; and ๐Ÿ“„
  2. Please give credit where credit is due citing the version and original authors properly; and ๐Ÿ‘‘
  3. Please do not give anyone the impression that the original authors are providing a warranty of any kind. ๐Ÿ™…โ€โ™€๏ธ

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:

  1. Please explain in your documentation how what you did differs from this version of RasMol; and ๐Ÿ“
  2. Please make your modified source code available. ๐Ÿ’พ

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. ๐Ÿงšโ€โ™€๏ธ


General Notice ๐ŸŒˆ

The following notice applies to this work as a whole and to the works included within it:

  • Creative endeavors depend on the lively exchange of ideas. There are laws and customs which establish rights and responsibilities for authors and the users of what authors create. This notice is not intended to prevent you from using the software and documents in this package, but to ensure that there are no misunderstandings about terms and conditions of such use. ๐Ÿ’ก
  • Please read the following notice carefully. If you do not understand any portion of this notice, please seek appropriate professional legal advice before making use of the software and documents included in this software package. In addition to whatever other steps you may be obliged to take to respect the intellectual property rights of the various parties involved, if you do make use of the software and documents in this package, please give credit where credit is due by citing this package, its authors and the URL or other source from which you obtained it, or equivalent primary references in the literature with the same authors. โš–๏ธ
  • Some of the software and documents included within this software package are the intellectual property of various parties, and placement in this package does not in any way imply that any such rights have in any way been waived or diminished.
  • With respect to any software or documents for which a copyright exists, ALL RIGHTS ARE RESERVED TO THE OWNERS OF SUCH COPYRIGHT.
  • Even though the authors of the various documents and software found here have made a good faith effort to ensure that the documents are correct and that the software performs according to its documentation, and we would greatly appreciate hearing of any problems you may encounter, the programs and documents and any files created by the programs are provided AS IS without any warranty as to correctness, merchantability or fitness for any particular or general use.
  • THE RESPONSIBILITY FOR ANY ADVERSE CONSEQUENCES FROM THE USE OF PROGRAMS OR DOCUMENTS OR ANY FILE OR FILES CREATED BY USE OF THE PROGRAMS OR DOCUMENTS LIES SOLELY WITH THE USERS OF THE PROGRAMS OR DOCUMENTS OR FILE OR FILES AND NOT WITH AUTHORS OF THE PROGRAMS OR DOCUMENTS. ๐Ÿ’€

See the files GPL and RASLIC for two alternate ways to license this package. ๐Ÿซถ


RasMol V2.6 Notice โญ

The following notice applies to RasMol V 2.6 and older RasMol versions.

Information in this document is subject to change without notice and does not represent a commitment on the part of the supplier. This package is sold/distributed subject to the condition that it shall not, by way of trade or otherwise, be lent, re-sold, hired out or otherwise circulated without the supplier's prior consent, in any form of packaging or cover other than that in which it was produced. No part of this manual or accompanying software may be reproduced, stored in a retrieval system on optical or magnetic disk, tape or any other medium, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording or otherwise for any purpose other than the purchaser's personal use. ๐Ÿšซ

This product is not to be used in the planning, construction, maintenance, operation or use of any nuclear facility nor the flight, navigation or communication of aircraft or ground support equipment. The author shall not be liable, in whole or in part, for any claims or damages arising from such use, including death, bankruptcy or outbreak of war. โ˜ข๏ธ๐Ÿ˜ณ no cap, that's verbatim, please don't build a reactor with it.

IUCR Policy ๐Ÿฆ‹

The IUCr Policy for the Protection and the Promotion of the STAR File and CIF Standards for Exchanging and Archiving Electronic Data.

Overview

The Crystallographic Information File (CIF)[1] is a standard for information interchange promulgated by the International Union of Crystallography (IUCr). CIF (Hall, Allen & Brown, 1991) is the recommended method for submitting publications to Acta Crystallographica Section C and reports of crystal structure determinations to other sections of Acta Crystallographica and many other journals. The syntax of a CIF is a subset of the more general STAR File[2] format. The CIF and STAR File approaches are used increasingly in the structural sciences for data exchange and archiving, and are having a significant influence on these activities in other fields. โœจ

Statement of intent

The IUCr's interest in the STAR File is as a general data interchange standard for science, and its interest in the CIF, a conformant derivative of the STAR File, is as a concise data exchange and archival standard for crystallography and structural science.

Protection of the standards

To protect the STAR File and the CIF as standards for interchanging and archiving electronic data, the IUCr, on behalf of the scientific community,

  • holds the copyrights on the standards themselves,
  • owns the associated trademarks and service marks, and
  • holds a patent on the STAR File.

These intellectual property rights relate solely to the interchange formats, not to the data contained therein, nor to the software used in the generation, access or manipulation of the data. ๐Ÿ’…

Promotion of the standards

The sole requirement that the IUCr, in its protective role, imposes on software purporting to process STAR File or CIF data is that the following conditions be met prior to sale or distribution.

  • Software claiming to read files written to either the STAR File or the CIF standard must be able to extract the pertinent data from a file conformant to the STAR File syntax, or the CIF syntax, respectively.
  • Software claiming to write files in either the STAR File, or the CIF, standard must produce files that are conformant to the STAR File syntax, or the CIF syntax, respectively.
  • Software claiming to read definitions from a specific data dictionary approved by the IUCr must be able to extract any pertinent definition which is conformant to the dictionary definition language (DDL)[3] associated with that dictionary. ๐Ÿ“š

The IUCr, through its Committee on CIF Standards, will assist any developer to verify that software meets these conformance conditions.

๐ŸŒธ Glossary of terms ๐ŸŒธ

Last modified: 30 September 2000

IUCr Policy Copyright (C) 2000 International Union of Crystallography


๐Ÿฆ‹ CBFLIB ๐Ÿฆ‹

okay bestie, heads up โ€” the following Disclaimer Notice applies to CBFlib V0.1, which is where this code in part comes from, no cap:

  • The items furnished herewith were developed under the sponsorship of the U.S. Government. Neither the U.S., nor the U.S. D.O.E., nor the Leland Stanford Junior University, nor their employees, makes any warranty, express or implied, or assumes any liability or responsibility for accuracy, completeness or usefulness of any information, apparatus, product or process disclosed, or represents that its use will not infringe privately-owned rights. Mention of any product, its manufacturer, or suppliers shall not, nor is it intended to, imply approval, disapproval, or fitness for any particular use. The U.S. and the University at all times retain the right to use and disseminate the furnished items for any purpose whatsoever.

Notice 91 02 01


๐Ÿ’œ CIFPARSE ๐Ÿ’œ

Portions of this software are loosely based on the CIFPARSE software package from the NDB at Rutgers University. See

   http://ndbserver.rutgers.edu/NDB/mmcif/software

CIFPARSE is part of the NDBQUERY application, a program component of the Nucleic Acid Database Project [ H. M. Berman, W. K. Olson, D. L. Beveridge, J. K. Westbrook, A. Gelbin, T. Demeny, S. H. Shieh, A. R. Srinivasan, and B. Schneider. (1992). The Nucleic Acid Database: A Comprehensive Relational Database of Three-Dimensional Structures of Nucleic Acids. Biophys J., 63, 751-759.], whose cooperation is gratefully acknowledged, especially in the form of design concepts created by J. Westbrook.

Please be aware of the following notice in the CIFPARSE API:

This software is provided WITHOUT WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR ANY OTHER WARRANTY, EXPRESS OR IMPLIED. RUTGERS MAKE NO REPRESENTATION OR WARRANTY THAT THE SOFTWARE WILL NOT INFRINGE ANY PATENT, COPYRIGHT OR OTHER PROPRIETARY RIGHT.


โœจ DESCRIPTION โœจ

So like, RasMol is a molecular graphics program for visualising proteins, nucleic acids and small molecules. ๐Ÿ’– It's aimed at display, teaching, and making publication-quality images โ€” it's giving main character energy for your molecules, fr fr.

RasMol runs on a wide range of architectures and operating systems, including Microsoft Windows, Apple Macintosh, UNIX and VMS systems. UNIX and VMS versions require an 8, 24 or 32 bit colour X Windows display (X11R4 or later). The X Windows version of RasMol provides optional support for a hardware dials box and accelerated shared memory communication (via the XInput and MIT-SHM extensions) if available on the current X Server. slay.

The program reads in a molecule coordinate file and interactively displays the molecule on the screen in a variety of colour schemes and molecule representations. Currently available representations include:

  • depth-cued wireframes
  • 'Dreiding' sticks
  • spacefilling (CPK) spheres
  • ball and stick
  • solid and strand biomolecular ribbons
  • atom labels
  • dot surfaces

Up to 5 molecules may be loaded and displayed at once. Any one or all of the molecules may be rotated and translated. ๐Ÿ‘‘

The RasMol help facility can be accessed by typing help <topic> or help <topic> <subtopic> from the command line. A complete list of RasMol commands may be displayed by typing help commands. A single question mark may also be used to abbreviate the keyword help. Please type help notices for important notices.


๐ŸŽ€ COMMANDS ๐ŸŽ€

RasMol allows the execution of interactive commands typed at the RasMol> prompt in the terminal window. Each command must be given on a separate line. Keywords are case insensitive and may be entered in either upper or lower case letters. All whitespace characters are ignored except to separate keywords and their arguments. ๐Ÿ’…

All commands may be prefixed by a parenthesized atom expression to temporarily select certain atoms just for the execution of that one command. After execution of the command, the previous selection is restored โ€” except for the commands select, restrict and script. no cap.

The commands/keywords currently recognised by RasMol are given below.

Backbone

The RasMol backbone command permits the representation of a polypeptide backbone as a series of bonds connecting the adjacent alpha carbons of each amino acid in a chain. The display of these backbone 'bonds' is turned on and off by the command parameter in the same way as with the wireframe command. The command backbone off turns off the selected 'bonds', and backbone on or with a number turns them on. The number can be used to specify the cylinder radius of the representation in either Angstrom or RasMol units. A parameter value of 500 (2.0 Angstroms) or above results in a "Parameter value too large" error. Backbone objects may be coloured using the RasMol colour backbone command.

The reserved word backbone is also used as a predefined set (help sets) and as a parameter to the set hbond and set ssbond commands. The RasMol command trace renders a smoothed backbone, in contrast to backbone which connects alpha carbons with straight lines.

The backbone may be displayed with dashed lines by use of the backbone dash command.

Background

The RasMol background command is used to set the colour of the "canvas" background. The colour may be given as either a colour name or a comma separated triple of Red, Green and Blue (RGB) components enclosed in square brackets. Typing the command help colours will give a list of the predefined colour names recognised by RasMol. When running under X Windows, RasMol also recognises colours in the X server's colour name database. ๐ŸŒˆ

The background command is synonymous with the RasMol set background command.

Bond

The RasMol command bond <number> <number> + adds the designated bond to the drawing, increasing the bond order if the bond already exists. The command bond <number> <number> pick selects the two atoms specified by the atom serial numbers as the two ends of a bond around which the rotate bond <angle> command will be applied. If no bond exists, it is created.

Rotation around a previously picked bond may be specified by the rotate bond <angle> command, or may also be controlled with the mouse, using the bond rotate on/off or the equivalent rotate bond on/off commands.

Bulgarian

The RasMol Bulgarian command sets the menus and messages to the Bulgarian versions.

Heads up bestie: this command may not work correctly unless appropriate fonts have been installed. The commands Bulgarian, Chinese, English, French, Italian, Russian and Spanish may be used to select Bulgarian, Chinese, English, French, Italian, Japanese, Russian and Spanish menus and messages if the appropriate fonts have been installed.

Cartoon

The RasMol cartoon command does a display of a molecule ribbons as Richardson (MolScript) style protein cartoons, implemented as thick (deep) ribbons. The easiest way to obtain a cartoon representation of a protein is to use the Cartoons option on the Display menu. The cartoon command represents the currently selected residues as a deep ribbon with width specified by the command's argument. Using the command without a parameter results in the ribbon's width being taken from the protein's secondary structure, as described in the ribbons command. By default, the C-termini of beta-sheets are displayed as arrow heads. This may be enabled and disabled using the set cartoons command. The depth of the cartoon may be adjusted using the set cartoons <number> command. The set cartoons command without any parameters returns these two options to their default values. ๐ŸŽ€

Centre

The RasMol centre command defines the point about which the rotate command and the scroll bars rotate the current molecule. Without a parameter the centre command resets the centre of rotation to be the centre of gravity of the molecule. If an atom expression is specified, RasMol rotates the molecule about the centre of gravity of the set of atoms specified by the expression. Hence, if a single atom is specified by the expression, that atom will remain 'stationary' during rotations. ๐Ÿ‘‘

Type help expression for more information on RasMol atom expressions.

Alternatively the centring may be given as a comma separated triple of [CenX, CenY, CenZ] offsets in RasMol units (1/250 of an Angstrom) from the centre of gravity. The triple must be enclosed in square brackets.

The optional forms centre ... translate and centre ... center may be used to specify use of a translated centre of rotation (not necessarily in the centre of the canvas) or a centre of rotation which is placed at the centre of the canvas. Starting with RasMol 2.7.2, the default is to center the new axis on the canvas.

Chinese

The RasMol Chinese command sets the menus and messages to the Chinese versions.

Heads up bestie: this command may not work correctly unless appropriate fonts have been installed. The commands Bulgarian, Chinese, English, French, Italian, Russian and Spanish may be used to select Bulgarian, Chinese, English, French, Italian, Japanese, Russian and Spanish menus and messages if the appropriate fonts have been installed.

โœจ Clipboard โœจ

okay so the clipboard command in RasMol? It takes a copy of the currently displayed image and drops it onto your local graphics 'clipboard'. Slay ๐Ÿ’–

โš ๏ธ But bestie, real talk: this command is not yet supported on UNIX or VMS machines. Itโ€™s meant to make transferring images between applications easier under Microsoft Windows or on an Apple Macintosh. ๐Ÿซถ

When youโ€™re using RasMol on a UNIX or VMS system, you can still get this functionality by generating a raster image in a format that can be read by the receiving program โ€” using the RasMol write command. โœจ

๐ŸŽจ Colour ๐ŸŽจ

The RasMol colour command colours the atoms (or other objects) of the selected region. You can give the colour as either a colour name or a comma separated triple of Red, Green and Blue (RGB) components enclosed in square brackets. Typing help colours will give you a list of all the predefined colour names recognised by RasMol. iconic ๐Ÿ’…

Allowed objects are atoms, bonds, backbone, ribbons, labels, dots, hbonds, map, and ssbonds. If no object is specified, the default keyword atom is assumed. Some colour schemes are defined for certain object types. The colour scheme none can be applied to all objects except atoms and dots, stating that the selected objects have no colour of their own, but use the colour of their associated atoms (i.e. the atoms they connect). Atom objects can also be coloured by alt, amino, chain, charge, cpk, group, model, shapely, structure, temperature or user. Hydrogen bonds can also be coloured by type and dot surfaces can also be coloured by electrostatic potential. For more information type help colour <colour>. Map objects may be coloured by specific color of by nearest atom. ๐Ÿ‘‘

๐ŸŒˆ ColourMode ๐ŸŒˆ

ColourMode lets you switch between using the new colour method. At present, the new coloring technique is the same as the old one, but to preserve compatibility for older scripts it may be wise to add a "colormode on" near the top of your script somewhere, if the script was designed for version 2.7.3 of RasMol or earlier. The new color method, when completed, aims to fix a few bugs in the coloring routines. ๐Ÿ’…

๐Ÿ”— Connect ๐Ÿ”—

The RasMol connect command is used to force RasMol to (re)calculate the connectivity of the current molecule. If the original input file contained connectivity information, this is discarded. The command connect false uses a fast heuristic algorithm that is suitable for determining bonding in large bio-molecules such as proteins and nucleic acids. The command connect true uses a slower more accurate algorithm based upon covalent radii that is more suitable to small molecules containing inorganic elements or strained rings. If no parameters are given, RasMol determines which algorithm to use based on the number of atoms in the input file. Greater than 255 atoms causes RasMol to use the faster implementation. This is the method used to determine bonding, if necessary, when a molecule is first read in using the load command. โญ

๐Ÿ“œ Defer ๐Ÿ“œ

The RasMol defer command adds the command given to the macro with given name. If no name is given, the command is added to the macro with a blank name. The command zap is a special case. In that case the macro is erased. If no name is given the command must begin with a selection, e.g. defer (selection).spacefill

The deferred commands accumulated under the given name can be executed using the execute command. โœจ

๐Ÿงฌ Define ๐Ÿงฌ

The RasMol define command allows the user to associate an arbitrary set of atoms with a unique identifier. This allows the definition of user-defined sets. These sets are declared statically, i.e. once defined the contents of the set do not change, even if the expression defining them depends on the current transformation and representation of the molecule. ๐Ÿ’–

๐Ÿ“ Depth ๐Ÿ“

The RasMol depth command enables, disables or positions the back-clipping plane of the molecule. The program only draws those portions of the molecule that are closer to the viewer than the clipping plane. Integer values range from zero at the very back of the molecule to 100 which is completely in front of the molecule. Intermediate values determine the percentage of the molecule to be drawn. ๐Ÿฆ‹

This command interacts with the slab <value> command, which clips to the front of a given z-clipping plane. ๐ŸŒธ

๐Ÿ”ต Dots ๐Ÿ”ต

The RasMol dots command is used to generate a van der Waals' dot surface around the currently selected atoms. Dot surfaces display regularly spaced points on a sphere of van der Waals' radius about each selected atom. Dots that would are 'buried' within the van der Waals' radius of any other atom (selected or not) are not displayed. The command dots on deletes any existing dot surface and generates a dots surface around the currently selected atom set with a default dot density of 100. The command dots off deletes any existing dot surface. The dot density may be specified by providing a numeric parameter between 1 and 1000. This value approximately corresponds to the number of dots on the surface of a medium sized atom. ๐ŸŒŸ

By default, the colour of each point on a dot surface is the colour of its closest atom at the time the surface is generated. The colour of the whole dot surface may be changed using the colour dots command. ๐Ÿ’…

๐Ÿ—ฃ๏ธ Echo ๐Ÿ—ฃ๏ธ

The RasMol echo command is used to display a message in the RasMol command/terminal window. The string parameter may optionally be delimited in double quote characters. If no parameter is specified, the echo command displays a blank line. This command is particularly useful for displaying text from within a RasMol script file. ๐Ÿ“ฃ

๐Ÿ‡ฌ๐Ÿ‡ง English ๐Ÿ‡ฌ๐Ÿ‡ง

The RasMol English command sets the menus and messages to the English versions. โœจ

This command may not work correctly unless appropriate fonts have been installed. The commands Bulgarian, Chinese, English, French, Italian, Russian and Spanish may be used to select Bulgarian, Chinese, English, French, Italian, Japanese, Russian and Spanish menus and messages if the appropriate fonts have been installed. ๐ŸŒ

๐ŸŽฌ Execute ๐ŸŽฌ

The RasMol execute command:

  1. saves the old poise of the molecule (translation, rotation and zoom)
  2. executes the specified macro suppressing both screen updates and recording
  3. animates motion of the newly rendered molecule linearly from the old poise to the new poise

The macro must have been previously defined by calls to the defer command. ๐Ÿซถ

The animation of the motion depends on the prior settings of the record command. ๐ŸŽฅ

๐Ÿ‡ซ๐Ÿ‡ท French ๐Ÿ‡ซ๐Ÿ‡ท

The RasMol French command sets the menus and messages to the French versions. ๐Ÿ’–

This command may not work correctly unless appropriate fonts have been installed. The commands Bulgarian, Chinese, English, French, Italian, Russian and Spanish may be used to select Bulgarian, Chinese, English, French, Italian, Japanese, Russian and Spanish menus and messages if the appropriate fonts have been installed. ๐ŸŒธ

๐Ÿ’ง HBonds ๐Ÿ’ง

The RasMol hbond command is used to represent the hydrogen bonding of the protein molecule's backbone. This information is useful in assessing the protein's secondary structure. Hydrogen bonds are represented as either dotted lines or cylinders between the donor and acceptor residues. The first time the hbond command is used, the program searches the structure of the molecule to find hydrogen bonded residues and reports the number of bonds to the user. The command hbonds on displays the selected 'bonds' as dotted lines, and the hbonds off turns off their display. The colour of hbond objects may be changed by the colour hbond command. Initially, each hydrogen bond has the colours of its connected atoms. ๐Ÿ”—

By default the dotted lines are drawn between the accepting oxygen and the donating nitrogen. By using the set hbonds command the alpha carbon positions of the appropriate residues may be used instead. This is especially useful when examining proteins in backbone representation. โœจ

โ“ Help โ“

The RasMol help command provides on-line help on the given topic. ๐Ÿซถ

๐Ÿ‡ฎ๐Ÿ‡น Italian ๐Ÿ‡ฎ๐Ÿ‡น

The RasMol Italian command sets the menus and messages to the Italian versions. ๐Ÿ’…

This command may not work correctly unless appropriate fonts have been installed. The commands Bulgarian, Chinese, English, French, Italian, Russian and Spanish may be used to select Bulgarian, Chinese, English, French, Italian, Japanese, Russian and Spanish menus and messages if the appropriate fonts have been installed. ๐ŸŒˆ

๐Ÿ‡ฏ๐Ÿ‡ต Japanese ๐Ÿ‡ฏ๐Ÿ‡ต

The RasMol Japanese command sets the menus and messages to the Japanese versions. ๐ŸŒธ

This command may not work correctly unless appropriate fonts have been installed. The commands Bulgarian, Chinese, English, French, Italian, Russian and Spanish may be used to select Bulgarian, Chinese, English, French, Italian, Japanese, Russian and Spanish menus and messages if the appropriate fonts have been installed. โœจ

๐Ÿท๏ธ Label ๐Ÿท๏ธ

The RasMol label command allows an arbitrary formatted text string to be associated with each currently selected atom. This string may contain embedded 'expansion specifiers' which display properties of the atom being labelled. An expansion specifier consists of a % character followed by a single alphabetic character specifying the property to be displayed. An actual % character may be displayed by using the expansion specifier %%. ๐Ÿ‘‘

Atom labelling for the currently selected atoms may be turned off with the command label off. By default, if no string is given as a parameter, RasMol uses labels appropriate for the current molecule. ๐Ÿ’–

okay so the colour of each label? fully changeable with the colour label command ๐Ÿ’…. By default every label gets drawn in the exact same colour as the atom it's attached to โ€” matching energy, iconic. Wanna change the size and spacing of the displayed text? that's set fontsize. Wanna change the width of the strokes in that text? that's set fontstroke. chef's kiss ๐ŸŽ€


๐Ÿš€ Load ๐Ÿ’พ

Loads a molecule coordinate file straight into RasMol, bestie. Here's the vibe check on which file formats are valid:

  • pdb โ€” Protein Data Bank format
  • mdl โ€” Molecular Design Limited's MOL file format
  • alchemy โ€” Tripos' Alchemy file format
  • mol2 โ€” Tripos' Sybyl Mol2 file format
  • charmm โ€” CHARMm file format
  • xyz โ€” MSC's XMol XYZ file format
  • mopac โ€” J. P. Stewart's MOPAC file format
  • cif โ€” IUCr CIF or mmCIF file format

If you don't specify a file format, PDB, CIF, or mmCIF is assumed by default. You can have up to 20 molecules loaded at a time, no cap. ๐Ÿ”ฅ

If CHEM_COMP ligand models are included in an mmCIF file, they get loaded as NMR models โ€” first giving all the NMR models for model coordinates if specified, and then giving all the NMR models for ideal model coordinates. (iykyk ๐Ÿงš)

Wanna delete a molecule before loading another one? use the RasMol zap command. Wanna select a molecule for manipulation? that's the RasMol molecule <n> command. ๐Ÿ’œ

The load command selects all the atoms in the molecule, centres it on the screen, and renders it as a CPK coloured wireframe model โœจ. If the molecule contains no bonds (i.e. contains only alpha carbons), it's drawn as an alpha carbon backbone. And if the file specifies fewer bonds than atoms, RasMol determines connectivity using the connect command.

The load inline command also lets you store atom coordinates in scripts, so you get better integration with WWW browsers ๐ŸŒˆ. A load command executed inside a script file may specify the keyword inline instead of a conventional filename. This option says the coordinates of the molecule to load are stored in the same file as the currently executing commands. so cute, so handy.


๐Ÿ—บ๏ธ Map ๐Ÿซถ

The RasMol map commands manipulate electron density maps in coordination with the display of molecules. Heads up though:

These commands are very memory intensive and may not work on machines with limited memory ๐Ÿ˜ญ. Each molecule may have as many maps as available memory permits. Maps may be read from files or generated from Gaussian density distributions around atoms.

Here's the whole squad of map subcommands, so you know what's what:

  • map colour โ€” to colour a map according to a given colour scheme
  • map generate โ€” to generate a map from selected atoms based on pseudo-Gaussians
  • map level โ€” to set the contouring level for selected maps
  • map load โ€” to load a map from a file
  • map mask โ€” to designate a mask for the selected maps
  • map resolution โ€” to set the resolution for contouring selected maps
  • map restrict โ€” to select one or more maps and to disable all others
  • map save โ€” to save map information to a file
  • map scale โ€” control the scaling of pseudo-Gaussians when generating maps
  • map select โ€” to select one or more maps
  • map show โ€” to display information about one or more maps or about the parameters to be used in generating or loading the next map
  • map spacing โ€” to set the spacing between contour lines of selected maps
  • map spread โ€” to set the variance of the Gaussians for map generation as a fraction of the atomic radius
  • map zap โ€” to delete previously generated or loaded maps

Also important: the effect of map generate and map load commands is modified by the map mask command, which limits the portion of the display space that can be considered for display of maps. ๐ŸŒธ


๐ŸŽจ Map colour ๐ŸŒˆ

The RasMol map colour command colours the selected maps according to the specified colour scheme. The colour scheme may be a colour name, or an RBG triple in brackets, or the keyword atom โ€” which causes the map points to be coloured by the color of the nearest atom. ๐Ÿ’…


โœจ Map generate โœจ

The RasMol map generate command generates a map from whatever atoms are currently selected, by summing electron densities approximated by Gaussian distributions. The height of each Gaussian is determined by the setting of the map scale command. In the default of map scale true, each Gaussian has a height proportional element type of the atom. If the optional 'LRSurf' parameter is given, or if map scale false has been executed, each Gaussian is scaled so that the Gaussian contour level 1 is at the van der Waals radius. In either case a standard deviation determined by the most recently specified spread or resolution is used. If a non-zero spread has been given, the radius of the atom is multiplied by the spread to find the standard deviation โ€” the default is 2/3rds. And if a resolution has been given, the spread is inferred as 2/3rds of the resolution.

Example time, bestie ๐Ÿ“: if the resolution is given as 1., and the atom in question is a Carbon with a van der Waals radius of 468 RasMol units (1.87 Angstroms), the inferred spead is .6667, and the standard deviation of the Gaussian is taken as 1.25 Angstroms.

If the spread has been set to zero, the spread for each atom is determined from the van der Waals radius and the probe atom radius, to simulate the effect of a Lee-Richards surface. ๐Ÿฆ‹

  • If no specific map was given by the map selector, the new map is given the next available map number.
  • If a specific map was given by the map selector, the new map replaces that map.
  • If more than one map was given by the map selector, the new map replaces the lowest numbered of the selected maps.
  • In any case, the new map becomes the currently selected map. ๐Ÿ‘‘

The map is displayed as dots, mesh or a surface, depending on the last map rendering mode selected โ€” or the mode selected on the command itself.


๐Ÿ“ Map level ๐Ÿ“

The RasMol map level command sets the contour level to be used in creating subsequent representations of generated or loaded maps. If the keyword MEAN is used, the level is relative to the mean of the map data. Otherwise the level is absolute.

In general: a lower level results in a map containing more of the displayed volume, while a higher level results in a map containing less of the displayed volume. physics, but make it fashion ๐Ÿ’…


๐Ÿ“‚ Map load ๐Ÿ“‚

The RasMol map load command loads a map file into RasMol. Valid formats are CCP4 map format and imgCIF format.

  • If no specific map was given by the map selector, the new map is given the next available map number.
  • If a specific map was given by the map selector, the new map replaces that map.
  • If more than one map was given by the map selector, the new map replaces the lowest numbered of the selected maps.
  • In any case, the new map becomes the currently selected map. ๐Ÿ‘‘

The map is displayed as dots, mesh or a surface, depending on the last map rendering mode selected.


๐ŸŽญ Map mask ๐ŸŽญ

The RasMol map mask command specifies a mask to be used to limit the display space used for making representations of other maps โ€” or removes an earlier mask specification.

  • The 'selected' option says the mask is to be created from the currently selected atoms.
  • The '<number>' option says the mask is to be copied from the map of the number specified.
  • The 'none' option removes the previously specified mask, if any.

The map selector specifies the map or maps to which the specified mask will be applied. For example, 'map next mask selected' specifies that the currently selected atoms are to be used to generate a mask to be applied to any maps created by subsequent 'map load' or 'map generate' commands. ๐Ÿซถ

Any map may be used as a mask. Here's the tea โ˜•: the portions of the mask map greater than or equal to the average value of the mask map allow the values of the map being masked to be used as given. The portions of the mask map lower than the average value of the mask map cause the values of the map being masked to be treated as if they were equal to the lowest data value of the map being masked. so real.


๐Ÿ”ฌ Map resolution ๐Ÿ”ฌ

The RasMol map resolution command specifies the resolution in RasMol units โ€” or, if a number containing a decimal point is given, the resolution in Angstroms โ€” to be used in generating and in representing maps.

The resolution is used at the map spacing for representations of maps, indicating the separation between contour levels (see the map spacing command), and to infer the map spread to be used in generated maps from selected atoms (see the map spread command). The map spread is set to two thirds of the specified resolution.


๐Ÿšง Map restrict ๐Ÿšง

The RasMol map restrict command selects particular maps to make them active for subsequent map commands. This is similar to the map select command, but it does disable the display of the maps that were not selected. ๐Ÿ™ˆ


๐Ÿ’พ Map save ๐Ÿ’พ

The RasMol map save command saves an imgCIF map file.

If no specific map was given by the map selector, the currently selected maps and their masks are written to the file โ€” one map and mask pair per data block. ๐ŸŒธ


โš–๏ธ Map scale โš–๏ธ

The RasMol map scale command selects the scaling of pseudo-Gaussians in the map generate commands. In the default of map scale true, each Gaussian has a height proportional element type of the atom. If map scale false has been executed, each Gaussian is scaled so that the Gaussian contour level 1 is at the van der Waals radius. In either case a standard deviation determined by the most recently specified spread or resolution is used. ๐Ÿ’œ


๐ŸŽฏ Map select ๐ŸŽฏ

The RasMol map select command selects particular maps to make them active for subsequent map commands. This is similar to the map restrict command, but it does not disable the display of the maps that were not selected. iconic, honestly ๐Ÿ’…

If you pass the optional atom parameter, RasMol goes "okay bestie, which atoms are closest to these map points" and selects those. You can set how far it's allowed to look with search_radius. The default vibe is hunting for atoms within 4 Angstroms plus the probe radius. Hand it the optional within parameter and the new selection gets pulled from inside whatever's already selected. Hand it add and the new selection gets added on top of the current one. Default is to just search within all atoms, no drama. ๐Ÿ’ซ

โœจ Map show โœจ

The map show command makes RasMol spill the tea about the maps you named with the map selector, writing all that info into the command window. ๐Ÿ“

๐ŸŽ€ Map spacing ๐ŸŽ€

map spacing sets how far apart the contour lines sit when RasMol draws representations of maps. You'd usually give the spacing in Angstroms with a decimal point, but you can also drop it in RasMol units (which are 250ths of an Angstrom) as a plain integer. For maps loaded in grid coordinates, that spacing runs parallel to the cell edges. Default spacing is one half Angstrom, periodt. ๐Ÿ“

๐ŸŒธ Map spread ๐ŸŒธ

map spread sets the reciprocal of the number of standard deviations per radius, which RasMol uses when generating maps as sums of Gaussians centered on atomic positions. Default spread is one two thirds โ€” meaning each radius covers 1.5 standard deviations, no cap. ๐Ÿซถ

Now, if you've set the spread to zero, RasMol switches it up: the spread for each atom gets determined from the van der Waals radius and the probe atom radius, simulating the effect of a Lee-Richards surface. Lowkey iconic. ๐Ÿงš

๐Ÿ’… Map zap ๐Ÿ’…

map zap yeets the data and representations of the maps you named with the map selector. Important: the map numbers of maps that have not been removed do not change. So no renumbering chaos, we stay organized. ๐Ÿ’€

๐Ÿ‘‘ Molecule ๐Ÿ‘‘

The molecule command selects one of up to 5 previously loaded molecules to be the active one for manipulation. Here's the tea: all the molecules stay displayed and can be rotated collectively (check the rotate all command for that), but only one molecule at a time is active for manipulation by the commands that control the details of rendering. One main character at a time, fr fr. ๐ŸŒŸ

๐Ÿ”ฅ Monitor ๐Ÿ”ฅ

The monitor command lets you display distance monitors. A distance monitor is a dashed (dotted) line between an arbitrary pair of atoms, optionally labelled with the distance between them. The command monitor <number> <number> adds such a distance monitor between the two atoms specified by the atom serial numbers you passed as parameters. ๐ŸŽฏ

Distance monitors get turned off with the command monitors off. By default, monitors display the distance between their two end points as a label at the centre of the monitor. Those distance labels can be turned off with set monitors off, and re-enabled with set monitors on. Like most other representations, the colour of a monitor is taken from the colour of its end points โ€” unless you specify it with the colour monitors command. ๐ŸŒˆ

Distance monitors can also be added to a molecule interactively with the mouse, using set picking monitor. Clicking on an atom results in its being identified on the rasmol command line. In addition, every atom picked increments a modulo counter such that, in monitor mode, every second atom displays the distance between this atom and the previous one. The shift key may be used to form distance monitors between a fixed atom and several consecutive positions. A distance monitor may also be removed (toggled) by selecting the appropriate pair of atom end points a second time. Click, click, undo โ€” we love a reversible moment. ๐Ÿ’–

๐Ÿ’œ Notoggle ๐Ÿ’œ

NoToggle enables or disables the toggle ability that some of the other RasMol commands use. When no boolean value is specified, NoToggle mode is ENABLED. When NoToggle mode is ENABLED, all toggle functionality is DISABLED. To turn it off, you must explicitly set notoggle off. Yes bestie, it's one of those double negatives, stay with me. ๐Ÿ™ˆ

Some commands which use the toggle feature are: ColourMode. More functions that utilize this capability may be added at a later date.

๐Ÿฆ‹ Pause ๐Ÿฆ‹

The pause command is used in script files to stop the script for local manipulation by a mouse, until any key is pushed to restart the script file. Wait is synonymous with pause. You can run this in RasMol script files to suspend the sequential execution of commands and let the user actually examine the current image. ๐Ÿ‘€

When RasMol executes a pause command in a script file, it suspends execution of the rest of the file, refreshes the image on the screen and allows manipulation of the image using the mouse and scroll bars, or resizing of the graphics window. Once a key is pressed, control returns to the script file at the line following the pause command. While a script is suspended the molecule may be rotated, translated, scaled, slabbed and picked as usual โ€” but all menu commands are disabled. So close, yet so far. ๐Ÿ˜ญ

โญ Play โญ

The play command specifies the recording medium from which to play back a movie. The playback frame start time is given in seconds to millisecond precision. Since we are working on computers, the medium is specified as a set of files, each marked with the playback frame start time in milliseconds as part of the name. The place in the name at which to look for the playback frame start time in milliseconds is marked by the characters "ssssss" with an appropriate number of digits. RasMol accepts either upper or lower case s's or decimal digits to mark the place for the time. ๐ŸŽฌ

The play off and play eject commands effectively remove the specified medium from use. If no medium is specified, play off suspends playing and play on resumes playing. Normally play starts immediately and runs to the end of the medium. However, if play off and/or some combination of play from and play until is entered before play type medium, those settings will be used.

As of release 2.7.5, RasMol supports play from scripts and data files. Upgrade lore. โœจ

๐Ÿ“ Print ๐Ÿ“

The print command sends the currently displayed image to the local default printer using the operating system's native printer driver.

Heads up bestie: this command is not yet supported under UNIX or VMS. It's intended to take advantage of Microsoft Windows and Apple Macintosh printer drivers. For example, this allows images to be printed directly on a dot matrix printer. ๐Ÿ’€

When using RasMol on a UNIX or VMS system, this functionality may be achieved by either generating a PostScript file using the write ps or write vectps commands and printing that, or generating a raster image file and using a utility to dump that to the local printer.

๐ŸŽ€ Quit ๐ŸŽ€

Exit from the RasMol program. The commands exit and quit are synonymous โ€” except within nested scripts. In that case, exit terminates only the current level, while quit terminates all nested levels of scripts. So exit is the polite goodbye and quit is the full dramatic departure. ๐Ÿ‘‹

๐ŸŒŸ Record ๐ŸŒŸ

The record command specifies the recording medium to hold the movie. Since we are working on computers, the medium is specified as a template for a set of files, each marked with the playback frame start time in milliseconds (rather than as seconds, to avoid embedding a decimal point) as part of the name. The place in the name to be replaced with the playback frame start time in milliseconds is marked by the characters "ssssss" with an appropriate number of digits. RasMol accepts either upper or lower case s's or decimal digits to mark the place for the time. ๐ŸŽฅ

The record off commands remove the specified medium from use. If no medium is specified, record off suspends recording and record on resumes recording with the next available time on the same medium. The screen is the default medium and is, by default, on. Writing to disk must be explicitly specified so that the disk does not get filled up unintentionally. (She's careful like that. ๐Ÿ’…) The type of a recording medium may be an image type such as gif, pict or png to record the actual screen images, or script to record the RasMol commands used to generate the frames.

Normally recording starts at playback frame start time 0 seconds. A non-zero starting time in seconds can be specified with the record from command as in record from 25 or record from 37.25, to help in organizing scenes of movies to be assembled later in an appropriate order. The record until command allows an upper limit to be set on recording time in seconds. The default is to have no limit. Issuing the commands

record from 600

record until 1800

would result in a 20 minute movie segment intended to start 10 minutes into a longer movie. These commands allow control over rewriting selected time segments. Cinema. ๐Ÿฟ

๐ŸŒˆ Refresh ๐ŸŒˆ

The refresh command redraws the current image. This is useful in scripts to ensure application of a complex list of parameter changes. Sometimes you just gotta hit the glow-up button. โœจ

๐Ÿ’– Renumber ๐Ÿ’–

The renumber command sequentially numbers the residues in a macromolecular chain. The optional parameter specifies the value of the first residue in the sequence. By default, this value is one. For proteins, each amino acid is numbered consecutively from the N terminus to the C terminus. For nucleic acids, each base is numbered from the 5' terminus to the 3' terminus. All chains in the current database are renumbered and gaps in the original sequence are ignored. The starting value for numbering may be negative. Glow-up from the ground up. ๐Ÿ”ข

๐Ÿ’œ Reset ๐Ÿ’œ

The reset command restores the original viewing transformation and centre of rotation. The scale is set to its default value, zoom 100, the centre of rotation is set to the geometric centre of the currently loaded molecule, centre all, this centre is translated to the middle of the screen and the viewpoint set to the default orientation. Full factory reset of the vibe. ๐Ÿซง

Do not mistake this for the zap command, bestie โ€” zap deletes the currently stored molecule, returning the program to its initial state. reset just fixes your camera angle. Different energy entirely. ๐Ÿšจ

๐Ÿ’… Restrict

okay so Restrict is the main character of narrowing things down. It does two jobs at once: it defines the currently selected region of the molecule, AND it disables the representation of (most of) those parts of the molecule that are no longer selected. So like, the leftovers just vanish from the vibe check. โœจ

Every RasMol command after that which modifies a molecule's colour or representation only touches the currently selected region. The parameter of a restrict command is a RasMol atom expression that gets evaluated for every atom of the current molecule.

This command is very similar to the RasMol select command โ€” the one difference being that restrict disables the wireframe, spacefill and backbone representations in the non-selected region. so it's giving select but with consequences bestie ๐Ÿ’€

Type help expression for more info on RasMol atom expressions, or go peek at the section Atom Expressions.


๐ŸŽ€ Ribbons

The RasMol ribbons command displays the currently loaded protein or nucleic acid as a smooth solid "ribbon" surface passing along the backbone of the protein. Iconic. ๐Ÿฆ‹

The ribbon is drawn between each amino acid whose alpha carbon is currently selected. The colour of the ribbon is changed by the RasMol colour ribbon command. If the current ribbon colour is none (that's the default), the colour is taken from the alpha carbon at each position along its length.

The width of the ribbon at each position is determined by the optional parameter, in the usual RasMol units. By default the width of the ribbon is taken from the secondary structure of the protein โ€” or a constant value of 720 (2.88 Angstroms) for nucleic acids. The default width of protein alpha helices and beta sheets is 380 (1.52 Angstroms), and 100 (0.4 Angstroms) for turns and random coil. ๐Ÿ’ซ

The secondary structure assignment is either from the PDB file or calculated using the DSSP algorithm as used by the structure command.

This command is similar to the RasMol command strands, which renders the biomolecular ribbon as parallel depth-cued curves. lowkey siblings fr fr


๐Ÿ”„ Rotate

Rotate the molecule about the specified axis. Permitted values for the axis parameter are "x", "y", "z" and "bond". The integer parameter states the angle in degrees for the structure to be rotated.

  • For the X and Y axes, positive values move the closest point up and right, and negative values move it down and left, respectively. ๐Ÿ‘†๐Ÿ‘‰
  • For the Z axis, a positive rotation acts clockwise and a negative angle anti-clockwise. ๐Ÿ•

Alternatively, this command may be used to specify which rotations the mouse or dials will control. If rotate bond true is selected, the horizontal scroll bar will control rotation around the axis selected by the bond src dst pick command. If rotate all true is selected, and multiple molecules have been loaded, then all molecules will rotate together. ๐ŸŒˆ In all other cases, the mouse and dials control the rotation of the molecule selected by the molecule n command.


๐Ÿ‡ท๐Ÿ‡บ Russian

The RasMol Russian command sets the menus and messages to the Russian versions. ะพั‡ะตะฝัŒ slay ๐Ÿ’œ

This command may not work correctly unless appropriate fonts have been installed.

The commands Bulgarian, Chinese, English, French, Italian, Russian and Spanish may be used to select Bulgarian, Chinese, English, French, Italian, Japanese, Russian and Spanish menus and messages if the appropriate fonts have been installed.


๐Ÿ’พ Save

Save the currently selected set of atoms in a Protein Data Bank (PDB), Wide PDB (WPDB), mmCIF (CIF), MDL, Alchemy(tm) or XYZ format file. ๐Ÿ—‚๏ธ

Some of the implementations are only sufficient for reloading in RasMol and may need to be supplemented for use by programs other than RasMol. so like, it does the job for us but don't hand it to strangers ngl

Atom serial numbers are regenerated. When this will result in more than 99,999 atoms being written in PDB format, numbers may be repeated. If possible the repeats are done by using the same numbers in different NMR models.

The distinction between this command and the RasMol write command has been dropped. The only difference is that without a format specifier the save command generates a PDB file and the write command generates a GIF image. ๐Ÿ“ธ


๐Ÿ“œ Script

The RasMol script command reads a set of RasMol commands sequentially from a text file and executes them. This allows sequences of commonly used commands to be stored and performed by a single command. peak efficiency, we love to see it โœจ

A RasMol script file may contain a further script command up to a maximum "depth" of 10, allowing complicated sequences of actions to be executed. RasMol ignores all characters after the first '#' character on each line, allowing the scripts to be annotated. Script files are often also annotated using the RasMol echo command.

The most common way to generate a RasMol script file is to use the write script or write rasmol commands to output the sequence of commands that are needed to regenerate the current view, representation and colouring of the currently displayed molecule. it's giving time capsule ๐Ÿซถ

The RasMol command source is synonymous with the script command.


๐ŸŽฏ Select

Define the currently selected region of the molecule. All subsequent RasMol commands that manipulate a molecule or modify its colour or representation only affect the currently selected region.

The parameter of a select command is a RasMol expression that is evaluated for every atom of the current molecule. The currently selected (active) region of the molecule is those atoms that cause the expression to evaluate true. To select the whole molecule use the RasMol command select all. ๐Ÿ‘‘

The behaviour of the select command without any parameters is determined by the RasMol hetero and hydrogen parameters.

Type help expression for more information on RasMol atom expressions, or see section Atom Expressions.


โš™๏ธ Set

The RasMol set command allows the user to alter various internal program parameters, such as those controlling rendering options. Each parameter has its own set of permissible parameter options. Typically, omitting the parameter option resets that parameter to its default value. A list of valid parameter names is given below. ๐Ÿ‘‡


๐Ÿ” Show

The RasMol show command displays details of the status of the currently loaded molecule.

  • show information lists the molecule's name, classification, PDB code and the number of atoms, chains and groups it contains. If hydrogen bonding, disulphide bridges or secondary structure have been determined, the number of hbonds, ssbonds, helices, ladders and turns are also displayed, respectively.
  • show centre shows any non-zero centering values selected by the centre [CenX, CenY, CenZ] command.
  • show phipsi shows the phi and psi angles of the currently selected residues and the omega angles of cis peptide bonds.
  • show RamPrint (or 'show RPP' or 'show RamachandranPrinterPlot') shows a simple Ramachandran printer plot in the style of Frances Bernstein's fisipl program.
  • show rotation (or 'show rot' or 'show 'rotate') shows the currently selected values of z, y, x and bond rotations, if any.
  • show selected (or 'show selected group' or 'show selected chain' or 'show selected atom') shows the groups (default), chains or atoms of the current selection.
  • show sequence lists the residues that comprise each chain of the molecule.
  • show symmetry shows the space group and unit cell of the molecule.
  • show translation shows any non-zero translation values selected by the translate <axis> <value> command.
  • show zoom shows any non-zero zoom value selected by the zoom <value> command.

๐Ÿ”ช Slab

The RasMol slab command enables, disables or positions the z-clipping plane of the molecule. The program only draws those portions of the molecule that are further from the viewer than the slabbing plane.

Integer values range from zero at the very back of the molecule to 100, which is completely in front of the molecule. Intermediate values determine the percentage of the molecule to be drawn. it's giving โœ‚๏ธ but for atoms

This command interacts with the depth <value> command, which clips to the rear of a given z-clipping plane.


โšช Spacefill

The RasMol spacefill command is used to represent all of the currently selected atoms as solid spheres. This command is used to produce both union-of-spheres and ball-and-stick models of a molecule. ๐Ÿ”ฎ

  • spacefill true โ€” the default โ€” represents each atom as a sphere of van der Waals radius.
  • spacefill off โ€” turns off the representation of the selected atom as spheres.

A sphere radius may be specified as an integer in RasMol units (1/250th Angstrom) or a value containing a decimal point. A value of 500 (2.0 Angstroms) or greater results in a "Parameter value too large" error. ๐Ÿšจ

  • The temperature option sets the radius of each sphere to the value stored in its temperature field. Zero or negative values have no effect and values greater than 2.0 are truncated to 2.0.
  • The user option allows the radius of each sphere to be specified by additional lines in the molecule's PDB file using Raster 3D's COLOUR record extension.

The RasMol command cpk is synonymous with the spacefill command.

The RasMol command cpknew is synonymous with the spacefill command, except that a slightly different set of colours is used. ๐Ÿ’…


๐Ÿ‡ช๐Ÿ‡ธ Spanish

The RasMol Spanish command sets the menus and messages to the Spanish versions. ยกperfecto! ๐ŸŒธ

This command may not work correctly unless appropriate fonts have been installed.

The commands Bulgarian, Chinese, English, French, Italian, Russian and Spanish may be used to select Bulgarian, Chinese, English, French, Italian, Japanese, Russian and Spanish menus and messages if the appropriate fonts have been installed.

๐Ÿ’– SSBonds ๐Ÿ’–

okay so the RasMol ssbonds command is literally how you represent the disulphide bridges of a protein molecule โ€” either as dotted lines or as cylinders between the connected cysteines. The first time you use ssbonds, the program goes on a little scavenger hunt through the protein structure to find half-cysteine pairs (cysteines whose sulphurs are within 3 Angstroms of each other) and then reports the number of bridges to you. Cute, right? ๐ŸŽ€

The command ssbonds on displays the selected "bonds" as dotted lines, and ssbonds off disables the display of ssbonds in the currently selected area. Selection of disulphide bridges is identical to normal bonds, and may be adjusted using the RasMol set bondmode command. The colour of disulphide bonds may be changed using the colour ssbonds command. By default, each disulphide bond has the colours of its connected atoms. โœจ

By default disulphide bonds are drawn between the sulphur atoms within the cysteine groups. By using the set ssbonds command the position of the cysteine's alpha carbons may be used instead. ๐Ÿฆ‹


โญ Star โญ

The RasMol star command represents all of the currently selected atoms as stars (six strokes, one each in the x, -x, y, -y, z and -z directions). The commands select not bonded followed by star 75 are useful to mark unbonded atoms in a wireframe display with less overhead than provided by spacefill 75. This can be done automatically for all subsequent wireframe displays with the command set bondmode not bonded. ๐Ÿ’…

The command star true, the default, represents each atom as a star with strokes length equal to van der Waals radius. The command star off turns off the representation of the selected atom as stars. A star stroke length may be specified as an integer in RasMol units (1/250th Angstrom) or a value containing a decimal point. A value of 500 (2.0 Angstroms) or greater results in a "Parameter value too large" error. ๐Ÿ˜ญ

The temperature option sets the stroke length of each star to the value stored in its temperature field. Zero or negative values have no effect and values greater than 2.0 are truncated to 2.0. The user option allows the stroke length of each star to be specified by additional lines in the molecule's PDB file using Raster 3D's COLOUR record extension. ๐Ÿ‘‘

The RasMol spacefill command can be used for more artistic rendering of atoms as spheres. ๐ŸŒˆ


๐Ÿ‘€ Stereo ๐Ÿ‘€

The RasMol stereo command provides side-by-side stereo display of images. Stereo viewing of a molecule may be turned on (and off) either by selecting Stereo from the Options menu, or by typing the commands stereo on or stereo off. ๐Ÿซถ

Starting with RasMol version 2.7.2.1, the Stereo menu selection and the command stereo without arguments cycle from the initial state of stereo off to stereo on in cross-eyed mode to stereo on in wall-eyed mode and then back to stereo off. ๐Ÿ”„

The separation angle between the two views may be adjusted with the set stereo [-] <number> command, where positive values result in crossed eye viewing and negative values in relaxed (wall-eyed) viewing. The inclusion of [-] <number> in the stereo command, as for example in stereo 3 or stereo -5, also controls angle and direction. โœจ

The stereo command is only partially implemented. When stereo is turned on, the image is not properly recentred. (This can be done with a translate x -<number> command.) It is not supported in vector PostScript output files, is not saved by the write script command, and in general is not yet properly interfaced with several other features of the program. ๐Ÿ’€

๐ŸŽ€ Strands ๐ŸŽ€

The RasMol strands command displays the currently loaded protein or nucleic acid as a smooth "ribbon" of depth-cued curves passing along the backbone of the protein. The ribbon is composed of a number of strands that run parallel to one another along the peptide plane of each residue. The ribbon is drawn between each amino acid whose alpha carbon is currently selected. The colour of the ribbon is changed by the RasMol colour ribbon command. If the current ribbon colour is none (the default), the colour is taken from the alpha carbon at each position along its length. The central and outermost strands may be coloured independently using the colour ribbon1 and colour ribbon2 commands, respectively. The number of strands in the ribbon may be altered using the RasMol set strands command. ๐Ÿฆ‹

The width of the ribbon at each position is determined by the optional parameter in the usual RasMol units. By default the width of the ribbon is taken from the secondary structure of the protein or a constant value of 720 for nucleic acids (which produces a ribbon 2.88 Angstroms wide). The default width of protein alpha helices and beta sheets is 380 (1.52 Angstroms) and 100 (0.4 Angstroms) for turns and random coil. The secondary structure assignment is either from the PDB file or calculated using the DSSP algorithm as used by the structure command. This command is similar to the RasMol command ribbons which renders the biomolecular ribbon as a smooth shaded surface. ๐Ÿ’–


๐Ÿงฌ Structure ๐Ÿงฌ

The RasMol structure command calculates secondary structure assignments for the currently loaded protein. If the original PDB file contained structural assignment records (HELIX, SHEET and TURN) these are discarded. Initially, the hydrogen bonds of the current molecule are found, if this hasn't been done already. The secondary structure is then determined using Kabsch and Sander's DSSP algorithm. Once finished the program reports the number of helices, strands and turns found. ๐Ÿ”ฅ


๐Ÿซง Surface ๐Ÿซง

The RasMol surface command renders a Lee-Richards molecular surface resulting from rolling a probe atom on the selected atoms. The value given specifies the radius of the probe. If given in the first form, the evolute of the surface of the probe is shown (the solvent excluded surface). If given in the second form, the envelope of the positions of the center of the probe is shown (the solvent accessible surface). ๐Ÿ’…


โœจ Trace โœจ

The RasMol trace command displays a smooth spline between consecutive alpha carbon positions. This spline does not pass exactly through the alpha carbon position of each residue, but follows the same path as ribbons, strands and cartoons. Note that residues may be displayed as ribbons, strands, cartoons or as a trace. Enabling one of these representations disables the others. However, a residue may be displayed simultaneously as backbone and as one of the above representations. This may change in future versions of RasMol. Prior to version 2.6, trace was synonymous with backbone. ๐Ÿฆ‹

Trace temperature displays the backbone as a wider cylinder at high temperature factors and thinner at lower. This representation is useful to X-ray crystallographers and NMR spectroscopists. ๐Ÿ‘‘


๐Ÿšš Translate ๐Ÿšš

The RasMol translate command moves the position of the centre of the molecule on the screen. The axis parameter specifies along which axis the molecule is to be moved and the integer parameter specifies the absolute position of the molecule centre from the middle of the screen. Permitted values for the axis parameter are "x", "y" and "z". Displacement values must be between -100 and 100 which correspond to moving the current molecule just off the screen. A positive "x" displacement moves the molecule to the right, and a positive "y" displacement moves the molecule down the screen. The pair of commands translate x 0 and translate y 0 centres the molecule on the screen. ๐Ÿ’–


๐Ÿ’€ UnBond ๐Ÿ’€

The RasMol command unbond <number> <number> removes the designated bond from the drawing. โœ‚๏ธ

The command unbond without arguments removes a bond previously picked by the bond <number> <number> pick command. ๐Ÿ™ˆ


๐Ÿ•ธ๏ธ Wireframe ๐Ÿ•ธ๏ธ

The RasMol wireframe command represents each bond within the selected region of the molecule as a cylinder, a line or a depth-cued vector. The display of bonds as depth-cued vectors (drawn darker the further away from the viewer) is turned on by the command wireframe or wireframe on. The selected bonds are displayed as cylinders by specifying a radius either as an integer in RasMol units or containing a decimal point as a value in Angstroms. A parameter value of 500 (2.0 Angstroms) or above results in an "Parameter value too large" error. Bonds may be coloured using the colour bonds command. ๐ŸŒˆ

If the selected bonds involved atoms of alternate conformers then the bonds are narrowed in the middle to a radius of .8 of the specified radius (or to the radius specified as the optional second parameter). ๐Ÿ‘‘

Non-bonded atoms, which could become invisible in an ordinary wireframe display can be marked by a preceding set bondmode not bonded command. If nearly co-linear bonds to atoms cause them to be difficult to see in a wireframe display, the set bondmode all command will add markers for all atoms in subsequent wireframe command executions. โœจ

  • write โ€” okay so this one writes your current image out to a file in a standard format, bestie. The image file formats it supports rn are bmp (Microsoft bitmap), gif (Compuserve GIF), iris (IRIS RGB), ppm (Portable Pixmap), ras (Sun rasterfile), ps and epsf (Encapsulated PostScript), monops (Monochrome Encapsulated PostScript), pict (Apple PICT), and vectps (Vector Postscript). โœจ

But wait, there's more โ€” write can also spit out command scripts for other graphics programs. The script format writes a file full of RasMol script commands that reproduce your current image. The molscript format writes out the commands you need to render the current view of the molecule as ribbons in Per Kraulis' Molscript program, and the kinemage format does the same for David Richardson's program Mage. ๐ŸŽ€

And for further processing (iykyk), you've got: povray (POVRay 2), povray3 (POVRay 3 โ€” still under development, lowkey), and vrml (a VRML file).

Finally, there's a whole lil squad of formats for phi-psi data โ€” for listing, or for phipsi (phi-psi data as an annotated list with cis omegas), ramachan and RDF and RamachandranDataFile (phi-psi data as columns of numbers for gnuplot), RPP and RamachandranPrinterPlot (phi-psi data as a printer plot). ๐Ÿ’…

Also the distinction between this command and the RasMol save command has been dropped. The only difference is that without a format specifier, save generates a PDB file and write generates a GIF image. No cap.

  • zap โ€” deletes the contents of the current database and resets parameter variables to their initial default state. Clean slate energy. ๐Ÿงนโœจ
  • zoom โ€” changes the magnification of the currently displayed image. Boolean parameters either magnify or reset the scale of the current molecule. An integer parameter specifies the desired magnification as a percentage of the default scale. The minimum parameter value is 10; the maximum parameter value depends on the size of the molecule being displayed. For medium sized proteins this is about 500.

๐ŸŒธ SET PARAMETERS ๐ŸŒธ

RasMol has a number of internal parameters that may be modified using the set command. These parameters control a bunch of program options like rendering options and mouse button mappings. ๐Ÿ‘‘

picking         play.fps        radius          record.aps

๐Ÿ’– Set Ambient ๐Ÿ’–

The RasMol ambient parameter controls the amount of ambient (aka surrounding) light in the scene. The ambient value must be between 0 and 100. It controls the percentage intensity of the darkest shade of an object. For a solid object, this is the intensity of surfaces facing away from the light source or in shadow. For depth-cued objects, this is the intensity of objects furthest from the viewer.

This parameter is commonly used to correct for monitors with different "gamma values" (brightness), to change how light or dark a hardcopy image appears when printed, or to alter the feeling of depth for wireframe or ribbon representations. ๐ŸŒˆ

โœจ Set Axes โœจ

The RasMol axes parameter controls the display of orthogonal coordinate axes on the current display. The coordinate axes are those used in the molecule data file, and the origin is the centre of the molecule's bounding box. The set axes command is similar to the commands set boundbox and set unitcell that display the bounding box and the crystallographic unit cell, respectively.

๐Ÿฆ‹ Set Backfade ๐Ÿฆ‹

The RasMol backfade parameter controls backfade to the specified background colour, rather than black. This is controlled by the commands set backfade on and set backfade off. For example, this may be used to generate depth-cued images that fade to white, rather than black. ๐Ÿค

๐ŸŽ€ Set Background ๐ŸŽ€

The RasMol background parameter sets the colour of the "canvas" background. The colour may be given as either a colour name or a comma separated triple of Red, Green, Blue (RGB) components enclosed in square brackets. Typing the command help colours will give you a list of the predefined colour names recognised by RasMol. When running under X Windows, RasMol also recognises colours in the X server's colour name database. ๐Ÿ’œ

The command set background is synonymous with the RasMol command background.

๐Ÿ’… Set BondMode ๐Ÿ’…

The RasMol set bondmode command controls the mechanism used to select individual bonds and modifies the display of bonded and non-bonded atoms by subsequent wireframe commands.

When using the select and restrict commands, a given bond will be selected if i) the bondmode is or and either of the connected atoms is selected, or ii) the bondmode is and and both atoms connected by the bond are selected. Hence an individual bond may be uniquely identified by using the command set bondmode and and then uniquely selecting the atoms at both ends. ๐ŸŽฏ

The bondmode [all | none | not bonded] commands add star 75 or spacefill 75 markers for the designated atoms to wireframe displays. Stars are used when the specified wireframe radius is zero.

โญ Set Bonds โญ

The RasMol bonds parameter controls display of double and triple bonds as multiple lines or cylinders. Currently bond orders are only read from MDL Mol files, Sybyl Mol2 format files, Tripos Alchemy format files, CIF and mmCIF, and suitable PDB files. Double (and triple) bonds are specified in some PDB files by specifying a given bond twice (and three times) in CONECT records. The command set bonds on enables the display of bond orders, and the command set bonds off disables them.

๐ŸŒŸ Set BoundBox ๐ŸŒŸ

The RasMol boundbox parameter controls the display of the current molecule's bounding box on the display. The bounding box is orthogonal to the data file's original coordinate axes. The set boundbox command is similar to the commands set axes and set unitcell that display orthogonal coordinate axes and the bounding box, respectively.

๐Ÿงš Set Cartoon ๐Ÿงš

The RasMol cartoon parameter controls display of the cartoon version of the ribbons display. By default, the C-termini of beta-sheets are displayed as arrow heads. This may be enabled and disabled using the set cartoons <boolean> command. The depth of the cartoon may be adjusted using the cartoons <number> command. The set cartoons command without any parameters returns these two options to their default values.

๐Ÿ’œ Set CisAngle ๐Ÿ’œ

The RasMol cisangle parameter controls the cutoff angle for identifying cis peptide bonds. If no value is given, the cutoff is set to 90 degrees.

๐Ÿ”ฅ Set Display ๐Ÿ”ฅ

This command controls the display mode within RasMol. By default, set display normal, RasMol displays the molecule in the representation specified by the user. The command set display selected changes the display mode such that the molecule is temporarily drawn so as to indicate the currently selected portion of the molecule. The user specified colour scheme and representation remain unchanged. In this representation all selected atoms are shown in yellow and all non selected atoms are shown in blue. The colour of the background is also changed to a dark grey to indicate the change of display mode. This command is typically only used by external Graphical User Interfaces (GUIs).

๐ŸŒธ Set FontSize ๐ŸŒธ

The RasMol set fontsize command controls the size of the characters that form atom labels. This value corresponds to the height of the displayed character in pixels. The maximum value of fontsize is 48 pixels, and the default value is 8 pixels high. Fixed or proportional spacing may be selected by appending the "FS" or "PS" modifiers, respectively. The default is "FS". To display atom labels on the screen use the RasMol label command, and to change the colour of displayed labels, use the colour labels command. โœจ

๐ŸŽ€ Set FontStroke ๐ŸŽ€

The RasMol set fontstroke command controls the size of the stroke width of the characters that form atom labels. This value is the radius in pixels of cylinders used to form the strokes. The special value of "0" is the default, used for the normal single pixel stroke width, which allows for rapid drawing and rotation of the image. Non-zero values are provided to allow for more artistic atom labels for publication, at the expense of extra time in rendering the image. ๐Ÿ’…

When wider strokes are used, a larger font size is recommended, e.g. by using the RasMol set fontsize 24 PS command, followed by set fontstroke 2.

To display atom labels on the screen use the RasMol label command, and to change the colour of displayed labels use the colour labels command.

๐Ÿฆ‹ Set HBonds ๐Ÿฆ‹

The RasMol hbonds parameter determines whether hydrogen bonds are drawn between the donor and acceptor atoms of the hydrogen bond, set hbonds sidechain, or between the alpha carbon atoms of the protein backbone and between the phosphorous atoms of the nucleic acid backbone, set hbonds backbone. The actual display of hydrogen bonds is controlled by the hbonds command. Drawing hydrogen bonds between protein alpha carbons or nucleic acid phosphorous atoms is useful when the rest of the molecule is shown in only a schematic representation such as backbone, ribbons or strands. This parameter is similar to the RasMol ssbonds parameter.

๐ŸŒˆ Set Hetero ๐ŸŒˆ

The RasMol hetero parameter modifies the 'default' behaviour of the RasMol select command, i.e. the behaviour of select without any parameters. When this value is false, the default select region does not include any heterogeneous atoms (refer to the predefined set hetero). When this value is true, the default select region may contain hetero atoms. This parameter is similar to the RasMol hydrogen parameter which determines whether hydrogen atoms should be included in the default set. If both hetero and hydrogen are true, select without any parameters is equivalent to select all. ๐Ÿ‘‘

Set HourGlass โณ

Okay so the RasMol hourglass parameter is literally just the on/off switch for the little 'hour glass' cursor RasMol shows when it's busy drawing the next frame. set hourglass on turns the indicator on, and set hourglass off stops RasMol from touching your cursor at all.

And bestie, this one is a godsend when you're:

  • spinning the molecule ๐ŸŒ€
  • running a sequence of commands from a script file
  • using interprocess communication to execute complex sequences of commands

Because in all those cases a 'flashing' cursor is justโ€ฆ distracting. ๐Ÿ’€ Turning it off keeps the vibe calm. ๐Ÿง˜


Set Hydrogen ๐Ÿซง

The RasMol hydrogen parameter messes with the "default" behaviour of the RasMol select command โ€” meaning what select does when you give it no parameters at all.

  • When this value is false, the default select region does not include any hydrogen, deuterium or tritium atoms (go look at the predefined set hydrogen).
  • When this value is true, the default select region may contain hydrogen atoms. โœจ

It's the sibling of the RasMol hetero parameter, which decides whether heterogeneous atoms get included in the default set. And if both hydrogen and hetero are true, then select with no parameters is equivalent to select all. Periodt. ๐Ÿ’…


Set Kinemage ๐ŸŽ€

The set kinemage command controls how much detail gets stored in a Kinemage output file made by the RasMol write kinemage command. These output kinemage files are meant to be displayed by David Richardson's Mage program. ๐Ÿงš

  • set kinemage false โ€” the default โ€” only stores the currently displayed representation in the generated output file. Simple. Clean. Minimal.
  • set kinemage true โ€” generates a way more complex Kinemage that contains both the wireframe and backbone representations, plus the coordinate axes, bounding box and crystal unit cell. It's giving deluxe. ๐Ÿ‘‘

Set Menus ๐ŸŒธ

The set menus command enables the canvas window's menu buttons or menu bar. Ngl this is typically only used by graphical user interfaces, or when you wanna create as large an image as possible on Microsoft Windows. ๐ŸชŸ


Set Monitor ๐Ÿ”

The set monitor command enables monitors. You can turn those distance monitor labels off with set monitor off, and bring them right back with set monitor on. Toggle toggle toggle. ๐ŸŽš๏ธ


Set Mouse ๐Ÿ–ฑ๏ธ

The set mouse command sets your rotation, translation, scaling and zooming mouse bindings. Default value is rasmol, which is suitable for two button mice (for three button mice, the second and third buttons are synonymous, iykyk).

  • X-Y rotation โ†’ first button
  • X-Y translation โ†’ second button
  • [Shift] + first button โ†’ scaling
  • [shift] + second button โ†’ Z-rotation
  • [control] + first mouse button โ†’ controls the clipping plane

The insight and quanta options give you the same mouse bindings as those other packages, for the experienced users out there. ๐ŸŒˆ


Set Picking โœจ

The set picking series of commands affects how a user may interact with a molecule displayed on the screen in RasMol. Buckle up bestie, there's a lot here. ๐Ÿซถ

Enabling/Disabling Atom Identification Picking: Clicking on an atom with the mouse results in identification and the display of its residue name, residue number, atom name, atom serial number and chain in the command window. This behavior may be disabled with set picking none and restored with set picking ident. And set picking coord adds the atomic coordinates of the atom to the display. ๐Ÿ“

Disabling picking with set picking off is useful when executing the pause command in RasMol scripts, because it prevents the display of spurious message on the command line while the script is suspended. ๐Ÿ™ˆ

Measuring Distances, Angles and Torsions: Interactive measurement of distances, angles and torsions is achieved using these commands:

  • set picking distance
  • set picking monitor
  • set picking angle
  • set picking torsion

In these modes, clicking on an atom results in it being identified on the rasmol command line. On top of that, every atom picked increments a modulo counter, so that:

  • in distance mode, every second atom displays the distance (or distance monitor) between this atom and the previous one ๐Ÿ“
  • in angle mode, every third atom displays the angle between the previous three atoms ๐Ÿ“
  • in torsion mode, every fourth atom displays the torsion between the last four atoms ๐ŸŒ€

By holding down the shift key while picking an atom, this modulo counter is not incremented โ€” which lets you, for example, display the distances of consecutive atoms from a fixed atom. See the monitor command for how to control the display of distance monitor lines and labels. ๐Ÿ‘€

Labelling Atoms with the Mouse: The mouse may also be used to toggle the display of an atom label on a given atom. The command set picking label removes a label from a picked atom if it already has one, or displays a concise label at that atom position otherwise. ๐Ÿท๏ธ

Centring Rotation with the Mouse: A molecule may be centred on a specified atom position using set picking centre or set picking center. In this mode, picking an atom causes all further rotations to be about that point. ๐ŸŽฏ

Picking a Bond as a Rotation Axis: Any bond may be picked as an axis of rotation for the portion of the molecule beyond the second atom selected.

โš ๏ธ This feature should be used with caution, since, naturally, it changes the conformation of the molecule. ๐Ÿ’€

After executing set picking bond or using the equivalent "Pick Bond" in the "Settings" menu, a bond to be rotated is picked with the same sort of mouse clicks as are used for picking atoms for a distance measurement. Normally this should be done where a bond exists, but if no bond exists, it will be added. The bond cannot be used for rotation if it is part of a ring of any size. All bonds selected for rotation are remembered so that they can be properly reported when writing a script, but only the most recently selected bond may be actively rotated. ๐Ÿ”—

Enabling Atom/Group/Chain Selection Picking: Atoms, groups and chains may be selected (as if with the select command), with:

  • set picking atom
  • set picking group
  • set picking chain

For each of these commands, the shift key may be used to have a new selection added to the old, and the control key may be used to have a new selection deleted from the old.

  • When the set picking atom command is given, the mouse can be used to pick or to drag a box around the atoms for which selection is desired. ๐Ÿ“ฆ
  • When the set picking group command is given, picking any an atom will cause selection of all atoms which agree in residue number with the picked atom, even if in different chains.
  • When the set picking chain command is given, picking any atom will cause selection of all atoms which agree in chain identifier with the picked atom. โ›“๏ธ

Set Play โ–ถ๏ธ

The set play.fps command gives the number of frames per second for playback by the play command (default 24 frames per second).

Heads up: in the current release of RasMol, the play timing is not controlled by this parameter. ๐Ÿ˜ญ

Set Radius ๐Ÿ”ต

The set radius command is used to alter the behaviour of the RasMol dots command depending upon the value of the solvent parameter. When solvent is true, the radius parameter controls whether a true van der Waals' surface is generated by the dots command. If the value of radius is anything other than zero, that value is used as the radius of each atom instead of its true vdW value.

When the value of solvent is true, this parameter determines the 'probe sphere' (solvent) radius. The parameter may be given as an integer in rasmol units or containing a decimal point in Angstroms. The default value of this parameter is determined by the value of solvent, and changing solvent resets radius to its new default value. โ™ป๏ธ


Set Record โบ๏ธ

The set record.aps gives the maximum on-screen velocity in Angstroms per second in animating translations, rotations and zooms (default 10 A/second).

The set record.aps command gives number of frames per second for recording by the record command (default 24 frames per second).

The set record.dwell command sets the time in seconds to dwell on a change in appearance (default .5 sec).

(Yep, the original says record.aps twice, bestie โ€” we don't question the lore, we just report it. ๐Ÿซก)


Set ShadePower ๐Ÿ’ก

The shadepower parameter (adopted from RasTop) determines the shade repartition (the contrast) used in rendering solid objects. This value between 0 and 100 adjusts shading on an object surface oriented along the direction to the light source.

Changing the shadepower parameter does not change the maximum or the minimum values of this shading, the way changing the ambient parameter does.

  • A value of 100 concentrates the light on the top of spheres, giving a highly specular, glassy rendering (see the specpower parameter). โœจ
  • A value of 0 distributes the light on the entire object. ๐ŸŒž

This implementation of shadepower differs from the one in RasTop only in the choice of range (0 to 100 versus -20 to 20 in RasTop).


Set Shadow ๐ŸŒ‘

The set shadow command enables and disables ray-tracing of the currently rendered image. Currently only the spacefilling representation is shadowed or can cast shadows.

Enabling shadowing will automatically disable the Z-clipping (slabbing) plane using the command slab off. Ray-tracing typically takes about several seconds for a moderately sized protein. โฑ๏ธ

๐Ÿ’– It is recommended that shadowing be normally disabled whilst the molecule is being transformed or manipulated, and only enabled once an appropriate viewpoint is selected, to provide a greater impression of depth.

Set SlabMode ๐Ÿ’…

The RasMol slabmode parameter controls the rendering method of objects cut by the slabbing (z-clipping) plane. Valid slabmode parameters are "reject", "half", "hollow", "solid" and "section".


Set Solvent ๐Ÿ’ง

The RasMol set solvent command is used to control the behaviour of the RasMol dots command. Depending upon the value of the solvent parameter, the dots command either generates a van der Waals' or a solvent accessible surface around the currently selected set of atoms. Changing this parameter automatically resets the value of the RasMol radius parameter. The command set solvent false, the default value, indicates that a van der Waals' surface should be generated and resets the value of radius to zero. The command set solvent true indicates that a 'Connolly' or 'Richards' solvent accessible surface should be drawn and sets the radius parameter, the solvent radius, to 1.2 Angstroms (or 300 RasMol units).


Set Specular โœจ

The RasMol set specular command enables and disables the display of specular highlights on solid objects drawn by RasMol. Specular highlights appear as white reflections of the light source on the surface of the object. The current RasMol implementation uses an approximation function to generate this highlight.

The specular highlights on the surfaces of solid objects may be altered by using the specular reflection coefficient, which is altered using the RasMol set specpower command.


Set SpecPower ๐Ÿ’Ž

The specpower parameter determines the shininess of solid objects rendered by RasMol. This value between 0 and 100 adjusts the reflection coefficient used in specular highlight calculations. The specular highlights are enabled and disabled by the RasMol set specular command. Values around 20 or 30 produce plastic looking surfaces. High values represent more shiny surfaces such as metals, while lower values produce more diffuse/dull surfaces.


Set SSBonds ๐Ÿงฌ

The RasMol ssbonds parameter determines whether disulphide bridges are drawn between the sulphur atoms in the sidechain (the default) or between the alpha carbon atoms in the backbone of the cysteines residues. The actual display of disulphide bridges is controlled by the ssbonds command. Drawing disulphide bridges between alpha carbons is useful when the rest of the protein is shown in only a schematic representation such as backbone, ribbons or strands. This parameter is similar to the RasMol hbonds parameter.


Set Stereo ๐Ÿ‘“

The RasMol set stereo parameter controls the separation between the left and right images. Turning stereo on and off doesn't reposition the centre of the molecule.

Stereo viewing of a molecule may be turned on (and off) either by selecting Stereo from the Options menu, or by typing the commands stereo on or stereo off.

The separation angle between the two views may be adjusted with the set stereo [-] <number> command, where positive values result in crossed eye viewing and negative values in relaxed (wall-eyed) viewing. Currently, stereo viewing is not supported in vector PostScript output files.


Set Strands ๐ŸŽ€

The RasMol strands parameter controls the number of parallel strands that are displayed in the ribbon representations of proteins. The permissible values for this parameter are 1, 2, 3, 4, 5 and 9. The default value is 5. The number of strands is constant for all ribbons being displayed. However, the ribbon width (the separation between strands) may be controlled on a residue by residue basis using the RasMol ribbons command.


Set Transparent ๐Ÿซฅ

The RasMol transparent parameter controls the writing of transparent GIFs by the write gif <filename> command. This may be controlled by the set transparent on and set transparent off commands.


Set UnitCell ๐Ÿ”ฎ

The RasMol unitcell parameter controls the display of the crystallographic unit cell on the current display. The crystal cell is only enabled if the appropriate crystal symmetry information is contained in the PDB, CIF or mmCIF data file. The RasMol command show symmetry display details of the crystal's space group and unit cell axes. The set unitcell command is similar to the commands set axes and set boundbox that display orthogonal coordinate axes and the bounding box, respectively.


Set VectPS ๐Ÿ–๏ธ

The RasMol vectps parameter is use to control the way in which the RasMol write command generates vector PostScript output files. The command set vectps on enables the use of black outlines around spheres and cylinder bonds producing "cartoon-like" high resolution output. However, the current implementation of RasMol incorrectly cartoons spheres that are intersected by more than one other sphere. Hence "ball and stick" models are rendered correctly but not large spacefilling spheres models. Cartoon outlines can be disabled, the default, by the command set vectps off.

bestie this one is literally a known bug in the current implementation, it's not a vibe, it's a documented flaw, ok? ๐Ÿ’€

Set Write ๐Ÿ“

The RasMol write parameter controls the use of the save and write commands within scripts, but it may only be executed from the command line. By default, this value is false, prohibiting the generation of files in any scripts executed at start-up (such as those launched from a WWW browser). However, animators may start up RasMol interactively: type set write on and then execute a script to generate each frame using the source command.


๐Ÿงช ATOM EXPRESSIONS ๐Ÿงช

RasMol atom expressions uniquely identify an arbitrary group of atoms within a molecule. Atom expressions are composed of either primitive expressions, predefined sets, comparison operators, within expressions, or logical (boolean) combinations of the above expression types.

The logical operators allow complex queries to be constructed out of simpler ones using the standard boolean connectives and, or and not. These may be abbreviated by the symbols "&", "|" and "!", respectively. Parentheses (brackets) may be used to alter the precedence of the operators. For convenience, a comma may also be used for boolean disjunction.

The atom expression is evaluated for each atom, hence protein and backbone selects protein backbone atoms, not the protein and [nucleic] acid backbone atoms!

no cap, this trips people up CONSTANTLY. read it twice. ๐Ÿ™ˆ

Primitive Expressions ๐Ÿงฑ

RasMol primitive expressions are the fundamental building blocks of atom expressions. There are two types of primitive expression. The first type is used to identify a given residue number or range of residue numbers. A single residue is identified by its number (position in the sequence), and a range is specified by lower and upper bounds separated by a hyphen character. For example select 5,6,7,8 is also select 5-8. Note that this selects the given residue numbers in all macromolecule chains.

The second type of primitive expression specifies a sequence of fields that must match for a given atom. The first part specifies a residue (or group of residues) and an optional second part specifies the atoms within those residues. The first part consists of a residue name, optionally followed by a residue number and/or chain identifier.

The second part consists of a period character followed by an atom name. An atom name may be up to four alphabetic or numeric characters. An optional semicolon followed by an alternate conformation identifier may be appended. An optional slash followed by a model number may also be appended.

An asterisk may be used as a wild card for a whole field and a question mark as a single character wildcard.


Comparison Operators โš–๏ธ

Parts of a molecule may also be distinguished using equality, inequality and ordering operators on their properties. The format of such comparison expression is a property name, followed by a comparison operator and then an integer value.

The atom properties that may be used in RasMol are atomno for the atom serial number, elemno for the atom's atomic number (element), resno for the residue number, radius for the spacefill radius in RasMol units (or zero if not represented as a sphere) and temperature for the PDB isotropic temperature value.

The equality operator is denoted either "=" or "==". The inequality operator as either "<>", "!=" or "/=". The ordering operators are "<" for less than, "<=" for less than or equal to, ">" for greater than, and ">" for greater than or equal to.


Within Expressions ๐Ÿ“

A RasMol within expression allows atoms to be selected on their proximity to another set of atoms. A within expression takes two parameters separated by a comma and surrounded by parentheses. The first argument is an integer value called the "cut-off" distance of the within expression and the second argument is any valid atom expression. The cut-off distance is expressed in either integer RasMol units or Angstroms containing a decimal point. An atom is selected if it is within the cut-off distance of any of the atoms defined by the second argument. This allows complex expressions to be constructed containing nested within expressions.

For example, the command select within(3.2,backbone) selects any atom within a 3.2 Angstrom radius of any atom in a protein or nucleic acid backbone. Within expressions are particularly useful for selecting the atoms around an active site.


Predefined Sets ๐ŸŽ

RasMol atom expressions may contain predefined sets. These sets are single keywords that represent portions of a molecule of interest. Predefined sets are often abbreviations of primitive atom expressions. In some cases the use of predefined sets allows selection of areas of a molecule that could not otherwise be distinguished. A list of the currently predefined sets is given below. In addition to the sets listed here, RasMol also treats element names (and their plurals) as predefined sets containing all atoms of that element type, i.e. the command select oxygen is equivalent to the command select elemno=8.

๐ŸŒธ Predefined Sets ๐ŸŒธ

okay bestie so RasMol comes with a whole lil family of sets that are just built in, no setup required, they simply exist and you can drop them into any atom expression like they're nothing. Each one has a definition, and most of them are defined in terms of other sets and the RasMol atom expressions, which is very "I contain multitudes" of them. Let's meet the whole crew ๐Ÿ’…


๐Ÿ’œ AT Set

This one's the atoms in the complementary nucleotides adenosine and thymidine (that's A and T, respectively). Every nucleotide in existence gets sorted into either the set at or the set cg โ€” no in-between, no gray area, very binary of them.

Equivalent to the RasMol atom expressions a,t, and nucleic and not cg.

๐Ÿ’– Acidic Set

The set of acidic amino acids. Those are the residue types Asp and Glu. Every amino acid is classified as either acidic, basic or neutral, so this is the "acidic" girlies.

Equivalent to the RasMol atom expressions asp, glu and amino and not (basic or neutral).

๐Ÿฆ‹ Acyclic Set

Atoms in amino acids that don't contain a cycle or ring. All amino acids are either cyclic or acyclic โ€” pick a lane. Equivalent to the RasMol atom expression amino and not cyclic.

๐ŸŽ€ Aliphatic Set

The aliphatic amino acids, bestie. That's Ala, Gly, Ile, Leu and Val. Equivalent to the RasMol atom expression ala, gly, ile, leu, val.

โœจ Alpha Set

The alpha carbons in the protein molecule. This one's approximately equivalent to the RasMol atom expression *.CA.

okay important, do NOT confuse this with the predefined set helix โ€” that one holds the atoms in the amino acids of the protein's alpha helices. Different vibe entirely, iykyk.

๐ŸŒˆ Amino Set

All the atoms contained in amino acid residues. Super useful for telling the protein apart from the nucleic acid and heterogeneous atoms hanging out in the current molecule database.

๐ŸŒธ Aromatic Set

Atoms in amino acids that have aromatic rings: His, Phe, Trp and Tyr. And because they've got aromatic rings, literally every member of this set is also a member of the predefined set cyclic. Math is mathing.

Equivalent to the RasMol atom expressions his, phe, trp, tyr and cyclic and not pro.

๐Ÿซถ Backbone Set

The four atoms of each amino acid that form the polypeptide N-C-C-O backbone of proteins, plus the atoms of the sugar phosphate backbone of nucleic acids. Use the RasMol predefined sets protein and nucleic to tell the two forms of backbone apart. Atoms in nucleic acids and proteins are either backbone or sidechain, periodt.

Equivalent to the RasMol expression (protein or nucleic) and not sidechain.

The predefined set mainchain is synonymous with the set backbone โ€” same thing, different name, iconic.

๐Ÿ’… Basic Set

The basic amino acids: Arg, His and Lys. Remember, all amino acids are either acidic, basic or neutral.

Equivalent to the RasMol atom expressions arg, his, lys and amino and not (acidic or neutral).

๐Ÿฆ‹ Bonded Set

All the atoms in the current molecule database that are bonded to at least one other atom. Not lonely, not once.

๐Ÿ’œ Buried Set

Atoms in those amino acids that tend (read: prefer) to be buried inside the protein, far away from any contact with solvent molecules. And like โ€” heads up โ€” this set is about the amino acid's preference, not the actual solvent accessibility for the current protein. Don't come for me.

All amino acids are classified as either surface or buried.

Equivalent to the RasMol atom expression amino and not surface.

๐Ÿ’– CG Set

Atoms in the complementary nucleotides cytidine and guanosine (C and G, respectively). All nucleotides get classified as either the set at or the set cg.

Equivalent to the RasMol atom expressions c,g and nucleic and not at.

โญ Charged Set

The charged amino acids โ€” the ones that are either acidic or basic. Amino acids are classified as being either charged or neutral.

Equivalent to the RasMol atom expressions acidic or basic and amino and not neutral.

๐ŸŒˆ Cyclic Set

Atoms in amino acids containing a cycle or rings. All amino acids are either cyclic or acyclic. This set consists of His, Phe, Pro, Trp and Tyr. Members of the predefined set aromatic are all in here too. And the only cyclic-but-not-aromatic amino acid is proline โ€” she's unique like that.

Equivalent to the RasMol atom expressions his, phe, pro, trp, tyr and aromatic or pro and amino and not acyclic.

๐ŸŽ€ Cystine Set

The atoms of cysteine residues that form part of a disulphide bridge โ€” aka half cystines. RasMol automatically determines disulphide bridges if neither the predefined set cystine nor the RasMol ssbonds command have been used since the molecule was loaded. (So once you touch either of those, no more auto-magic, noted ๐Ÿ“)

Wanna find the free cysteines instead? Use the RasMol atom expression cys and not cystine.

โœจ Helix Set

All atoms that form part of a protein alpha helix, as determined by either the PDB file author or Kabsch and Sander's DSSP algorithm. By default, RasMol uses the secondary structure determination given in the PDB file if it exists. Otherwise, it uses the DSSP algorithm as used by the RasMol structure command.

do not mix this up with the predefined set alpha, which is the alpha carbon atoms of a protein. Two totally different girls, same-ish name, be careful.

๐Ÿฆ‹ Hetero Set

All the heterogeneous atoms in the molecule โ€” the ones described by HETATM entries in the PDB file. These typically contain water, cofactors and other solvents and ligands. All hetero atoms are classified as either ligand or solvent atoms. And the heterogeneous solvent atoms get further classified as either water or ions. Very layered.

๐ŸŒธ Hydrogen Set

All the hydrogen, deuterium and tritium atoms of the current molecule.

Equivalent to the RasMol atom expression elemno=1.

๐Ÿ’œ Hydrophobic Set

All the hydrophobic amino acids: Ala, Leu, Val, Ile, Pro, Phe, Met and Trp. All amino acids are classified as either hydrophobic or polar.

Equivalent to the RasMol atom expressions ala, leu, val, ile, pro, phe, met, trp and amino and not polar.

๐Ÿซถ Ions Set

All the heterogeneous phosphate and sulphate ions in the current molecule data file. A large number of these ions are sometimes associated with protein and nucleic acid structures determined by X-ray crystallography โ€” and ngl these atoms tend to clutter an image, so you might wanna hide them. All hetero atoms are classified as either ligand or solvent atoms, and all solvent atoms are classified as either water or ions.

๐ŸŽ€ Large Set

All amino acids are classified as either small, medium or large. This is the large girlies.

Equivalent to the RasMol atom expression amino and not (small or medium).

โญ Ligand Set

All the heterogeneous cofactor and ligand moieties contained in the current molecule data file. It's defined as all hetero atoms that are not solvent atoms.

Equivalent to the RasMol atom expression hetero and not solvent.

๐Ÿ’… Medium Set

All amino acids are classified as either small, medium or large.

Equivalent to the RasMol atom expression amino and not (large or small).

๐Ÿ’– Neutral Set

The neutral amino acids. All amino acids are classified as either acidic, basic or neutral.

Equivalent to the RasMol atom expression amino and not (acidic or basic).

๐ŸŒˆ Nucleic Set

All atoms in nucleic acids, which is made of the four nucleotide bases adenosine, cytidine, guanosine and thymidine (A, C, G and T, respectively). All nucleotides are classified as either purine or pyrimidine.

Equivalent to the RasMol atom expressions a,c,g,t and purine or pyrimidine.

And bestie, the symbols for RNA nucleotides (U, +U, I, 1MA, 5MC, OMC, 1MG, 2MG, M2G, 7MG, OMG, YG, H2U, 5MU, and PSU) are also recognized as members of this set. Whole alphabet, we love to see it.

๐ŸŒธ Polar Set

The polar amino acids. All amino acids are classified as either hydrophobic or polar.

Equivalent to the RasMol atom expression amino and not hydrophobic.

โœจ Protein Set

All atoms in proteins. This consists of the RasMol predefined set amino plus common post-translation modifications.

๐Ÿฆ‹ Purine Set

The purine nucleotides โ€” the bases adenosine and guanosine (A and G, respectively). All nucleotides are either purines or pyrimidines.

Equivalent to the RasMol atom expressions a,g and nucleic and not pyrimidine.

๐Ÿ’œ Pyrimidine Set

The pyrimidine nucleotides โ€” the bases cytidine and thymidine (C and T, respectively). All nucleotides are either purines or pyrimidines.

Equivalent to the RasMol atom expressions c,t and nucleic and not purine.

๐Ÿซถ Selected Set

The set of atoms in the currently selected region. Heads up on this one: the currently selected region is defined by the preceding select or restrict command โ€” not by the atom expression containing the selected keyword. So no circular nonsense, okay?

โญ Sheet Set

All atoms that form part of a protein beta sheet, as determined by either the PDB file author or Kabsch and Sander's DSSP algorithm. By default, RasMol uses the secondary structure determination given in the PDB file if it exists. Otherwise it uses the DSSP algorithm as used by the RasMol structure command.

๐ŸŽ€ Sidechain Set

The functional sidechains of any amino acids, plus the base of each nucleotide. These are the atoms that are not part of the polypeptide N-C-C-O backbone of proteins or the sugar phosphate backbone of nucleic acids. Use the RasMol predefined sets protein and nucleic to tell the two forms of sidechain apart. Atoms in nucleic acids and proteins are either backbone or sidechain.

Equivalent to the RasMol expression (protein or nucleic) and not backbone.

๐Ÿ’… Small Set

All amino acids are classified as either small, medium or large.

Equivalent to the RasMol atom expression amino and not (medium or large).

๐Ÿ’ง Solvent Set

Okay bestie, this set is literally all the solvent atoms chillin' in the molecule coordinate file. We're talking the heterogeneous water molecules, plus phosphate and sulphate ions. โœจ

The whole classification tea: all hetero atoms get sorted into either ligand or solvent atoms, and then all solvent atoms get sorted again into either water or ions. It's giving taxonomy realness. ๐Ÿฆ‹

This set is equivalent to the RasMol atom expressions hetero and not ligand and water or ions.


๐ŸŒŠ Surface Set

This one's got the atoms in those amino acids that tend (prefer) to be on the surface of proteins, like, out there in contact with solvent molecules. Main character amino acids fr. ๐Ÿ’…

Heads up though โ€” this set is about the amino acids' preference, not the actual solvent accessibility for the current protein. So don't come for it, it's not doing that.

All amino acids are classified as either surface or buried, no in-between, periodt. This set is equivalent to the RasMol atom expression amino and not buried.


๐ŸŒ€ Turn Set

This set has all the atoms that form part of a protein turn โ€” as determined by either the PDB file author or Kabsch and Sander's DSSP algorithm. ๐Ÿ‘‘

By default, RasMol uses the secondary structure determination given in the PDB file if it exists. Otherwise, it uses the DSSP algorithm as used by the RasMol structure command. No cap.


๐Ÿšฐ Water Set

This set contains all the heterogeneous water molecules in the current database. Bestie, sometimes a large number of water molecules get associated with protein and nucleic acid structures determined by X-ray crystallography, and honestly? Those atoms tend to clutter an image. ๐Ÿ˜ญ

The classification pipeline, for the record: all hetero atoms are classified as either ligand or solvent atoms, and the solvent atoms are further classified as either water or ions. Slay.


๐Ÿ“‹ Set Summary

The table below summarises RasMol's classification of the common amino acids.

๐ŸŽจ Alt Colours ๐ŸŽจ

Okay so the RasMol alt (Alternate Conformer) colour scheme is giving split-personality-but-make-it-aesthetic ๐Ÿ’… โ€” it codes the base structure in one colour, then gives a limited set of colours to each alternate conformer. If your RasMol was built for 8-bit colour systems, you only get 4 colours for alternate conformers. Otherwise? You get 8. Slay.

๐ŸŒธ Amino Colours ๐ŸŒธ

The amino colour scheme colours amino acids by traditional amino acid properties. The whole point of this colouring is to spot amino acids chilling in a weird or surprising environment. The outer parts of a protein that are polar get visible (bright) colours, and the non-polar residues get darker ones. Most of these colours are hallowed by tradition, no cap. This scheme is similar to the shapely scheme.

๐Ÿงฌ Chain Colours ๐Ÿงฌ

The chain colour scheme hands each macromolecular chain its own unique colour. This one is especially useful for telling apart the parts of a multimeric structure, or the individual 'strands' of a DNA chain. You can select Chain from the RasMol Colours menu.

โšก Charge Colours โšก

The charge colour scheme colour codes every atom according to the charge value stored in the input file (or the beta factor field of PDB files). High values get coloured blue (positive) and lower values get coloured red (negative). Instead of using a fixed scale, this scheme figures out the max and min values of the charge/temperature field and interpolates from red to blue accordingly. So no โ€” green cannot be assumed to mean 'no net charge'. Periodt.

The difference between the charge and temperature colour schemes is that increasing temperature values proceed from blue to red, whereas increasing charge values go from red to blue.

If the charge/temperature field is storing reasonable values, you can use the RasMol colour dots potential command to colour code a dot surface (generated by the dots command) by electrostatic potential. Iconic behaviour, honestly.

๐Ÿงธ CPK Colours ๐Ÿงธ

The cpk colour scheme is based on the colours of those popular plastic spacefilling models โ€” developed by Corey, Pauling, and later improved by Kultun. This scheme colours 'atom' objects by the atom (element) type. It's the scheme chemists conventionally use. The assignment of the most commonly used element types to colours is given below.

๐ŸŒˆ Group Colours ๐ŸŒˆ

The group colour scheme colour codes residues by their position in a macromolecular chain. Each chain is drawn as a smooth spectrum from blue through green, yellow and orange to red. So the N terminus of proteins and the 5' terminus of nucleic acids are coloured red, and the C terminus of proteins and the 3' terminus of nucleic acids are drawn in blue. If a chain has a large number of heterogeneous molecules associated with it, the macromolecule may not be drawn in the full 'range' of the spectrum. You can select Group from the RasMol Colours menu.

If a chain has a large number of heterogeneous molecules associated with it, the macromolecule may not be drawn in the full range of the spectrum. When RasMol performs group colouring, it decides the range of colours it uses from the residue numbering given in the PDB file. Hence the lowest residue number is displayed in blue and the highest residue number is displayed as red. Unfortunately, if a PDB file contains a large number of heteroatoms โ€” like water molecules โ€” that occupy the high residue numbers, the protein gets displayed in the blue-green end of the spectrum and the waters in the yellow-red end. This gets aggravated by there typically being way more water molecules than amino acid residues ๐Ÿ˜ญ. The solution is to use the command set hetero off before applying the group colour scheme. You can also do this by toggling Hetero Atoms on the Options menu before selecting Group on the Colour menu. This command tells RasMol to only use non-hetero residues in the group colour scaling.

๐Ÿ”ฎ NMR Model Colours ๐Ÿ”ฎ

The model colour scheme codes each NMR model with its own distinct colour. The NMR model number is taken as a numeric value. High values get coloured blue and lower values get coloured red. Instead of a fixed scale, this scheme finds the maximum value of the NMR model number and interpolates from red to blue accordingly.

๐Ÿฆ‹ Shapely Colours ๐Ÿฆ‹

The shapely colour scheme colour codes residues by amino acid property. It's based on Bob Fletterick's "Shapely Models". Every amino acid and nucleic acid residue gets a unique colour. This scheme is used by David Bacon's Raster3D program. It's similar to the amino colour scheme, bestie.

๐ŸŽ€ Structure Colours ๐ŸŽ€

The structure colour scheme colours the molecule by protein secondary structure. Alpha helices get coloured magenta, [240,0,128], beta sheets get coloured yellow, [255,255,0], turns get coloured pale blue, [96,128,255], and all other residues get coloured white. The secondary structure is either read from the PDB file (HELIX, SHEET and TURN records), if they're available, or determined using Kabsch and Sander's DSSP algorithm. You can use the RasMol structure command to force DSSP's structure assignment to be used.

๐ŸŒก๏ธ Temperature Colours ๐ŸŒก๏ธ

The temperature colour scheme colour codes each atom according to the anisotropic temperature (beta) value stored in the PDB file. Typically this gives you a measure of the mobility/uncertainty of a given atom's position. High values get coloured in warmer (red) colours and lower values in colder (blue) colours. This feature is often used to associate a "scale" value โ€” like amino acid variability in viral mutants โ€” with each atom in a PDB file, and colour the molecule appropriately.

The difference between the temperature and charge colour schemes is that increasing temperature values proceed from blue to red, whereas increasing charge values go from red to blue.

๐Ÿ‘‘ User Colours ๐Ÿ‘‘

The user colour scheme lets RasMol use the colour scheme stored in the PDB file. The colours for each atom are stored in COLO records placed in the PDB data file. This convention was introduced by David Bacon's Raster3D program.

๐Ÿ’ซ HBond Type Colours ๐Ÿ’ซ

The RasMol type colour scheme applies only to hydrogen bonds, so it's used in the command colour hbonds type. This scheme colour codes each hydrogen bond according to the distance along a protein chain between hydrogen bond donor and acceptor. This schematic representation was introduced by Belhadj-Mostefa and Milner-White. It gives genuinely good insight into protein secondary structure โ€” hbonds forming alpha helices appear red, those forming sheets appear yellow, and those forming turns appear magenta. Chef's kiss ๐Ÿ”ฅ

๐Ÿ’… Potential Colours ๐Ÿ’…

The RasMol potential colour scheme applies only to dot surfaces, so it's used in the command colour dots potential. This scheme colours each currently displayed dot by the electrostatic potential at that point in space. That potential is calculated using Coulomb's law, taking the temperature/charge field of the input file to be the charge associated with that atom. Same interpretation as the colour charge command. Like the charge colour scheme, low values are blue/white and high values are red.

๐Ÿ”ค Amino Acid Codes ๐Ÿ”ค

The following table lists the names, single letter and three letter codes of each of the amino acids.

โœ… Booleans โœ…

A boolean parameter is a truth value. Valid boolean values are 'true' and 'false', plus their synonyms 'on' and 'off'. RasMol commonly uses boolean parameters to either enable or disable a representation or option. Simple as that, bestie ๐Ÿซถ

๐Ÿ’– FILE FORMATS ๐Ÿ’–

Protein Data Bank Files ๐Ÿงฌ

So if you don't have the actual PDB docs lying around, bestie, this little summary of the PDB file format has you covered. The Protein Data Bank is a computer-based archival database for macromolecular structures, okay? It was established in 1971 by Brookhaven National Laboratory, Upton, New York, as a public domain repository for resolved crystallographic structures. The Bank uses a uniform format to store atomic coordinates and partial bond connectivities as derived from crystallographic studies. Then in 1999 the Protein Data Bank moved to the Research Collaboratory for Structural Biology. Glow-up era fr.

PDB file entries consist of records of 80 characters each. Think punched card energy: columns 1 to 6 contain a record-type identifier, and columns 7 to 70 contain data. In older entries, columns 71 to 80 are normally blank, but they may contain sequence information added by library management programs. In new entries conforming to the 1996 PDB format, there's other information in those columns instead. The first four characters of the record identifier are enough to identify the type of record uniquely, and the syntax of each record is independent of the order of records within any entry for a particular macromolecule. Independent. Like me. ๐Ÿ’…

The only record types that are of major interest to the RasMol program are the ATOM and HETATM records, which describe the position of each atom. ATOM/HETATM records contain standard atom names and residue abbreviations, along with sequence identifiers, coordinates in Angstrom units, occupancies and thermal motion factors. The exact details are given below as a FORTRAN format statement. The "fmt" column indicates use of the field in all PDB formats, in the 1992 and earlier formats, or in the 1996 and later formats.

Residues occur in order starting from the N-terminal residue for proteins and 5'-terminus for nucleic acids. If the residue sequence is known, certain atom serial numbers may be omitted to allow for future insertion of any missing atoms. Within each residue, atoms are ordered in a standard manner, starting with the backbone (N-C-C-O for proteins) and proceeding in increasing remoteness from the alpha carbon, along the side chain. Organized. On brand. ๐Ÿ‘‘

HETATM records are used to define post-translational modifications and cofactors associated with the main molecule. TER records are interpreted as breaks in the main molecule's backbone.

If present, RasMol also inspects HEADER, COMPND, HELIX, SHEET, TURN, CONECT, CRYST1, SCALE, MODEL, ENDMDL, EXPDTA and END records. Information such as the name, database code, revision date and classification of the molecule are extracted from HEADER and COMPND records, initial secondary structure assignments are taken from HELIX, SHEET and TURN records, and the end of the file may be indicated by an END record. It reads the whole fit basically. ๐Ÿ˜ญโœจ


RasMol Interpretation of PDB fields ๐Ÿ”

  • Atoms located at 9999.000, 9999.000, 9999.000 are assumed to be Insight pseudo atoms and are ignored by RasMol. Atom names beginning ' Q' are also assumed to be pseudo atoms or position markers. Not real atoms, not invited. ๐Ÿ™ˆ
  • When a data file contains an NMR structure, multiple conformations may be placed in a single PDB file delimited by pairs of MODEL and ENDMDL records. RasMol displays all the NMR models contained in the file.
  • Residue names "CSH", "CYH" and "CSM" are considered pseudonyms for cysteine "CYS". Residue names "WAT", "H20", "SOL" and "TIP" are considered pseudonyms for water "HOH". The residue name "D20" is consider heavy water "DOD". The residue name "SUL" is considered a sulphate ion "SO4". The residue name "CPR" is considered to be cis-proline and is translated as "PRO". The residue name "TRY" is considered a pseudonym for tryptophan "TRP". Aliases everywhere, it's giving stage names. ๐ŸŽ€
  • RasMol uses the HETATM fields to define the sets hetero, water, solvent and ligand. Any group with the name "HOH", "DOD", "SO4" or "PO4" (or aliased to one of these names by the preceding rules) is considered a solvent and is considered to be defined by a HETATM field.
  • RasMol only respects CONECT connectivity records in PDB files containing fewer than 256 atoms. This is explained in more detail in the section on determining molecule connectivity. CONECT records that define a bond more than once are interpreted as specifying the bond order of that bond, i.e. a bond specified twice is a double bond and a bond specified three (or more) times is a triple bond. This is not a standard PDB feature. ๐Ÿšจ

PDB Colour Scheme Specification ๐ŸŒˆ

RasMol also accepts the supplementary COLO record type in the PDB files. This record format was introduced by David Bacon's Raster3D program for specifying the colour scheme to be used when rendering the molecule. This extension is not currently supported by the PDB. The COLO record has the same basic record type as the ATOM and HETATM records described above.

Colours are assigned to atoms using a matching process. The Mask field is used in the matching process as follows. First RasMol reads in and remembers all the ATOM, HETATM and COLO records in input order. When the user-defined ('User') colour scheme is selected, RasMol goes through each remembered ATOM/HETATM record in turn, and searches for a COLO record that matches in all of columns 7 through 30. The first such COLO record to be found determines the colour and radius of the atom. First come, first served, no cap. ๐Ÿ’…

Note that the Red, Green and Blue components are in the same positions as the X, Y, and Z components of an ATOM or HETA record, and the van der Waals radius goes in the place of the Occupancy. The Red, Green and Blue components must all be in the range 0 to 1.

In order that one COLO record can provide colour and radius specifications for more than one atom (e.g. based on residue, atom type, or any other criterion for which labels can be given somewhere in columns 7 through 30), a 'don't-care' character, the hash mark "#" (number or sharp sign) is used. This character, when found in a COLO record, matches any character in the corresponding column in a ATOM/HETATM record. All other characters must match identically to count as a match. As an extension to the specification, any atom that fails to match a COLO record is displayed in white. Wildcard queen. ๐Ÿฆ‹


Multiple NMR Models ๐ŸŒ€

RasMol loads all of the NMR models from a PDB file no matter which command is used:

load pdb <filename>

or

load nmrpdb <filename>

Once multiple NMR conformations have been loaded they may be manipulated with the atom expression extensions described in Primitive Expressions. In particular, the command

restrict */1

will restrict the display to the first model only. One model. Main character energy. ๐Ÿ‘‘


CIF and mmCIF Format Files ๐Ÿ’œ

CIF is the IUCr standard for presentation of small molecules and mmCIF is intended as the replacement for the fixed-field PDB format for presentation of macromolecular structures. RasMol can accept data sets in either format.

There are many useful sites on the World Wide Web where information tools and software related to CIF, mmCIF and the PDB can be found. The following are good starting points for exploration:

  • The International Union of Crystallography (IUCr) provides access to software, dictionaries, policy statements and documentation relating to CIF and mmCIF at: IUCr, Chester, England (www.iucr.org/iucr-top/cif/) with many mirror sites.
  • The Nucleic Acid Database Project provides access to its entries, software and documentation, with an mmCIF page giving access to the dictionary and mmCIF software tools at Rutgers University, New Jersey, USA (http://ndbserver.rutgers.edu/NDB/mmcif) with many mirror sites.

This version of RasMol restricts CIF or mmCIF tag values to essentially the same conventions as are used for the fixed-field PDB format. Thus chain identifiers and alternate conformation identifiers are limited to a single character, atom names are limited to 4 characters, etc. RasMol interprets the following CIF and mmCIF tags: A search is made through multiple data blocks for the desired tags, so a single dataset may be composed from multiple data blocks, but multiple data sets may not be stacked in the same file.

๐Ÿ”ง MACHINE-SPECIFIC SUPPORT ๐Ÿ”ง

okay so this next bit is the "it depends on your machine, bestie" zone ๐Ÿ’… โ€” the following sections cover support for Monochrome X-Windows, Tcl/Tk IPC, UNIX sockets based IPC, and compiling RasWin with Borland and MetroWerks. all of it. none of it skipped. let's go โœจ

๐Ÿ–ค Monochrome X-Windows Support

RasMol is out here supporting all those monochrome UNIX workstations you literally still find in academia โ€” think low-end SUN workstations and NCD X-terminals, the humble icons of the lab ๐Ÿ’€๐Ÿ’–

The X11 version of RasMol (when it's compiled in 8 bit mode) now detects black and white X-Windows displays and turns dithering on automatically. no cap. And because it uses run-time error diffusion dithering, all display modes of RasMol are available when you're in monochrome mode. every single one, periodt.

For best results, you should experiment with the set ambient command to make sure you get the maximum contrast in the resulting images. go forth and fiddle, bestie ๐ŸŽ€

๐ŸŒˆ Tcl/Tk IPC support

Version 4 of the Tk graphics library changed the protocol used to communicate between Tk applications. plot twist. so RasMol version 2.6 got modified so it could talk to both this new protocol and the previous version 3 protocol that RasMol v2.5 supported. iconic behaviour honestly ๐Ÿซถ

here's the tea: Tcl/Tk 3.x applications may only communicate with other 3.x applications, and Tcl/Tk 4.x applications only with other 4.x applications โ€” but these changes let RasMol communicate between processes with both protocols, potentially concurrently. multitasking queen ๐Ÿ‘‘

๐Ÿ”Œ UNIX sockets based IPC

The UNIX implementation of RasMol supports BSD-style socket communication. An identical socket mechanism is also being developed for VMS, Apple Macintosh and Microsoft Windows systems. international expansion era โœจ

This should allow RasMol to interactively display results of a computation on a remote host. The current protocol acts as a TCP/IP server on port 21069 that executes command lines until either the command exit or the command quit is typed.

  • the command exit from the RasMol server โ€” yeah that's it, it exits
  • the command quit โ€” this one both disconnects the current session and terminates RasMol

This functionality may be tested using the UNIX command telnet <hostname> 21069. go test it, i'll wait ๐Ÿ’…

๐Ÿ› ๏ธ Compiling RasWin with Borland and MetroWerks

A number of changes were made to the source code in the transition from version 2.5 to 2.6 to allow the Microsoft Windows version of RasMol to compile using the Borland C/C++ compiler. These fixes include name changes for the standard library and special code to avoid a bug in _fmemset. Additional changes were made in the transition from 2.6 to 2.7 to allow compilation with the MetroWerks compilers. compiler drama resolved, we love to see it ๐Ÿ˜ญ๐Ÿ”ฅ


๐Ÿ“š BIBLIOGRAPHY ๐Ÿ“š

๐Ÿงฌ Molecular Graphics

  • [1] Nelson Max, "Computer Representation of Molecular Surfaces", IEEE Computer Graphics and Applications, pp.21-29, August 1983.
  • [2] Arthur M. Lesk, "Protein Architecture: A Practical Approach", IRL Press Publishers, 1991.

๐ŸŽจ Molecular Graphics Programs

  • [3] Per J. Kraulis, "MOLSCRIPT: A Program to Produce both Detailed and Schematic Plots of Protein Structures", Journal of Applied Crystallography, Vol.24, pp.946-950, 1991.
  • [4] David Bacon and Wayne F. Anderson, "A Fast Algorithm for Rendering Space-Filling Molecule Pictures", Journal of Molecular Graphics, Vol.6, No.4, pp.219-220, December 1988.
  • [5] David C. Richardson and Jane S. Richardson, "The Kinemage: A tool for Scientific Communication", Protein Science, Vol.1, No.1,pp.3-9, January 1992.
  • [6] Mike Carson, "RIBBONS 2.0", Journal of Applied Crystallography, Vol.24, pp.958-961, 1991.
  • [7] Conrad C. Huang, Eric F. Pettersen, Teri E. Klein, Thomas E. Ferrin and Robert Langridge, "Conic: A Fast Renderer for Space-Filling Molecules with Shadows", Journal of Molecular Graphics, Vol.9, No.4, pp.230-236, December 1991.

๐Ÿงช Molecular Biology Algorithms

  • [8] Wolfgang Kabsch and Christian Sander, "Dictionary of Protein Secondary Structure: Pattern Recognition of Hydrogen-Bonded and Geometrical Features", Biopolymers, Vol.22, pp.2577-2637, 1983.
  • [9] Michael L. Connolly, "Solvent-Accessible Surfaces of Proteins and Nucleic Acids", Science, Vol.221, No.4612, pp.709-713, August 1983.
  • [10] Khaled Belhadj-Mostefa, Ron Poet and E. James Milner-White, "Displaying Inter-Main Chain Hydrogen Bond Patterns in Proteins", Journal of Molecular Graphics, Vol.9, No.3, pp.194-197, September 1991.
  • [11] Mike Carson, "Ribbon Models of Macromolecules", Journal of Molecular Graphics, Vol.5, No.2, pp.103-106, June 1987.
  • [12] Mike Carson and Charles E. Bugg, "Algorithm for Ribbon Models of Proteins", Journal of Molecular Graphics, Vol.4, No.2, pp.121-122, June 1986.
  • [13] H. Iijima, J. B. Dunbar Jr. and G. Marshall, "Calibration of Effective van der Waals Atomic Contact Radii for Proteins and Peptides", Proteins: Structure, Functions and Genetics, Vol.2, pp.330-339,1987.

๐Ÿ–ฅ๏ธ Graphics Algorithms

  • [14] J. Foley, A. van Dam, S. Feiner and J. Hughes, "Computer Graphics: Principles and Practice", 2nd Edition, Addison Wesley Publishers, 1990.
  • [15] J. Cleary and G. Wyvill, "Analysis of an Algorithm for Fast Ray Tracing using Uniform Space Subdivision", The Visual Computer, Vol.4, pp.65-83, 1988.
  • [16] Thomas Porter,"Spherical Shading", Computer Graphics Vol.12, ACM SIGGRAPH, pp.282-285, 1978.
  • [17] Jean-Michel Cense, "Exact Visibility Calculation for Space-Filling Molecular Models", Journal of Molecular Graphics, Vol.9, No.3, pp.191-193, September 1991.
  • [18] Chris Schafmeister, "Fast Algorithm for Generating CPK Images on Graphics Workstations", Journal of Molecular Graphics, Vol.8, No.4, pp.201-206, December 1990.
  • [19] Bruce A. Johnson, "MSURF: A Rapid and General Program for the Representation of Molecular Surfaces", Journal of Molecular Graphics, Vol.5, No.3, pp.167-169, September 1987.

๐Ÿ“ File Formats

  • [20] Frances C. Bernstein et al., "The Protein Data Bank: A Computer-Based Archival File for Macromolecular Structures", Journal of Molecular Biology, Vol.112, pp.535-542, 1977.
  • [21] Arthur Dalby, James G. Nourse, W. Douglas Hounshell, Ann K. I. Gushurst, David L. Grier, Burton A. Leland and John Laufer, "Description of Several Chemical File Formats Used by Computer Programs Developed at Molecular Design Limited", Journal of Chemical Information and Computer Sciences, Vol.32, No.3, pp.244-255, 1992.
  • [22] Adobe Systems Inc., "PostScript Language Reference Manual", Addison-Wesley Publishers, Reading, Mass., 1985.
  • [23] Philip E. Bourne et al., "The Macromolecular Crystallographic Information File (mmCIF)", Meth. Enzymol. (1997) 277, 571-590.
  • [24] Sydney R. Hall, "The STAR File: a New Format for Electronic Data Transfer and Archiving", Journal of Chemical Information and Computer Sciences, Vol. 31, 326-333, 1991.

๐Ÿ‘€ SEE ALSO ๐Ÿ‘€

The RasMol User Manual! that's it. that's the whole list. go read it bestie, iykyk ๐Ÿ’œ


๐Ÿ‘‘ AUTHOR ๐Ÿ‘‘

1992-1998 by Roger Sayle (rasmol@ggr.co.uk) โ€” a legend, fr fr, we stan a long-running maintainer ๐Ÿซถโœจ


aaaand that's the whole page, babe, you made it to the end ๐ŸŒธ this one's from July 2009, and it's RASMOL(1) โ€” the source/version and date right there in the footer, immortalised. thanks for reading the entire thing with me, you're genuinely the main character of this manual ๐Ÿ’–๐Ÿ’…๐ŸŽ€

๐Ÿ“ฆ where this page comes from