1 package uk.ac.cam.ch.wwmm.opsin; 2 3 /** 4 * Contains static final strings corresponding to XML element names and attributes employed by OPSIN 5 * @author dl387 6 * 7 */ 8 class XmlDeclarations { 9 10 //TODO are all these types and subtypes actually a good idea considering the vast majority are never used? 11 12 /* 13 * The container XML elements. These are generated by OPSIN 14 */ 15 /**Define a scope for determining what group a substituent should bond to*/ 16 static final String BRACKET_EL ="bracket"; 17 18 /**Contains a functional group or class. These terms typically effect the chosen wordRule for the name*/ 19 static final String FUNCTIONALTERM_EL ="functionalTerm"; 20 21 /**The top most element in OPSIN's parse tree. As a name can describe multiple molecules the same is confusingly true of this element*/ 22 static final String MOLECULE_EL ="molecule"; 23 24 /**Contains a substituent. A substituent will after the ComponentProcessor contain one group*/ 25 static final String SUBSTITUENT_EL = "substituent"; 26 27 /**Contains a root group(the rightmost in a word). A root will after the ComponentProcessor contain one group*/ 28 static final String ROOT_EL ="root"; 29 30 /**Contains brackets/substituents/root. Generally these correspond to words in the original chemical name (unless erroneous/omitted spaces were present)*/ 31 static final String WORD_EL ="word"; 32 33 /**Contains words/wordRules. The value of the wordRule indicates how the StructureBuilder should process its children*/ 34 static final String WORDRULE_EL ="wordRule"; 35 36 37 /* 38 * The token XML elements. These are generally produced by the parser from the tokenised chemical name 39 * Some are produced by OPSIN in the ComponentGenerator/ComponentProcessor 40 */ 41 42 /**Adds a hydrogen to an unsaturated system, this is hydrogen that is added due to a suffix and is expressed in a locant e.g. 1(2H) */ 43 static final String ADDEDHYDROGEN_EL ="addedHydrogen"; 44 45 /**A component of an alkaneStem e.g. [octa][hexaconta][tetract]ane will have three alkaneStemComponents*/ 46 static final String ALKANESTEMCOMPONENT ="alkaneStemComponent"; 47 48 /**Something like tert/iso/sec Modifies an alkaneStem in the ComponentGenerator*/ 49 static final String ALKANESTEMMODIFIER_EL ="alkaneStemModifier"; 50 51 /**An annulene. Converted to a group by the ComponentGenerator*/ 52 static final String ANNULEN_EL ="annulen"; 53 54 /**A bridge described in SMILES for used on rings*/ 55 static final String FUSEDRINGBRIDGE_EL ="fusedRingBridge"; 56 57 /**An O that indicates that the preceding alkaneStem is in fact a bridge*/ 58 static final String BRIDGEFORMINGO_EL ="bridgeFormingO"; 59 60 /**A locant indicating the positions for a glycosidic linkage. The first locant will point to an alpha carbon 61 * Also used to indicate joining of nucleosyl groups*/ 62 static final String BIOCHEMICALLINKAGE_EL ="biochemicalLinkage"; 63 64 /**Indicates the size of the ring in a carbohydrate e.g. furanose = 5*/ 65 static final String CARBOHYDRATERINGSIZE_EL ="carbohydrateRingSize"; 66 67 /**A charge specifier e.g. (2+). Value is the charge to set something to*/ 68 static final String CHARGESPECIFIER_EL ="chargeSpecifier"; 69 70 /**Used amongst other things to indicate how the rings of a ring assembly should be assembled*/ 71 static final String COLONORSEMICOLONDELIMITEDLOCANT_EL ="colonOrSemiColonDelimitedLocant"; 72 73 /**Created by the ComponentProcessor. Something like the acetic acid in benzene-1,3,5-triacetic acid*/ 74 static final String CONJUNCTIVESUFFIXGROUP_EL ="conjunctiveSuffixGroup"; 75 76 /**Used by the ComponentGenerator to group elements into bracket elements*/ 77 static final String CLOSEBRACKET_EL ="closebracket"; 78 79 /**Used by the ComponentGenerator to modify alkanes into cycloalkanes*/ 80 static final String CYCLO_EL ="cyclo"; 81 82 /** A delta used to indicate the position of a double bond in older nomenclature*/ 83 static final String DELTA_EL ="delta"; 84 85 /**A fractional multiplier e.g. hemi*/ 86 static final String FRACTIONALMULTIPLIER_EL ="fractionalMultiplier"; 87 88 /**A functional Class such as acid. Does not correspond to a fragment*/ 89 static final String FUNCTIONALCLASS_EL ="functionalClass"; 90 91 /**A functional group such as alcohol or sulfone. Describes a fragment*/ 92 static final String FUNCTIONALGROUP_EL ="functionalGroup"; 93 94 /**Currently just poly or oligo for polymers*/ 95 static final String FUNCTIONALMODIFIER_EL ="functionalModifier"; 96 97 /**A fusion bracket. Used in fusion nomenclature*/ 98 static final String FUSION_EL ="fusion"; 99 100 /**Define a scope for determining what group a substituent should bond to*/ 101 static final String GROUP_EL ="group"; 102 103 /**A heteroatom. Could be part of a Hantzsch Widman ring or a replacement prefix*/ 104 static final String HETEROATOM_EL ="heteroatom"; 105 106 /**Adds a hydrogen to an unsaturated system (hydro/perhydro)*/ 107 static final String HYDRO_EL ="hydro"; 108 109 /**One of the systematic hydrocarbon fused ring series e.g. tetralene, pentalene. Converted to a group by the ComponentGenerator*/ 110 static final String HYDROCARBONFUSEDRINGSYSTEM_EL ="hydrocarbonFusedRingSystem"; 111 112 /**Adds a hydrogen to an unsaturated system to indicate what atoms are saturated in a system where not all atoms with spare valency can form double bonds e.g. e.g. 2H-pyran*/ 113 static final String INDICATEDHYDROGEN_EL ="indicatedHydrogen"; 114 115 /**Specifies that one of more atoms are enriched with a particular isotope*/ 116 static final String ISOTOPESPECIFICATION_EL ="isotopeSpecification"; 117 118 /**A hyphen between two substituents. Used as hint that the two substituents do not join together*/ 119 static final String HYPHEN_EL ="hyphen"; 120 121 /**ine as in the end of an aminoAcid. Has no meaning*/ 122 static final String INE_EL ="ine"; 123 124 /**An infix. This performs functionalReplacement on a suffix*/ 125 static final String INFIX_EL ="infix"; 126 127 /**Indicates that a heteroatom or atom should be in a specific valency*/ 128 static final String LAMBDACONVENTION_EL ="lambdaConvention"; 129 130 /**A locant e.g. where a substituent should attach*/ 131 static final String LOCANT_EL ="locant"; 132 133 /**Used by the ComponentGenerator to group elements into bracket elements*/ 134 static final String OPENBRACKET_EL ="openbracket"; 135 136 /**otho/meta/para Converted to a locant by the ComponentProcessor*/ 137 static final String ORTHOMETAPARA_EL ="orthoMetaPara"; 138 139 /**Describes the number of spiro centres in a poly cyclic spiro system*/ 140 static final String POLYCYCLICSPIRO_EL ="polyCyclicSpiro"; 141 142 /**A locant indicating through which atoms a multiplied parent in multiplicative nomenclature is connected*/ 143 static final String MULTIPLICATIVELOCANT_EL ="multiplicativeLocant"; 144 145 /**A multiplier e.g. indicating multiplication of a heteroatom or substituent*/ 146 static final String MULTIPLIER_EL ="multiplier"; 147 148 /**e.g. (III), Specifies the oxidation number of an atom. Value is the oxidation number to set something to*/ 149 static final String OXIDATIONNUMBERSPECIFIER_EL ="oxidationNumberSpecifier"; 150 151 /**Used to indicate how many rings are in a ring assembly*/ 152 static final String RINGASSEMBLYMULTIPLIER_EL ="ringAssemblyMultiplier"; 153 154 /**A spiro system. Converted to a group by the ComponentGenerator*/ 155 static final String SPIRO_EL ="spiro"; 156 157 /**A locant that separates components of a spiro system*/ 158 static final String SPIROLOCANT_EL ="spiroLocant"; 159 160 /**Something like R/S/E/Z. Indicates stereochemical configuration*/ 161 static final String STEREOCHEMISTRY_EL ="stereoChemistry"; 162 163 /**Present in complicated nomenclature e.g. ring assemblies to avoid ambiguity*/ 164 static final String STRUCTURALCLOSEBRACKET_EL ="structuralCloseBracket"; 165 166 /**Present in complicated nomenclature to avoid ambiguity*/ 167 static final String STRUCTURALOPENBRACKET_EL ="structuralOpenBracket"; 168 169 /**Indicates replacement of a group by hydrogen e.g. deoxy means replace OH with H*/ 170 static final String SUBTRACTIVEPREFIX_EL ="subtractivePrefix"; 171 172 /**A suffix e.g. amide, al, yl etc.*/ 173 static final String SUFFIX_EL ="suffix"; 174 175 /**Something like sulfon/carbo/carbox that modifies a following suffix*/ 176 static final String SUFFIXPREFIX_EL ="suffixPrefix"; 177 178 /**ene/yne, indicated that a double/triple bond should be formed at a saturated location*/ 179 static final String UNSATURATOR_EL ="unsaturator"; 180 181 /**A vonBaeyer system. Converted to a group by the ComponentGenerator*/ 182 static final String VONBAEYER_EL ="vonBaeyer"; 183 184 /* 185 * The token XML attributes. These are generally produced by the parser from the tokenised chemical name 186 * Some are produced by OPSIN in the ComponentGenerator/ComponentProcessor 187 */ 188 189 /**The semantic meaning of the token. Exact meaning is dependent on the element type e.g. SMILES for a group but a number for a multiplier*/ 190 static final String VALUE_ATR ="value"; 191 192 /**The type of the token. Possible values are enumerated with strings ending in _TYPE_VAL */ 193 static final String TYPE_ATR = "type"; 194 195 /**The subType of the token. Possible values are enumerated with strings ending in _SUBTYPE_VAL */ 196 static final String SUBTYPE_ATR = "subType"; 197 198 /**Whether the group can be additively bonded to. e.g. thio */ 199 static final String ACCEPTSADDITIVEBONDS_ATR = "acceptsAdditiveBonds"; 200 201 /**Used to add a higher order bond at a position that can be subsequently specified. 202 * Syntax: semicolon delimited list of the format: orderOfBond space ("id"|"locant"|"defaultId"|"defaultLocant") space (id|locant) */ 203 static final String ADDBOND_ATR = "addBond"; 204 205 /**Used to add a group at a position that can be subsequently specified 206 * Syntax: semicolon delimited list of the format: SMILESofGroupToBeAdded space ("id"|"locant"|"defaultId"|"defaultLocant") space (id|locant) [space locantLabel]. */ 207 static final String ADDGROUP_ATR = "addGroup"; 208 209 /**Used to set a heteroatom at a position that can be subsequently specified 210 * Syntax: semicolon delimited list of the format: elementOfAtom space ("id"|"locant"|"defaultId"|"defaultLocant") space (id|locant). */ 211 static final String ADDHETEROATOM_ATR = "addHeteroAtom"; 212 213 /**Another value that the token takes. e.g. for suffix tokens that add two suffixes to the molecule*/ 214 static final String ADDITIONALVALUE_ATR = "additionalValue"; 215 216 /**Listed in a clockwise order, the locants of the atoms that define a pseudo 2D plane for alpha/beta stereochemistry */ 217 static final String ALPHABETACLOCKWISEATOMORDERING_ATR="alphaBetaClockWiseAtomOrdering"; 218 219 /**For elements, the typical oxidation states (comma separated) then a colon and the maximum oxidation station*/ 220 static final String COMMONOXIDATIONSTATESANDMAX_ATR = "commonOxidationStatesAndMax"; 221 222 /**The ID of the atom which by default an incoming fragment should connect to. ID is relative to this particular fragment (first atom =1) */ 223 static final String DEFAULTINID_ATR = "defaultInID"; 224 225 /**The locant of the atom which by default an incoming fragment should connect to**/ 226 static final String DEFAULTINLOCANT_ATR = "defaultInLocant"; 227 228 /**Works like the locant attribute but refers to the atoms OPSIN ID. Will be overridden by the locant/locantId attribute*/ 229 static final String DEFAULTLOCANTID_ATR = "defaultLocantID"; 230 231 /**A comma separated list of locants that are expected in front of a group for either xylene-like nomenclature or as indirect locants*/ 232 static final String FRONTLOCANTSEXPECTED_ATR = "frontLocantsExpected"; 233 234 /**A comma separated list of relative IDs at which to add functionalAtoms*/ 235 static final String FUNCTIONALIDS_ATR = "functionalIDs"; 236 237 /**Numbering to use when ring is part of a fused ring system */ 238 static final String FUSEDRINGNUMBERING_ATR = "fusedRingNumbering"; 239 240 /**Semi-colon delimited list of labels for * atoms, where the * atoms represent generic groups e.g. Alkyl*/ 241 static final String HOMOLOGY_ATR = "homology"; 242 243 /**Indicates that the substituent can either be -X- or X= depending on context cf. imino or methylene*/ 244 static final String IMINOLIKE_ATR = "iminoLike"; 245 246 /**The functional replacement specified by an infix to be performed on the suffix*/ 247 static final String INFIX_ATR = "infix"; 248 249 /**Defines the locants for which a radical will connect to another group in multiplicative nomenclature e.g. in 2,2'-methylenedipyridine the 2,2' become inlocants of the pyridine*/ 250 static final String INLOCANTS_ATR = "inLocants"; 251 252 /**Determined by the {@link ComponentProcessor}. True if a fragment has more than two radical positions e.g. ethan-1,2-diyl not ethanylidene*/ 253 static final String ISAMULTIRADICAL_ATR = "isAMultiRadical"; 254 255 /**Was the word salt encountered indicating that a salt was expected? */ 256 static final String ISSALT_ATR = "isSalt"; 257 258 /**Slash delimited list of locants. List must be the same length as number of atoms. Multiple locants can be given to an atom by comma delimiting them*/ 259 static final String LABELS_ATR = "labels"; 260 261 /**Added to a heteroatom or LAMBDACONVENTION_EL to indicate the desired valency*/ 262 static final String LAMBDA_ATR = "lambda"; 263 264 /**Locant used when deciding where to apply an operation*/ 265 static final String LOCANT_ATR = "locant"; 266 267 /**Works like a locant but refers to the atom's OPSIN id*/ 268 static final String LOCANTID_ATR = "locantID"; 269 270 /**Indicates that this trivial name has the opposite D/L stereochemistry to others in its class i.e. L- for carbohydrates or D- for amino acids*/ 271 static final String NATURALENTISOPPOSITE_ATR ="naturalEntIsOpposite"; 272 273 /** Used as a fudge for some hydrogen esters e.g. dihydrogenphosphate*/ 274 static final String NUMBEROFFUNCTIONALATOMSTOREMOVE_ATR = "numberOfFunctionalAtomsToRemove"; 275 276 /**Indicates that an element has been multiplied. Prevents badly assigning indirect locants*/ 277 static final String MULTIPLIED_ATR = "multiplied"; 278 279 /**Indicates how many times a bracket/substituent should be multiplied*/ 280 static final String MULTIPLIER_ATR ="multiplier"; 281 282 /** The name that was inputted into OPSIN's parser. Attribute of molecule */ 283 static final String NAME_ATR = "name"; 284 285 /**A comma separated list of relative IDs at which to add OutAtoms*/ 286 static final String OUTIDS_ATR = "outIDs"; 287 288 /**Indicates that a substituent/bracket has been processed by StructureBuildingMethods*/ 289 static final String RESOLVED_ATR ="resolved"; 290 291 /**Placed on a word rule if explicit stoichiometry has been provided. Value is always an integer */ 292 static final String STOICHIOMETRY_ATR = "stoichiometry"; 293 294 /** Holds the value of any tokens for which XML was not generated by the parser e.g. an optional e. Multiple elided tokens will be concatenated*/ 295 static final String SUBSEQUENTUNSEMANTICTOKEN_ATR ="subsequentUnsemanticToken"; 296 297 /**A comma separated list of relatives IDs indicating where to add suffix/es*/ 298 static final String SUFFIXAPPLIESTO_ATR = "suffixAppliesTo"; 299 300 /**A relatives ID indicating at what position to attach a suffix to by default*/ 301 static final String SUFFIXAPPLIESTOBYDEFAULT_ATR = "suffixAppliesToByDefault"; 302 303 /**Added by the ComponentGenerator to a suffix*/ 304 static final String SUFFIXPREFIX_ATR = "suffixPrefix"; 305 306 /**Can the substituent be implicitly bracketed to a previous substitutent e.g. methylaminobenzene --> (methylamino)benzene as amino has this attribute*/ 307 static final String USABLEASJOINER_ATR = "usableAsAJoiner"; 308 309 /**The wordRule that a wordRule element corresponds to*/ 310 static final String WORDRULE_ATR ="wordRule"; 311 312 /* 313 * The values the type attribute can take 314 * Type is expected to be present at minimum on all group elements 315 */ 316 /**A term like amide or hydrazide that replaces a functional hydroxy group*/ 317 static final String ACIDREPLACINGFUNCTIONALGROUP_TYPE_VAL ="acidReplacingFunctionalGroup"; 318 319 /**A trivial carboxylic acid. These by default do not have their acid groups which are then added on using suffixes*/ 320 static final String ACIDSTEM_TYPE_VAL ="acidStem"; 321 322 /**This stereochemistry element conveys alpha/beta stereochemistry*/ 323 static final String ALPHA_OR_BETA_TYPE_VAL ="alphaOrBeta"; 324 325 /**An aminoAcid. These by default do not have their acid groups which are then added on using suffixes. Notably these suffixes do NOT correspond to tokens in the input chemical name!*/ 326 static final String AMINOACID_TYPE_VAL ="aminoAcid"; 327 328 /**A subtractive prefix that removes a terminal chalcogen and forms an intramolecular bridge to another*/ 329 static final String ANHYDRO_TYPE_VAL ="anhydro"; 330 331 /**This stereochemistry element conveys axial stereochemistry 332 * These indicate the postion of groups are an axis/plane/helix. This is expressed by the descriptors: M, P, Ra, Sa, Rp, Sp*/ 333 static final String AXIAL_TYPE_VAL ="axial"; 334 335 /**A normal multiplier e.g. di*/ 336 static final String BASIC_TYPE_VAL ="basic"; 337 338 /**An isotopeSpecification using boughton system nomenclature*/ 339 static final String BOUGHTONSYSTEM_TYPE_VAL ="boughtonSystem"; 340 341 /**A locant enclosed in square brackets e.g. [5]*/ 342 static final String BRACKETEDLOCANT_TYPE_VAL ="bracketedLocant"; 343 344 /**This stereochemistry element specifies stereochemistry in a carbohydrate e.g. gluco is r/l/r/r (position of hydroxy in a fischer projection)*/ 345 static final String CARBOHYDRATECONFIGURATIONPREFIX_TYPE_VAL ="carbohydrateConfigurationalPrefix"; 346 347 /**Groups formed in accordance with carbohydrate nomenclature */ 348 static final String CARBOHYDRATE_TYPE_VAL ="carbohydrate"; 349 350 /**Indicates the group should be acyclic*/ 351 static final String CHAIN_TYPE_VAL ="chain"; 352 353 /**This suffix modifies charge*/ 354 static final String CHARGE_TYPE_VAL ="charge"; 355 356 /**This stereochemistry element conveys cis/trans stereochemistry*/ 357 static final String CISORTRANS_TYPE_VAL ="cisOrTrans"; 358 359 /**This stereochemistry element conveys R/S stereochemistry*/ 360 static final String R_OR_S_TYPE_VAL ="RorS"; 361 362 /**This stereochemistry element conveys E/Z stereochemistry*/ 363 static final String E_OR_Z_TYPE_VAL ="EorZ"; 364 365 /**This group is a sulfur/selenium/tellurium acid with the acidic hydroxy missing*/ 366 static final String CHALCOGENACIDSTEM_TYPE_VAL ="chalcogenAcidStem"; 367 368 /**A subtractive prefix that removes a hydrogen to covert a hydroxy into a carbonyl or convert a bond to a double/triple bond*/ 369 static final String DEHYDRO_TYPE_VAL ="dehydro"; 370 371 /**A subtractive prefix that removes a terminal hydroxy like atom*/ 372 static final String DEOXY_TYPE_VAL ="deoxy"; 373 374 /**A functional group describing a divalent group*/ 375 static final String DIVALENTGROUP_TYPE_VAL ="diValentGroup"; 376 377 /** This stereochemsitry element indicates the configuration of an amino acid/carbohydrate relative to glyceraldehyde*/ 378 static final String DLSTEREOCHEMISTRY_TYPE_VAL ="dlStereochemistry"; 379 380 /**This stereochemistry element conveys endo/exo/syn/anti stereochemistry 381 * These indicate relative orientation of groups attached to non-bridgehead atoms in a bicyclo[x.y.z]alkane (x >= y > z > 0)*/ 382 static final String ENDO_EXO_SYN_ANTI_TYPE_VAL ="endoExoSynAnti"; 383 384 /**A group that is functional class e.g. O for anhydride*/ 385 static final String FUNCTIONALCLASS_TYPE_VAL ="functionalClass"; 386 387 /**A multiplier for groups of terms e.g. bis*/ 388 static final String GROUP_TYPE_VAL ="group"; 389 390 /**An implicit bracket. Implicit brackets are added where a bracket is needed to give the intended meaning*/ 391 static final String IMPLICIT_TYPE_VAL ="implicit"; 392 393 /**This suffix adds a radical to the preceding group e.g. yl, oyl*/ 394 static final String INLINE_TYPE_VAL ="inline"; 395 396 /**An isotopeSpecification using IUPAC nomenclature*/ 397 static final String IUPACSYSTEM_TYPE_VAL ="iupacSystem"; 398 399 /**This functional group is monovalent e.g. alcohol*/ 400 static final String MONOVALENTGROUP_TYPE_VAL ="monoValentGroup"; 401 402 /**This functional group is monovalent and describes a specific compound e.g. cyanide*/ 403 static final String MONOVALENTSTANDALONEGROUP_TYPE_VAL ="monoValentStandaloneGroup"; 404 405 /**A non carboxylic acid e.g. phosphoric*/ 406 static final String NONCARBOXYLICACID_TYPE_VAL ="nonCarboxylicAcid"; 407 408 /**This stereochemistry element describes the direction that plane polarised light is rotated*/ 409 static final String OPTICALROTATION_TYPE_VAL ="opticalRotation"; 410 411 /**Indicates the locant was made from an ortho/meta/para term*/ 412 static final String ORTHOMETAPARA_TYPE_VAL ="orthoMetaPara"; 413 414 /**This stereochemistry element conveys relative cis/trans stereochemistry e.g. r-1, c-2, t-3*/ 415 static final String RELATIVECISTRANS_TYPE_VAL ="relativeCisTrans"; 416 417 /**Indicates the group should be, at least in part, cyclic*/ 418 static final String RING_TYPE_VAL ="ring"; 419 420 /**Indicates a group that does not allow suffixes*/ 421 static final String SIMPLEGROUP_TYPE_VAL ="simpleGroup"; 422 423 /**Groups that do not have any special rules for suffix handling*/ 424 static final String STANDARDGROUP_TYPE_VAL ="standardGroup"; 425 426 /**A bracket containing R/S/E/Z descriptors*/ 427 static final String STEREOCHEMISTRYBRACKET_TYPE_VAL ="stereochemistryBracket"; 428 429 /**Indicates a group that is a substituent*/ 430 static final String SUBSTITUENT_TYPE_VAL ="substituent"; 431 432 /**A locant that also indicated the addition of hydrogen e.g.2(1H); not used to locant onto another group*/ 433 static final String ADDEDHYDROGENLOCANT_TYPE_VAL ="addedHydrogenLocant"; 434 435 /**Indicates a group that is a suffix*/ 436 static final String SUFFIX_TYPE_VAL ="suffix"; 437 438 /**A suffix that does not add a radical, hence will be present only on the root group */ 439 static final String ROOT_TYPE_VAL ="root"; 440 441 /**A multiplier for a Von Baeyer system e.g. bi in bicyclo*/ 442 static final String VONBAEYER_TYPE_VAL ="VonBaeyer"; 443 444 445 /* 446 * The values the subType attribute can take 447 * subType is expected to be present at minimum on all group elements 448 */ 449 450 /**The stem of an alkane e.g. "eth" */ 451 static final String ALKANESTEM_SUBTYPE_VAL ="alkaneStem"; 452 /**An anhydride functional term e.g. "thioanhydride"*/ 453 static final String ANHYDRIDE_SUBTYPE_VAL ="anhydride"; 454 /**An aryl subsituent or stem e.g. "phenyl", "styr" */ 455 static final String ARYLSUBSTITUENT_SUBTYPE_VAL ="arylSubstituent"; 456 /**Nucleotides/nucleosides/natural products. 457 * Carbohydrates can be detected by {@link XmlDeclarations#CARBOHYDRATE_TYPE_VAL} 458 * Amino acids can be detected by {@link XmlDeclarations#AMINOACID_TYPE_VAL} 459 * For any of the above use {@link OpsinTools#isBiochemical(String, String)}*/ 460 static final String BIOCHEMICAL_SUBTYPE_VAL ="biochemical"; 461 /**A trivial carbohydrate stem for an aldose e.g. "galact"*/ 462 static final String CARBOHYDRATESTEMALDOSE_SUBTYPE_VAL ="carbohydrateStemAldose"; 463 /**A trivial carbohydrate stem for a ketose e.g. "fruct"*/ 464 static final String CARBOHYDRATESTEMKETOSE_SUBTYPE_VAL ="carbohydrateStemKetose"; 465 /**A suffix that forms a cycle e.g. imide, lactam, sultam*/ 466 static final String CYCLEFORMER_SUBTYPE_VAL ="cycleformer"; 467 /**A hydrocarbon stem that is typically followed by an unsaturator e.g. "adamant" */ 468 static final String CYCLICUNSATURABLEHYDROCARBON_SUBTYPE_VAL ="cyclicUnsaturableHydrocarbon"; 469 /**Replacmenet terms that are not substituents e.g. amido/hydrazido/imido/nitrido*/ 470 static final String DEDICATEDFUNCTIONALREPLACEMENTPREFIX_SUBTYPE_VAL = "dedicatedFunctionalReplacementPrefix"; 471 /**An atom e.g. "lithium" */ 472 static final String ELEMENTARYATOM_SUBTYPE_VAL ="elementaryAtom"; 473 /**An amino acid that ends in an e.g. tryptoph */ 474 static final String ENDINAN_SUBTYPE_VAL ="endInAn"; 475 /**An amino acid that ends in ic e.g. aspart */ 476 static final String ENDINIC_SUBTYPE_VAL ="endInIc"; 477 /**An amino acid that ends in ine e.g. alan */ 478 static final String ENDININE_SUBTYPE_VAL ="endInIne"; 479 /**A substituent that is expected to form a bridge e.g. "epoxy", "epiimino" */ 480 static final String EPOXYLIKE_SUBTYPE_VAL ="epoxyLike"; 481 /**A ring that will be fused onto another ring e.g. "benzo", "pyrido", "pyridino" */ 482 static final String FUSIONRING_SUBTYPE_VAL ="fusionRing"; 483 /**A group that can be suffixed e.g. "hydrazin" */ 484 static final String GROUPSTEM_SUBTYPE_VAL ="groupStem"; 485 /**A halide or pseudo halide e.g. "bromo", "cyano". Can be functional replacment terms when preceding certain non-carboxylic acids */ 486 static final String HALIDEORPSEUDOHALIDE_SUBTYPE_VAL = "halideOrPseudoHalide"; 487 /**The stem of a hantzch Widman ring sytem e.g. "an", "ol", "olidin" */ 488 static final String HANTZSCHWIDMAN_SUBTYPE_VAL ="hantzschWidman"; 489 /**A heteroatom hydride e.g. "az" "sulf" (will be followed by an unsaturator, may be preceded by a multiplier to form the heteroatom equivalent of alkanes)*/ 490 static final String HETEROSTEM_SUBTYPE_VAL ="heteroStem"; 491 /**A group with no special properties Similar to: {@link XmlDeclarations#NONE_SUBTYPE_VAL}*/ 492 static final String SIMPLEGROUP_SUBTYPE_VAL ="simpleGroup"; 493 /**A substituent which intrinsically forms multiple bonds e.g. "siloxane", "thio" */ 494 static final String MULTIRADICALSUBSTITUENT_SUBTYPE_VAL ="multiRadicalSubstituent"; 495 /**A non-carboxylic acid which cannot form a substituent e.g. "bor" */ 496 static final String NOACYL_SUBTYPE_VAL ="noAcyl"; 497 /**A group with no special properties Similar to: {@link XmlDeclarations#SIMPLEGROUP_SUBTYPE_VAL}*/ 498 static final String NONE_SUBTYPE_VAL ="none"; 499 /**oxido/sulfido/selenido/tellurido These are handled similarly to oxide e.g. might give -[O-] or =O*/ 500 static final String OXIDOLIKE_SUBTYPE_VAL ="oxidoLike"; 501 /**A term indicating replacement of all substitutable hydrogens by a halogen e.g. "perchloro" */ 502 static final String PERHALOGENO_SUBTYPE_VAL ="perhalogeno"; 503 /** phospho and other very related substituents. Strongly prefer forming bonds to hydroxy groups */ 504 static final String PHOSPHO_SUBTYPE_VAL ="phospho"; 505 /**A ring group e.g. "pyridin" */ 506 static final String RING_SUBTYPE_VAL ="ring"; 507 /** A component of a salt e.g "hydrate", "2HCl" */ 508 static final String SALTCOMPONENT_SUBTYPE_VAL ="saltComponent"; 509 /**A substitutent with no suffix e.g. "amino" */ 510 static final String SIMPLESUBSTITUENT_SUBTYPE_VAL ="simpleSubstituent"; 511 /**A substituent expecting a suffix e.g."bor" "vin" */ 512 static final String SUBSTITUENT_SUBTYPE_VAL ="substituent"; 513 /**A group representing a straight chain carbohydrate of a certain length with undefined stereochemistry e.g. hex in hexose */ 514 static final String SYSTEMATICCARBOHYDRATESTEMALDOSE_SUBTYPE_VAL ="systematicCarbohydrateStemAldose"; 515 /**A group representing a straight chain carbohydrate of a certain length with undefined stereochemistry e.g. hex in hex-2-ulose */ 516 static final String SYSTEMATICCARBOHYDRATESTEMKETOSE_SUBTYPE_VAL ="systematicCarbohydrateStemKetose"; 517 /**A suffix that attaches to the end of a chain e.g. "aldehyde", "ic acid" */ 518 static final String TERMINAL_SUBTYPE_VAL ="terminal"; 519 /**An acid that when suffixed with yl gives an acyl group e.g. "acet" */ 520 static final String YLFORACYL_SUBTYPE_VAL ="ylForAcyl"; 521 /**An acid that has undefined meaning when suffixed with yl */ 522 static final String YLFORNOTHING_SUBTYPE_VAL ="ylForNothing"; 523 /**An acid that when suffixed with yl gives an alkyl group e.g. "laur" */ 524 static final String YLFORYL_SUBTYPE_VAL ="ylForYl"; 525 526 /**Requests that no labelling should be applied */ 527 static final String NONE_LABELS_VAL ="none"; 528 529 /**Requests that labelling be done like a fused ring. It is assumed that the order of the atoms is locant 1 as the first atom*/ 530 static final String FUSEDRING_LABELS_VAL ="fusedRing"; 531 532 /**Requests that labelling be 1, 2, 3 etc. It is assumed that the order of the atoms is locant 1 as the first atom*/ 533 static final String NUMERIC_LABELS_VAL ="numeric"; 534 535 /** InLocants have not been specified */ 536 static final String INLOCANTS_DEFAULT = "default"; 537 538 /** 539 * See suffixRules.dtd 540 */ 541 static final String SUFFIXRULES_RULE_EL = "rule"; 542 static final String SUFFIXRULES_VALUE_ATR = "value"; 543 static final String SUFFIXRULES_SMILES_ATR = "SMILES"; 544 static final String SUFFIXRULES_LABELS_ATR = "labels"; 545 static final String SUFFIXRULES_FUNCTIONALIDS_ATR = "functionalIDs"; 546 static final String SUFFIXRULES_OUTIDS_ATR = "outIDs"; 547 static final String SUFFIXRULES_KETONELOCANT_ATR = "ketoneLocant"; 548 static final String SUFFIXRULES_ORDER_ATR = "order"; 549 static final String SUFFIXRULES_OUTVALENCY_ATR = "outValency"; 550 static final String SUFFIXRULES_CHARGE_ATR = "charge"; 551 static final String SUFFIXRULES_PROTONS_ATR = "protons"; 552 static final String SUFFIXRULES_ELEMENT_ATR = "element"; 553 554 /** 555 * See suffixApplicability.dtd 556 */ 557 static final String SUFFIXAPPLICABILITY_GROUPTYPE_EL = "groupType"; 558 static final String SUFFIXAPPLICABILITY_SUFFIX_EL = "suffix"; 559 static final String SUFFIXAPPLICABILITY_TYPE_ATR = "type"; 560 static final String SUFFIXAPPLICABILITY_VALUE_ATR = "value"; 561 static final String SUFFIXAPPLICABILITY_SUBTYPE_ATR = "subType"; 562 } 563