Sometimes keywords can become very long and complicated. Examples of this are:
(1) When proteins have complicated electronic structures, particularly when several such structures are present in a single protein, then the Lewis structure can only be constructed if various bonds are made or broken using keyword CVB.
(2) When SITE is used to add and delete a large number of individual hydrogen atom from a protein.
Editing these are other long keywords can be difficult. To make this task easier keyword "++" has been written. All it does is to allow a single, long, keyword or SETUP line to be split into parts to simplify writing the long keyword line. At run-time, the "++" will be used in reconstructing the long keyword line.
Two "+" signs, i.e., "++" can be used to split a long keyword into parts that can be put on separate lines. For example, in defining the bonds in the heme ring systems in oxy-hemoglobin the keyword:
CVB=("[HEM]1142:A.Fe":-"[HEM]1142:A.NA","[HEM]1142:A.Fe":-"[HEM]1142:A.NC","[HEM]1290:B.Fe":-"[HEM]1290:B.ND","[HEM]1290:B.Fe":-"[HEM]1290:B.NB","[HEM]1542:C.Fe":-"[HEM]1542:C.NB","[HEM]1542:C.Fe":-"[HEM]1542:C.ND","[HEM]1690:D.Fe":-"[HEM]1690:D.NB","[HEM]1690:D.Fe":-"[HEM]1690:D.ND","[HEM]1142:A.Fe":-"[OXY]1143:A.O1","FE HEM B1290":-"O2 OXY B1291","FE HEM C1542":-"O1 OXY C1543","[HEM]1690:D.Fe":-"O2 OXY D1691") setpi
is difficult to read and very difficult to debug. But if "++" is used, then it can be rewritten as:
CVB=(++ "[HEM]1142:A.Fe":-"[HEM]1142:A.NA",++ "[HEM]1142:A.Fe":-"[HEM]1142:A.NC",++ "[HEM]1290:B.Fe":-"[HEM]1290:B.ND",++ "[HEM]1290:B.Fe":-"[HEM]1290:B.NB",++ "[HEM]1542:C.Fe":-"[HEM]1542:C.NB",++ "[HEM]1542:C.Fe":-"[HEM]1542:C.ND",++ "[HEM]1690:D.Fe":-"[HEM]1690:D.NB",++ "[HEM]1690:D.Fe":-"[HEM]1690:D.ND",++ "[HEM]1142:A.Fe":-"[OXY]1143:A.O1",++ "FE HEM B1290":-"O2 OXY B1291",++ "FE HEM C1542":-"O1 OXY C1543",++ "[HEM]1690:D.Fe":-"O2 OXY D1691")++ setpi |
Similarly, complicated SITE keywords can be split over several lines, e.g., :
site=(++ * * Correct faults in hydrogenation caused by fractional residues. * * These changed alter the number of hydrogen atoms on a carbon atom, * They do NOT represent charges being formed. * "[THR]64:A.C"(+),++ "CZ ARG A 172"(+),++ * * Electively ionize specific residues, to form salt-bridges, * and to form ionized sites required by the model. * A19(+),++ A99(+),++ A105(+),++ A135(+),++ A137(+),++ A175(+),++ A204(+),++ A263(+),++ * A67(-),++ A71(-),++ A154(-),++ A210(-),++ A211(-),++ * "[DRG]501:A.NAG"(+),++ "[DRG]501:A.OAF"(-),++ "[DRG]501:A.OAL"(-),++ "[PRP]401:A.O1P"(-),++ "[PRP]401:A.O2P"(-),++ "[PRP]401:A.O1A"(-),++ "[PRP]401:A.O1B"(-),++ "[PRP]401:A.O2B"(-)) output |
When the job starts, each line ending in "++" has the following line joined to it, and the "++" is deleted. If the next line starts with one or more spaces, these spaces will be preserved in the final keyword line.
If there is a space before the "++", i.e., if the keyword is written as " ++", then a space will be inserted before the following line is joined to it. This is an easy way to separate keywords that are on different lines.
WARNING! A common mistake is to have a "++" immediately after a keyword ends and then forget to add a space before the next keyword at the start of the following line. If this happened, so the space was not present, the next keyword would be attached to the end of the last keyword on the line with the "++". An example of the correct use of this space can be seen in the space before "setpi" above.