1 /* 2 * Copyright (c) 2013. John May <jwmay@users.sf.net> 3 * 4 * Contact: cdk-devel@lists.sourceforge.net 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public License 8 * as published by the Free Software Foundation; either version 2.1 9 * of the License, or (at your option) any later version. 10 * All we ask is that proper credit is given for our work, which includes 11 * - but is not limited to - adding the above copyright notice to the beginning 12 * of your source code files, and to any copyright notice that you may distribute 13 * with programs based on this work. 14 * 15 * This program is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License for more details. 19 * 20 * You should have received a copy of the GNU Lesser General Public License 21 * along with this program; if not, write to the Free Software 22 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U 23 */ 24 package org.openscience.cdk.templates; 25 26 import javax.vecmath.Point2d; 27 28 import org.openscience.cdk.Atom; 29 import org.openscience.cdk.AtomContainer; 30 import org.openscience.cdk.DefaultChemObjectBuilder; 31 import org.openscience.cdk.config.Isotopes; 32 import org.openscience.cdk.interfaces.IAtom; 33 import org.openscience.cdk.interfaces.IAtomContainer; 34 import org.openscience.cdk.interfaces.IBond; 35 import org.openscience.cdk.interfaces.IChemObjectBuilder; 36 import org.openscience.cdk.tools.ILoggingTool; 37 import org.openscience.cdk.tools.LoggingToolFactory; 38 39 /** 40 * This class contains methods for generating simple organic molecules and is 41 * copy of {@link MoleculeFactory} for use in tests. 42 * 43 * @cdk.module test-data 44 */ 45 public class TestMoleculeFactory { 46 47 private static ILoggingTool logger = LoggingToolFactory.createLoggingTool(TestMoleculeFactory.class); 48 newAtomContainer()49 private static IAtomContainer newAtomContainer() { 50 return DefaultChemObjectBuilder.getInstance().newAtomContainer(); 51 } 52 makeAlphaPinene()53 public static IAtomContainer makeAlphaPinene() { 54 IAtomContainer mol = newAtomContainer(); 55 mol.addAtom(new Atom("C")); // 1 56 mol.addAtom(new Atom("C")); // 2 57 mol.addAtom(new Atom("C")); // 3 58 mol.addAtom(new Atom("C")); // 4 59 mol.addAtom(new Atom("C")); // 5 60 mol.addAtom(new Atom("C")); // 6 61 mol.addAtom(new Atom("C")); // 7 62 mol.addAtom(new Atom("C")); // 8 63 mol.addAtom(new Atom("C")); // 9 64 mol.addAtom(new Atom("C")); // 10 65 66 mol.addBond(0, 1, IBond.Order.DOUBLE); // 1 67 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 68 mol.addBond(2, 3, IBond.Order.SINGLE); // 3 69 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 70 mol.addBond(4, 5, IBond.Order.SINGLE); // 5 71 mol.addBond(5, 0, IBond.Order.SINGLE); // 6 72 mol.addBond(0, 6, IBond.Order.SINGLE); // 7 73 mol.addBond(3, 7, IBond.Order.SINGLE); // 8 74 mol.addBond(5, 7, IBond.Order.SINGLE); // 9 75 mol.addBond(7, 8, IBond.Order.SINGLE); // 10 76 mol.addBond(7, 9, IBond.Order.SINGLE); // 11 77 configureAtoms(mol); 78 return mol; 79 } 80 81 /** 82 * Generate an Alkane (chain of carbons with no hydrogens) of a given length. 83 * 84 * <p>This method was written by Stephen Tomkinson. 85 * 86 * @param chainLength The number of carbon atoms to have in the chain. 87 * @return A molecule containing a bonded chain of carbons. 88 * @cdk.created 2003-08-15 89 */ makeAlkane(int chainLength)90 public static IAtomContainer makeAlkane(int chainLength) { 91 IAtomContainer currentChain = newAtomContainer(); 92 93 //Add the initial atom 94 currentChain.addAtom(new Atom("C")); 95 96 //Add further atoms and bonds as needed, a pair at a time. 97 for (int atomCount = 1; atomCount < chainLength; atomCount++) { 98 currentChain.addAtom(new Atom("C")); 99 currentChain.addBond(atomCount, atomCount - 1, IBond.Order.SINGLE); 100 } 101 102 return currentChain; 103 } 104 makeEthylCyclohexane()105 public static IAtomContainer makeEthylCyclohexane() { 106 IAtomContainer mol = newAtomContainer(); 107 mol.addAtom(new Atom("C")); // 1 108 mol.addAtom(new Atom("C")); // 2 109 mol.addAtom(new Atom("C")); // 3 110 mol.addAtom(new Atom("C")); // 4 111 mol.addAtom(new Atom("C")); // 5 112 mol.addAtom(new Atom("C")); // 6 113 mol.addAtom(new Atom("C")); // 7 114 mol.addAtom(new Atom("C")); // 8 115 116 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 117 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 118 mol.addBond(2, 3, IBond.Order.SINGLE); // 3 119 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 120 mol.addBond(4, 5, IBond.Order.SINGLE); // 5 121 mol.addBond(5, 0, IBond.Order.SINGLE); // 6 122 mol.addBond(0, 6, IBond.Order.SINGLE); // 7 123 mol.addBond(6, 7, IBond.Order.SINGLE); // 8 124 return mol; 125 } 126 127 /** 128 * Returns cyclohexene without explicit hydrogens. 129 * 130 * @cdk.inchi InChI=1/C6H10/c1-2-4-6-5-3-1/h1-2H,3-6H2 131 */ makeCyclohexene()132 public static IAtomContainer makeCyclohexene() { 133 IAtomContainer mol = newAtomContainer(); 134 mol.addAtom(new Atom("C")); // 1 135 mol.addAtom(new Atom("C")); // 2 136 mol.addAtom(new Atom("C")); // 3 137 mol.addAtom(new Atom("C")); // 4 138 mol.addAtom(new Atom("C")); // 5 139 mol.addAtom(new Atom("C")); // 6 140 141 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 142 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 143 mol.addBond(2, 3, IBond.Order.SINGLE); // 3 144 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 145 mol.addBond(4, 5, IBond.Order.SINGLE); // 5 146 mol.addBond(5, 0, IBond.Order.DOUBLE); // 6 147 return mol; 148 } 149 150 /** 151 * Returns cyclohexane without explicit hydrogens. 152 * 153 * @cdk.inchi InChI=1/C6H12/c1-2-4-6-5-3-1/h1-6H2 154 */ makeCyclohexane()155 public static IAtomContainer makeCyclohexane() { 156 IAtomContainer mol = newAtomContainer(); 157 mol.addAtom(new Atom("C")); // 1 158 mol.addAtom(new Atom("C")); // 2 159 mol.addAtom(new Atom("C")); // 3 160 mol.addAtom(new Atom("C")); // 4 161 mol.addAtom(new Atom("C")); // 5 162 mol.addAtom(new Atom("C")); // 6 163 164 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 165 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 166 mol.addBond(2, 3, IBond.Order.SINGLE); // 3 167 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 168 mol.addBond(4, 5, IBond.Order.SINGLE); // 5 169 mol.addBond(5, 0, IBond.Order.SINGLE); // 6 170 return mol; 171 } 172 173 /** 174 * Returns cyclopentane without explicit hydrogens. 175 * 176 * @cdk.inchi InChI=1/C5H10/c1-2-4-5-3-1/h1-5H2 177 */ makeCyclopentane()178 public static IAtomContainer makeCyclopentane() { 179 IAtomContainer mol = newAtomContainer(); 180 mol.addAtom(new Atom("C")); // 1 181 mol.addAtom(new Atom("C")); // 2 182 mol.addAtom(new Atom("C")); // 3 183 mol.addAtom(new Atom("C")); // 4 184 mol.addAtom(new Atom("C")); // 5 185 186 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 187 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 188 mol.addBond(2, 3, IBond.Order.SINGLE); // 3 189 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 190 mol.addBond(4, 0, IBond.Order.SINGLE); // 5 191 return mol; 192 } 193 194 /** 195 * Returns cyclobutane without explicit hydrogens. 196 * 197 * @cdk.inchi InChI=1/C4H8/c1-2-4-3-1/h1-4H2 198 */ makeCyclobutane()199 public static IAtomContainer makeCyclobutane() { 200 IAtomContainer mol = newAtomContainer(); 201 mol.addAtom(new Atom("C")); // 1 202 mol.addAtom(new Atom("C")); // 2 203 mol.addAtom(new Atom("C")); // 3 204 mol.addAtom(new Atom("C")); // 4 205 206 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 207 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 208 mol.addBond(2, 3, IBond.Order.SINGLE); // 3 209 mol.addBond(3, 0, IBond.Order.SINGLE); // 4 210 return mol; 211 } 212 213 /** 214 * Returns cyclobutadiene without explicit hydrogens. 215 * 216 * @cdk.inchi InChI=1/C4H4/c1-2-4-3-1/h1-4H 217 */ makeCyclobutadiene()218 public static IAtomContainer makeCyclobutadiene() { 219 IAtomContainer mol = newAtomContainer(); 220 mol.addAtom(new Atom("C")); // 1 221 mol.addAtom(new Atom("C")); // 2 222 mol.addAtom(new Atom("C")); // 3 223 mol.addAtom(new Atom("C")); // 4 224 225 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 226 mol.addBond(1, 2, IBond.Order.DOUBLE); // 2 227 mol.addBond(2, 3, IBond.Order.SINGLE); // 3 228 mol.addBond(3, 0, IBond.Order.DOUBLE); // 4 229 return mol; 230 } 231 makePropylCycloPropane()232 public static IAtomContainer makePropylCycloPropane() { 233 IAtomContainer mol = newAtomContainer(); 234 mol.addAtom(new Atom("C")); // 0 235 mol.addAtom(new Atom("C")); // 1 236 mol.addAtom(new Atom("C")); // 2 237 mol.addAtom(new Atom("C")); // 3 238 mol.addAtom(new Atom("C")); // 4 239 mol.addAtom(new Atom("C")); // 4 240 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 241 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 242 mol.addBond(2, 0, IBond.Order.SINGLE); // 3 243 mol.addBond(2, 3, IBond.Order.SINGLE); // 4 244 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 245 mol.addBond(4, 5, IBond.Order.SINGLE); // 4 246 247 return mol; 248 } 249 250 /** 251 * Returns biphenyl without explicit hydrogens. 252 * 253 * @cdk.inchi InChI=1/C12H10/c1-3-7-11(8-4-1)12-9-5-2-6-10-12/h1-10H 254 */ makeBiphenyl()255 public static IAtomContainer makeBiphenyl() { 256 IAtomContainer mol = newAtomContainer(); 257 mol.addAtom(new Atom("C")); // 0 258 mol.addAtom(new Atom("C")); // 1 259 mol.addAtom(new Atom("C")); // 2 260 mol.addAtom(new Atom("C")); // 3 261 mol.addAtom(new Atom("C")); // 4 262 mol.addAtom(new Atom("C")); // 5 263 mol.addAtom(new Atom("C")); // 6 264 mol.addAtom(new Atom("C")); // 7 265 mol.addAtom(new Atom("C")); // 8 266 mol.addAtom(new Atom("C")); // 9 267 mol.addAtom(new Atom("C")); // 10 268 mol.addAtom(new Atom("C")); // 11 269 270 mol.addBond(0, 1, IBond.Order.DOUBLE); // 1 271 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 272 mol.addBond(2, 3, IBond.Order.DOUBLE); // 3 273 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 274 mol.addBond(4, 5, IBond.Order.DOUBLE); // 5 275 mol.addBond(5, 0, IBond.Order.SINGLE); // 6 276 277 mol.addBond(0, 6, IBond.Order.SINGLE); // 7 278 mol.addBond(6, 7, IBond.Order.SINGLE); // 8 279 mol.addBond(7, 8, IBond.Order.DOUBLE); // 5 280 mol.addBond(8, 9, IBond.Order.SINGLE); // 6 281 mol.addBond(9, 10, IBond.Order.DOUBLE); // 7 282 mol.addBond(10, 11, IBond.Order.SINGLE); // 8 283 mol.addBond(11, 6, IBond.Order.DOUBLE); // 5 284 return mol; 285 } 286 makePhenylEthylBenzene()287 public static IAtomContainer makePhenylEthylBenzene() { 288 IAtomContainer mol = newAtomContainer(); 289 mol.addAtom(new Atom("C")); // 0 290 mol.addAtom(new Atom("C")); // 1 291 mol.addAtom(new Atom("C")); // 2 292 mol.addAtom(new Atom("C")); // 3 293 mol.addAtom(new Atom("C")); // 4 294 mol.addAtom(new Atom("C")); // 5 295 mol.addAtom(new Atom("C")); // 6 296 mol.addAtom(new Atom("C")); // 7 297 mol.addAtom(new Atom("C")); // 8 298 mol.addAtom(new Atom("C")); // 9 299 mol.addAtom(new Atom("C")); // 10 300 mol.addAtom(new Atom("C")); // 11 301 mol.addAtom(new Atom("C")); // 12 302 mol.addAtom(new Atom("C")); // 13 303 304 mol.addBond(0, 1, IBond.Order.DOUBLE); // 1 305 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 306 mol.addBond(2, 3, IBond.Order.DOUBLE); // 3 307 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 308 mol.addBond(4, 5, IBond.Order.DOUBLE); // 5 309 mol.addBond(5, 0, IBond.Order.SINGLE); // 6 310 311 mol.addBond(0, 6, IBond.Order.SINGLE); // 7 312 mol.addBond(6, 7, IBond.Order.SINGLE); // 8 313 mol.addBond(7, 8, IBond.Order.SINGLE); // 5 314 mol.addBond(8, 9, IBond.Order.SINGLE); // 6 315 mol.addBond(9, 10, IBond.Order.DOUBLE); // 7 316 mol.addBond(10, 11, IBond.Order.SINGLE); // 8 317 mol.addBond(11, 12, IBond.Order.DOUBLE); // 5 318 mol.addBond(12, 13, IBond.Order.SINGLE); 319 mol.addBond(13, 8, IBond.Order.DOUBLE); // 5 320 return mol; 321 } 322 makePhenylAmine()323 public static IAtomContainer makePhenylAmine() { 324 IAtomContainer mol = newAtomContainer(); 325 mol.addAtom(new Atom("C")); // 0 326 mol.addAtom(new Atom("C")); // 1 327 mol.addAtom(new Atom("C")); // 2 328 mol.addAtom(new Atom("C")); // 3 329 mol.addAtom(new Atom("C")); // 4 330 mol.addAtom(new Atom("C")); // 5 331 mol.addAtom(new Atom("N")); // 6 332 333 mol.addBond(0, 1, IBond.Order.DOUBLE); // 1 334 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 335 mol.addBond(2, 3, IBond.Order.DOUBLE); // 3 336 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 337 mol.addBond(4, 5, IBond.Order.DOUBLE); // 5 338 mol.addBond(5, 0, IBond.Order.SINGLE); // 6 339 340 mol.addBond(0, 6, IBond.Order.SINGLE); // 7 341 return mol; 342 } 343 344 /* build a molecule from 4 condensed triangles */ make4x3CondensedRings()345 public static IAtomContainer make4x3CondensedRings() { 346 IAtomContainer mol = newAtomContainer(); 347 mol.addAtom(new Atom("C")); // 1 348 mol.addAtom(new Atom("C")); // 2 349 mol.addAtom(new Atom("C")); // 3 350 mol.addAtom(new Atom("C")); // 4 351 mol.addAtom(new Atom("C")); // 5 352 mol.addAtom(new Atom("C")); // 6 353 354 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 355 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 356 mol.addBond(2, 0, IBond.Order.SINGLE); // 3 357 mol.addBond(2, 3, IBond.Order.SINGLE); // 4 358 mol.addBond(1, 3, IBond.Order.SINGLE); // 5 359 mol.addBond(3, 4, IBond.Order.SINGLE); // 6 360 mol.addBond(4, 2, IBond.Order.SINGLE); // 7 361 mol.addBond(4, 5, IBond.Order.SINGLE); // 8 362 mol.addBond(5, 3, IBond.Order.SINGLE); // 9 363 364 return mol; 365 } 366 makeSpiroRings()367 public static IAtomContainer makeSpiroRings() { 368 IAtomContainer mol = newAtomContainer(); 369 mol.addAtom(new Atom("C")); // 0 370 mol.addAtom(new Atom("C")); // 1 371 mol.addAtom(new Atom("C")); // 2 372 mol.addAtom(new Atom("C")); // 3 373 mol.addAtom(new Atom("C")); // 4 374 mol.addAtom(new Atom("C")); // 5 375 mol.addAtom(new Atom("C")); // 6 376 mol.addAtom(new Atom("C")); // 7 377 mol.addAtom(new Atom("C")); // 8 378 mol.addAtom(new Atom("C")); // 9 379 380 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 381 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 382 mol.addBond(2, 3, IBond.Order.SINGLE); // 3 383 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 384 mol.addBond(4, 5, IBond.Order.SINGLE); // 5 385 mol.addBond(5, 6, IBond.Order.SINGLE); // 6 386 mol.addBond(6, 0, IBond.Order.SINGLE); // 7 387 mol.addBond(6, 7, IBond.Order.SINGLE); // 8 388 mol.addBond(7, 8, IBond.Order.SINGLE); // 9 389 mol.addBond(8, 9, IBond.Order.SINGLE); // 10 390 mol.addBond(9, 6, IBond.Order.SINGLE); // 11 391 return mol; 392 } 393 makeBicycloRings()394 public static IAtomContainer makeBicycloRings() { 395 IAtomContainer mol = newAtomContainer(); 396 mol.addAtom(new Atom("C")); // 0 397 mol.addAtom(new Atom("C")); // 1 398 mol.addAtom(new Atom("C")); // 2 399 mol.addAtom(new Atom("C")); // 3 400 mol.addAtom(new Atom("C")); // 4 401 mol.addAtom(new Atom("C")); // 5 402 mol.addAtom(new Atom("C")); // 6 403 mol.addAtom(new Atom("C")); // 7 404 405 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 406 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 407 mol.addBond(2, 3, IBond.Order.SINGLE); // 3 408 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 409 mol.addBond(4, 5, IBond.Order.SINGLE); // 5 410 mol.addBond(5, 0, IBond.Order.SINGLE); // 6 411 mol.addBond(6, 0, IBond.Order.SINGLE); // 7 412 mol.addBond(6, 7, IBond.Order.SINGLE); // 8 413 mol.addBond(7, 3, IBond.Order.SINGLE); // 9 414 return mol; 415 } 416 makeFusedRings()417 public static IAtomContainer makeFusedRings() { 418 IAtomContainer mol = newAtomContainer(); 419 mol.addAtom(new Atom("C")); // 0 420 mol.addAtom(new Atom("C")); // 1 421 mol.addAtom(new Atom("C")); // 2 422 mol.addAtom(new Atom("C")); // 3 423 mol.addAtom(new Atom("C")); // 4 424 mol.addAtom(new Atom("C")); // 5 425 mol.addAtom(new Atom("C")); // 6 426 mol.addAtom(new Atom("C")); // 7 427 mol.addAtom(new Atom("C")); // 8 428 mol.addAtom(new Atom("C")); // 9 429 430 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 431 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 432 mol.addBond(2, 3, IBond.Order.SINGLE); // 3 433 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 434 mol.addBond(4, 5, IBond.Order.SINGLE); // 5 435 mol.addBond(5, 0, IBond.Order.SINGLE); // 6 436 mol.addBond(5, 6, IBond.Order.SINGLE); // 7 437 mol.addBond(6, 7, IBond.Order.SINGLE); // 8 438 mol.addBond(7, 4, IBond.Order.SINGLE); // 9 439 mol.addBond(8, 0, IBond.Order.SINGLE); // 10 440 mol.addBond(9, 1, IBond.Order.SINGLE); // 11 441 mol.addBond(9, 8, IBond.Order.SINGLE); // 11 442 return mol; 443 } 444 makeMethylDecaline()445 public static IAtomContainer makeMethylDecaline() { 446 IAtomContainer mol = newAtomContainer(); 447 mol.addAtom(new Atom("C")); // 0 448 mol.addAtom(new Atom("C")); // 1 449 mol.addAtom(new Atom("C")); // 2 450 mol.addAtom(new Atom("C")); // 3 451 mol.addAtom(new Atom("C")); // 4 452 mol.addAtom(new Atom("C")); // 5 453 mol.addAtom(new Atom("C")); // 6 454 mol.addAtom(new Atom("C")); // 7 455 mol.addAtom(new Atom("C")); // 8 456 mol.addAtom(new Atom("C")); // 9 457 mol.addAtom(new Atom("C")); // 10 458 459 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 460 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 461 mol.addBond(2, 3, IBond.Order.SINGLE); // 3 462 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 463 mol.addBond(4, 5, IBond.Order.SINGLE); // 5 464 mol.addBond(5, 0, IBond.Order.SINGLE); // 6 465 mol.addBond(5, 6, IBond.Order.SINGLE); // 7 466 mol.addBond(6, 7, IBond.Order.SINGLE); // 8RingSet 467 mol.addBond(7, 8, IBond.Order.SINGLE); // 9 468 mol.addBond(8, 9, IBond.Order.SINGLE); // 10 469 mol.addBond(9, 0, IBond.Order.SINGLE); // 11 470 mol.addBond(5, 10, IBond.Order.SINGLE); // 12 471 return mol; 472 473 } 474 makeEthylPropylPhenantren()475 public static IAtomContainer makeEthylPropylPhenantren() { 476 IAtomContainer mol = newAtomContainer(); 477 mol.addAtom(new Atom("C")); // 0 478 mol.addAtom(new Atom("C")); // 1 479 mol.addAtom(new Atom("C")); // 2 480 mol.addAtom(new Atom("C")); // 3 481 mol.addAtom(new Atom("C")); // 4 482 mol.addAtom(new Atom("C")); // 5 483 mol.addAtom(new Atom("C")); // 6 484 mol.addAtom(new Atom("C")); // 7 485 mol.addAtom(new Atom("C")); // 8 486 mol.addAtom(new Atom("C")); // 9 487 mol.addAtom(new Atom("C")); // 10 488 mol.addAtom(new Atom("C")); // 11 489 mol.addAtom(new Atom("C")); // 12 490 mol.addAtom(new Atom("C")); // 13 491 mol.addAtom(new Atom("C")); // 14 492 mol.addAtom(new Atom("C")); // 15 493 mol.addAtom(new Atom("C")); // 16 494 mol.addAtom(new Atom("C")); // 17 495 mol.addAtom(new Atom("C")); // 18 496 497 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 498 mol.addBond(1, 2, IBond.Order.DOUBLE); // 2 499 mol.addBond(2, 3, IBond.Order.SINGLE); // 3 500 mol.addBond(3, 4, IBond.Order.DOUBLE); // 4 501 mol.addBond(4, 5, IBond.Order.SINGLE); // 5 502 mol.addBond(5, 6, IBond.Order.DOUBLE); // 6 503 mol.addBond(6, 7, IBond.Order.SINGLE); // 8 504 mol.addBond(7, 8, IBond.Order.DOUBLE); // 9 505 mol.addBond(8, 9, IBond.Order.SINGLE); // 10 506 mol.addBond(9, 0, IBond.Order.DOUBLE); // 11 507 mol.addBond(9, 4, IBond.Order.SINGLE); // 12 508 mol.addBond(8, 10, IBond.Order.SINGLE); // 12 509 mol.addBond(10, 11, IBond.Order.DOUBLE); // 12 510 mol.addBond(11, 12, IBond.Order.SINGLE); // 12 511 mol.addBond(12, 13, IBond.Order.DOUBLE); // 12 512 mol.addBond(13, 7, IBond.Order.SINGLE); // 12 513 mol.addBond(3, 14, IBond.Order.SINGLE); // 12 514 mol.addBond(14, 15, IBond.Order.SINGLE); // 12 515 mol.addBond(12, 16, IBond.Order.SINGLE); // 12 516 mol.addBond(16, 17, IBond.Order.SINGLE); // 12 517 mol.addBond(17, 18, IBond.Order.SINGLE); // 12 518 configureAtoms(mol); 519 return mol; 520 } 521 makeSteran()522 public static IAtomContainer makeSteran() { 523 IAtomContainer mol = newAtomContainer(); 524 mol.addAtom(new Atom("C")); // 0 525 mol.addAtom(new Atom("C")); // 1 526 mol.addAtom(new Atom("C")); // 2 527 mol.addAtom(new Atom("C")); // 3 528 mol.addAtom(new Atom("C")); // 4 529 mol.addAtom(new Atom("C")); // 5 530 mol.addAtom(new Atom("C")); // 6 531 mol.addAtom(new Atom("C")); // 7 532 mol.addAtom(new Atom("C")); // 8 533 mol.addAtom(new Atom("C")); // 9 534 mol.addAtom(new Atom("C")); // 10 535 mol.addAtom(new Atom("C")); // 11 536 mol.addAtom(new Atom("C")); // 12 537 mol.addAtom(new Atom("C")); // 13 538 mol.addAtom(new Atom("C")); // 14 539 mol.addAtom(new Atom("C")); // 15 540 mol.addAtom(new Atom("C")); // 16 541 542 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 543 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 544 mol.addBond(2, 3, IBond.Order.SINGLE); // 3 545 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 546 mol.addBond(4, 5, IBond.Order.SINGLE); // 5 547 mol.addBond(5, 6, IBond.Order.SINGLE); // 6 548 mol.addBond(6, 7, IBond.Order.SINGLE); // 8 549 mol.addBond(7, 8, IBond.Order.SINGLE); // 9 550 mol.addBond(8, 9, IBond.Order.SINGLE); // 10 551 mol.addBond(9, 0, IBond.Order.SINGLE); // 11 552 mol.addBond(9, 4, IBond.Order.SINGLE); // 12 553 mol.addBond(8, 10, IBond.Order.SINGLE); // 13 554 mol.addBond(10, 11, IBond.Order.SINGLE); // 14 555 mol.addBond(11, 12, IBond.Order.SINGLE); // 15 556 mol.addBond(12, 13, IBond.Order.SINGLE); // 16 557 mol.addBond(13, 7, IBond.Order.SINGLE); // 17 558 mol.addBond(13, 14, IBond.Order.SINGLE); // 18 559 mol.addBond(14, 15, IBond.Order.SINGLE); // 19 560 mol.addBond(15, 16, IBond.Order.SINGLE); // 20 561 mol.addBond(16, 12, IBond.Order.SINGLE); // 21 562 563 configureAtoms(mol); 564 return mol; 565 } 566 567 /** 568 * Returns azulene without explicit hydrogens. 569 * 570 * @cdk.inchi InChI=1/C10H8/c1-2-5-9-7-4-8-10(9)6-3-1/h1-8H 571 */ makeAzulene()572 public static IAtomContainer makeAzulene() { 573 IAtomContainer mol = newAtomContainer(); 574 mol.addAtom(new Atom("C")); // 0 575 mol.addAtom(new Atom("C")); // 1 576 mol.addAtom(new Atom("C")); // 2 577 mol.addAtom(new Atom("C")); // 3 578 mol.addAtom(new Atom("C")); // 4 579 mol.addAtom(new Atom("C")); // 5 580 mol.addAtom(new Atom("C")); // 6 581 mol.addAtom(new Atom("C")); // 7 582 mol.addAtom(new Atom("C")); // 8 583 mol.addAtom(new Atom("C")); // 9 584 585 mol.addBond(0, 1, IBond.Order.DOUBLE); // 1 586 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 587 mol.addBond(2, 3, IBond.Order.DOUBLE); // 3 588 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 589 mol.addBond(4, 5, IBond.Order.DOUBLE); // 5 590 mol.addBond(5, 6, IBond.Order.SINGLE); // 6 591 mol.addBond(6, 7, IBond.Order.DOUBLE); // 8 592 mol.addBond(7, 8, IBond.Order.SINGLE); // 9 593 mol.addBond(8, 9, IBond.Order.DOUBLE); // 10 594 mol.addBond(9, 5, IBond.Order.SINGLE); // 11 595 mol.addBond(9, 0, IBond.Order.SINGLE); // 12 596 597 return mol; 598 } 599 600 /** 601 * Returns indole without explicit hydrogens. 602 * 603 * @cdk.inchi InChI=1/C8H7N/c1-2-4-8-7(3-1)5-6-9-8/h1-6,9H 604 */ makeIndole()605 public static IAtomContainer makeIndole() { 606 IAtomContainer mol = DefaultChemObjectBuilder.getInstance().newAtomContainer(); 607 mol.addAtom(new Atom("C")); // 0 608 mol.addAtom(new Atom("C")); // 1 609 mol.addAtom(new Atom("C")); // 2 610 mol.addAtom(new Atom("C")); // 3 611 mol.addAtom(new Atom("C")); // 4 612 mol.addAtom(new Atom("C")); // 5 613 mol.addAtom(new Atom("C")); // 6 614 mol.addAtom(new Atom("C")); // 7 615 mol.addAtom(new Atom("N")); // 8 616 617 mol.addBond(0, 1, IBond.Order.DOUBLE); // 1 618 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 619 mol.addBond(2, 3, IBond.Order.DOUBLE); // 3 620 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 621 mol.addBond(4, 5, IBond.Order.DOUBLE); // 5 622 mol.addBond(5, 6, IBond.Order.SINGLE); // 6 623 mol.addBond(6, 7, IBond.Order.DOUBLE); // 8 624 mol.addBond(7, 8, IBond.Order.SINGLE); // 9 625 mol.addBond(0, 5, IBond.Order.SINGLE); // 11 626 mol.addBond(8, 0, IBond.Order.SINGLE); // 12 627 628 return mol; 629 } 630 631 /** 632 * Returns pyrrole without explicit hydrogens. 633 * 634 * @cdk.inchi InChI=1/C4H5N/c1-2-4-5-3-1/h1-5H 635 */ makePyrrole()636 public static IAtomContainer makePyrrole() { 637 IAtomContainer mol = newAtomContainer(); 638 mol.addAtom(new Atom("C")); // 0 639 mol.addAtom(new Atom("N")); // 1 640 mol.addAtom(new Atom("C")); // 2 641 mol.addAtom(new Atom("C")); // 3 642 mol.addAtom(new Atom("C")); // 4 643 644 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 645 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 646 mol.addBond(2, 3, IBond.Order.DOUBLE); // 3 647 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 648 mol.addBond(4, 0, IBond.Order.DOUBLE); // 5 649 650 return mol; 651 } 652 653 /** 654 * Returns pyrrole anion without explicit hydrogens. 655 * 656 * @cdk.inchi InChI=1/C4H4N/c1-2-4-5-3-1/h1-4H/q-1 657 */ makePyrroleAnion()658 public static IAtomContainer makePyrroleAnion() { 659 IAtomContainer mol = newAtomContainer(); 660 IAtom nitrogenAnion = new Atom("N"); 661 nitrogenAnion.setFormalCharge(-1); 662 mol.addAtom(new Atom("C")); // 0 663 mol.addAtom(nitrogenAnion); // 1 664 mol.addAtom(new Atom("C")); // 2 665 mol.addAtom(new Atom("C")); // 3 666 mol.addAtom(new Atom("C")); // 4 667 668 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 669 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 670 mol.addBond(2, 3, IBond.Order.DOUBLE); // 3 671 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 672 mol.addBond(4, 0, IBond.Order.DOUBLE); // 5 673 674 return mol; 675 } 676 677 /** 678 * Returns imidazole without explicit hydrogens. 679 * 680 * @cdk.inchi InChI=1/C3H4N2/c1-2-5-3-4-1/h1-3H,(H,4,5)/f/h4H 681 */ makeImidazole()682 public static IAtomContainer makeImidazole() { 683 IAtomContainer mol = newAtomContainer(); 684 mol.addAtom(new Atom("C")); // 0 685 mol.addAtom(new Atom("N")); // 1 686 mol.addAtom(new Atom("C")); // 2 687 mol.addAtom(new Atom("N")); // 3 688 mol.addAtom(new Atom("C")); // 4 689 690 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 691 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 692 mol.addBond(2, 3, IBond.Order.DOUBLE); // 3 693 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 694 mol.addBond(4, 0, IBond.Order.DOUBLE); // 5 695 696 return mol; 697 } 698 699 /** 700 * Returns pyrazole without explicit hydrogens. 701 * 702 * @cdk.inchi InChI=1/C3H4N2/c1-2-4-5-3-1/h1-3H,(H,4,5)/f/h4H 703 */ makePyrazole()704 public static IAtomContainer makePyrazole() { 705 IAtomContainer mol = newAtomContainer(); 706 mol.addAtom(new Atom("C")); // 0 707 mol.addAtom(new Atom("N")); // 1 708 mol.addAtom(new Atom("N")); // 2 709 mol.addAtom(new Atom("C")); // 3 710 mol.addAtom(new Atom("C")); // 4 711 712 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 713 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 714 mol.addBond(2, 3, IBond.Order.DOUBLE); // 3 715 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 716 mol.addBond(4, 0, IBond.Order.DOUBLE); // 5 717 718 return mol; 719 } 720 721 /** 722 * Returns 1,2,4-triazole without explicit hydrogens. 723 * 724 * @cdk.inchi InChI=1/C3H4N2/c1-2-4-5-3-1/h1-3H,(H,4,5)/f/h4H 725 */ make124Triazole()726 public static IAtomContainer make124Triazole() { 727 IAtomContainer mol = newAtomContainer(); 728 mol.addAtom(new Atom("C")); // 0 729 mol.addAtom(new Atom("N")); // 1 730 mol.addAtom(new Atom("N")); // 2 731 mol.addAtom(new Atom("C")); // 3 732 mol.addAtom(new Atom("N")); // 4 733 734 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 735 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 736 mol.addBond(2, 3, IBond.Order.DOUBLE); // 3 737 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 738 mol.addBond(4, 0, IBond.Order.DOUBLE); // 5 739 740 return mol; 741 } 742 743 /** 744 * Returns 1,2,3-triazole without explicit hydrogens. 745 * 746 * @cdk.inchi InChI=1/C2H3N3/c1-2-4-5-3-1/h1-2H,(H,3,4,5)/f/h5H 747 */ make123Triazole()748 public static IAtomContainer make123Triazole() { 749 IAtomContainer mol = newAtomContainer(); 750 mol.addAtom(new Atom("C")); // 0 751 mol.addAtom(new Atom("N")); // 1 752 mol.addAtom(new Atom("N")); // 2 753 mol.addAtom(new Atom("N")); // 3 754 mol.addAtom(new Atom("C")); // 4 755 756 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 757 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 758 mol.addBond(2, 3, IBond.Order.DOUBLE); // 3 759 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 760 mol.addBond(4, 0, IBond.Order.DOUBLE); // 5 761 762 return mol; 763 } 764 765 /** 766 * Returns tetrazole without explicit hydrogens. 767 * 768 * @cdk.inchi InChI=1/CH2N4/c1-2-4-5-3-1/h1H,(H,2,3,4,5)/f/h4H 769 */ makeTetrazole()770 public static IAtomContainer makeTetrazole() { 771 IAtomContainer mol = newAtomContainer(); 772 mol.addAtom(new Atom("N")); // 0 773 mol.addAtom(new Atom("N")); // 1 774 mol.addAtom(new Atom("N")); // 2 775 mol.addAtom(new Atom("N")); // 3 776 mol.addAtom(new Atom("C")); // 4 777 778 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 779 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 780 mol.addBond(2, 3, IBond.Order.DOUBLE); // 3 781 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 782 mol.addBond(4, 0, IBond.Order.DOUBLE); // 5 783 784 return mol; 785 } 786 787 /** 788 * Returns Oxazole without explicit hydrogens. 789 * 790 * @cdk.inchi InChI=1/C3H3NO/c1-2-5-3-4-1/h1-3H 791 */ makeOxazole()792 public static IAtomContainer makeOxazole() { 793 IAtomContainer mol = newAtomContainer(); 794 mol.addAtom(new Atom("C")); // 0 795 mol.addAtom(new Atom("O")); // 1 796 mol.addAtom(new Atom("C")); // 2 797 mol.addAtom(new Atom("N")); // 3 798 mol.addAtom(new Atom("C")); // 4 799 800 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 801 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 802 mol.addBond(2, 3, IBond.Order.DOUBLE); // 3 803 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 804 mol.addBond(4, 0, IBond.Order.DOUBLE); // 5 805 806 return mol; 807 } 808 809 /** 810 * Returns Isoxazole without explicit hydrogens. 811 * 812 * @cdk.inchi InChI=1/C3H3NO/c1-2-4-5-3-1/h1-3H 813 */ makeIsoxazole()814 public static IAtomContainer makeIsoxazole() { 815 IAtomContainer mol = newAtomContainer(); 816 mol.addAtom(new Atom("C")); // 0 817 mol.addAtom(new Atom("O")); // 1 818 mol.addAtom(new Atom("N")); // 2 819 mol.addAtom(new Atom("C")); // 3 820 mol.addAtom(new Atom("C")); // 4 821 822 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 823 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 824 mol.addBond(2, 3, IBond.Order.DOUBLE); // 3 825 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 826 mol.addBond(4, 0, IBond.Order.DOUBLE); // 5 827 828 return mol; 829 } 830 831 /** 832 * Returns isothiazole without explicit hydrogens. 833 * 834 * @cdk.inchi InChI=1/C3H3NS/c1-2-4-5-3-1/h1-3H 835 */ makeIsothiazole()836 public static IAtomContainer makeIsothiazole() { 837 IAtomContainer mol = newAtomContainer(); 838 mol.addAtom(new Atom("C")); // 0 839 mol.addAtom(new Atom("S")); // 1 840 mol.addAtom(new Atom("N")); // 2 841 mol.addAtom(new Atom("C")); // 3 842 mol.addAtom(new Atom("C")); // 4 843 844 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 845 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 846 mol.addBond(2, 3, IBond.Order.DOUBLE); // 3 847 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 848 mol.addBond(4, 0, IBond.Order.DOUBLE); // 5 849 850 return mol; 851 } 852 853 /** 854 * Returns thiadiazole without explicit hydrogens. 855 * 856 * @cdk.inchi InChI=1/C2H2N2S/c1-3-4-2-5-1/h1-2H 857 */ makeThiadiazole()858 public static IAtomContainer makeThiadiazole() { 859 IAtomContainer mol = newAtomContainer(); 860 mol.addAtom(new Atom("C")); // 0 861 mol.addAtom(new Atom("S")); // 1 862 mol.addAtom(new Atom("C")); // 2 863 mol.addAtom(new Atom("N")); // 3 864 mol.addAtom(new Atom("N")); // 4 865 866 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 867 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 868 mol.addBond(2, 3, IBond.Order.DOUBLE); // 3 869 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 870 mol.addBond(4, 0, IBond.Order.DOUBLE); // 5 871 872 return mol; 873 } 874 875 /** 876 * Returns oxadiazole without explicit hydrogens. 877 * 878 * @cdk.inchi InChI=1/C2H2N2O/c1-3-4-2-5-1/h1-2H 879 */ makeOxadiazole()880 public static IAtomContainer makeOxadiazole() { 881 IAtomContainer mol = newAtomContainer(); 882 mol.addAtom(new Atom("C")); // 0 883 mol.addAtom(new Atom("O")); // 1 884 mol.addAtom(new Atom("C")); // 2 885 mol.addAtom(new Atom("N")); // 3 886 mol.addAtom(new Atom("N")); // 4 887 888 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 889 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 890 mol.addBond(2, 3, IBond.Order.DOUBLE); // 3 891 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 892 mol.addBond(4, 0, IBond.Order.DOUBLE); // 5 893 894 return mol; 895 } 896 897 /** 898 * Returns pyridine without explicit hydrogens. 899 * 900 * @cdk.inchi InChI=1/C3H3NO/c1-2-4-5-3-1/h1-3H 901 */ makePyridine()902 public static IAtomContainer makePyridine() { 903 IAtomContainer mol = newAtomContainer(); 904 mol.addAtom(new Atom("C")); // 0 905 mol.addAtom(new Atom("N")); // 1 906 mol.addAtom(new Atom("C")); // 2 907 mol.addAtom(new Atom("C")); // 3 908 mol.addAtom(new Atom("C")); // 4 909 mol.addAtom(new Atom("C")); // 5 910 911 mol.addBond(0, 1, IBond.Order.DOUBLE); // 1 912 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 913 mol.addBond(2, 3, IBond.Order.DOUBLE); // 3 914 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 915 mol.addBond(4, 5, IBond.Order.DOUBLE); // 5 916 mol.addBond(5, 0, IBond.Order.SINGLE); // 6 917 918 return mol; 919 } 920 921 /** 922 * Returns pyridine oxide without explicit hydrogens. 923 * 924 * @cdk.inchi InChI=1/C5H5NO/c7-6-4-2-1-3-5-6/h1-5H 925 */ makePyridineOxide()926 public static IAtomContainer makePyridineOxide() { 927 IAtomContainer mol = newAtomContainer(); 928 mol.addAtom(new Atom("C")); // 0 929 mol.addAtom(new Atom("N")); // 1 930 mol.getAtom(1).setFormalCharge(1); 931 mol.addAtom(new Atom("C")); // 2 932 mol.addAtom(new Atom("C")); // 3 933 mol.addAtom(new Atom("C")); // 4 934 mol.addAtom(new Atom("C")); // 5 935 mol.addAtom(new Atom("O")); // 6 936 mol.getAtom(6).setFormalCharge(-1); 937 938 mol.addBond(0, 1, IBond.Order.DOUBLE); // 1 939 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 940 mol.addBond(2, 3, IBond.Order.DOUBLE); // 3 941 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 942 mol.addBond(4, 5, IBond.Order.DOUBLE); // 5 943 mol.addBond(5, 0, IBond.Order.SINGLE); // 6 944 mol.addBond(1, 6, IBond.Order.SINGLE); // 7 945 946 return mol; 947 } 948 949 /** 950 * Returns pyrimidine without explicit hydrogens. 951 * 952 * @cdk.inchi InChI=1/C4H4N2/c1-2-5-4-6-3-1/h1-4H 953 */ makePyrimidine()954 public static IAtomContainer makePyrimidine() { 955 IAtomContainer mol = newAtomContainer(); 956 mol.addAtom(new Atom("C")); // 0 957 mol.addAtom(new Atom("N")); // 1 958 mol.addAtom(new Atom("C")); // 2 959 mol.addAtom(new Atom("N")); // 3 960 mol.addAtom(new Atom("C")); // 4 961 mol.addAtom(new Atom("C")); // 5 962 963 mol.addBond(0, 1, IBond.Order.DOUBLE); // 1 964 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 965 mol.addBond(2, 3, IBond.Order.DOUBLE); // 3 966 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 967 mol.addBond(4, 5, IBond.Order.DOUBLE); // 5 968 mol.addBond(5, 0, IBond.Order.SINGLE); // 6 969 970 return mol; 971 } 972 973 /** 974 * Returns pyridazine without explicit hydrogens. 975 * 976 * @cdk.inchi InChI=1/C4H4N2/c1-2-4-6-5-3-1/h1-4H 977 */ makePyridazine()978 public static IAtomContainer makePyridazine() { 979 IAtomContainer mol = newAtomContainer(); 980 mol.addAtom(new Atom("C")); // 0 981 mol.addAtom(new Atom("N")); // 1 982 mol.addAtom(new Atom("N")); // 2 983 mol.addAtom(new Atom("C")); // 3 984 mol.addAtom(new Atom("C")); // 4 985 mol.addAtom(new Atom("C")); // 5 986 987 mol.addBond(0, 1, IBond.Order.DOUBLE); // 1 988 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 989 mol.addBond(2, 3, IBond.Order.DOUBLE); // 3 990 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 991 mol.addBond(4, 5, IBond.Order.DOUBLE); // 5 992 mol.addBond(5, 0, IBond.Order.SINGLE); // 6 993 994 return mol; 995 } 996 997 /** 998 * Returns triazine without explicit hydrogens. 999 * 1000 * @cdk.inchi InChI=1/C4H4N2/c1-2-4-6-5-3-1/h1-4H 1001 */ makeTriazine()1002 public static IAtomContainer makeTriazine() { 1003 IAtomContainer mol = newAtomContainer(); 1004 mol.addAtom(new Atom("C")); // 0 1005 mol.addAtom(new Atom("N")); // 1 1006 mol.addAtom(new Atom("C")); // 2 1007 mol.addAtom(new Atom("N")); // 3 1008 mol.addAtom(new Atom("C")); // 4 1009 mol.addAtom(new Atom("N")); // 5 1010 1011 mol.addBond(0, 1, IBond.Order.DOUBLE); // 1 1012 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 1013 mol.addBond(2, 3, IBond.Order.DOUBLE); // 3 1014 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 1015 mol.addBond(4, 5, IBond.Order.DOUBLE); // 5 1016 mol.addBond(5, 0, IBond.Order.SINGLE); // 6 1017 1018 return mol; 1019 } 1020 1021 /** 1022 * Returns thiazole without explicit hydrogens. 1023 * 1024 * @cdk.inchi InChI=1/C3H3NS/c1-2-5-3-4-1/h1-3H 1025 */ makeThiazole()1026 public static IAtomContainer makeThiazole() { 1027 IAtomContainer mol = newAtomContainer(); 1028 mol.addAtom(new Atom("C")); // 0 1029 mol.addAtom(new Atom("N")); // 1 1030 mol.addAtom(new Atom("C")); // 2 1031 mol.addAtom(new Atom("S")); // 3 1032 mol.addAtom(new Atom("C")); // 4 1033 1034 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 1035 mol.addBond(1, 2, IBond.Order.DOUBLE); // 2 1036 mol.addBond(2, 3, IBond.Order.SINGLE); // 3 1037 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 1038 mol.addBond(4, 0, IBond.Order.DOUBLE); // 5 1039 1040 return mol; 1041 } 1042 makeSingleRing()1043 public static IAtomContainer makeSingleRing() { 1044 IAtomContainer mol = newAtomContainer(); 1045 mol.addAtom(new Atom("C")); // 0 1046 mol.addAtom(new Atom("C")); // 1 1047 mol.addAtom(new Atom("C")); // 2 1048 mol.addAtom(new Atom("C")); // 3 1049 mol.addAtom(new Atom("C")); // 4 1050 mol.addAtom(new Atom("C")); // 5 1051 // mol.addAtom(new Atom("C")); // 6 1052 // mol.addAtom(new Atom("C")); // 7 1053 // mol.addAtom(new Atom("C")); // 8 1054 // mol.addAtom(new Atom("C")); // 9 1055 1056 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 1057 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 1058 mol.addBond(2, 3, IBond.Order.SINGLE); // 3 1059 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 1060 mol.addBond(4, 5, IBond.Order.SINGLE); // 5 1061 mol.addBond(5, 0, IBond.Order.SINGLE); // 6 1062 // mol.addBond(5, 6, IBond.Order.SINGLE); // 7 1063 // mol.addBond(6, 7, IBond.Order.SINGLE); // 8 1064 // mol.addBond(7, 4, IBond.Order.SINGLE); // 9 1065 // mol.addBond(8, 0, IBond.Order.SINGLE); // 10 1066 // mol.addBond(9, 1, IBond.Order.SINGLE); // 11 1067 1068 return mol; 1069 } 1070 makeDiamantane()1071 public static IAtomContainer makeDiamantane() { 1072 IAtomContainer mol = newAtomContainer(); 1073 mol.addAtom(new Atom("C")); // 0 1074 mol.addAtom(new Atom("C")); // 1 1075 mol.addAtom(new Atom("C")); // 2 1076 mol.addAtom(new Atom("C")); // 3 1077 mol.addAtom(new Atom("C")); // 4 1078 mol.addAtom(new Atom("C")); // 5 1079 mol.addAtom(new Atom("C")); // 6 1080 mol.addAtom(new Atom("C")); // 7 1081 mol.addAtom(new Atom("C")); // 8 1082 mol.addAtom(new Atom("C")); // 9 1083 mol.addAtom(new Atom("C")); // 10 1084 mol.addAtom(new Atom("C")); // 11 1085 mol.addAtom(new Atom("C")); // 12 1086 mol.addAtom(new Atom("C")); // 13 1087 1088 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 1089 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 1090 mol.addBond(2, 3, IBond.Order.SINGLE); // 3 1091 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 1092 mol.addBond(4, 5, IBond.Order.SINGLE); // 5 1093 mol.addBond(5, 0, IBond.Order.SINGLE); // 6 1094 mol.addBond(5, 6, IBond.Order.SINGLE); // 7 1095 mol.addBond(6, 9, IBond.Order.SINGLE); // 8 1096 mol.addBond(1, 7, IBond.Order.SINGLE); // 9 1097 mol.addBond(7, 9, IBond.Order.SINGLE); // 10 1098 mol.addBond(3, 8, IBond.Order.SINGLE); // 11 1099 mol.addBond(8, 9, IBond.Order.SINGLE); // 12 1100 mol.addBond(0, 10, IBond.Order.SINGLE); // 13 1101 mol.addBond(10, 13, IBond.Order.SINGLE); // 14 1102 mol.addBond(2, 11, IBond.Order.SINGLE); // 15 1103 mol.addBond(11, 13, IBond.Order.SINGLE); // 16 1104 mol.addBond(4, 12, IBond.Order.SINGLE); // 17 1105 mol.addBond(12, 13, IBond.Order.SINGLE); // 18 1106 1107 return mol; 1108 } 1109 makeBranchedAliphatic()1110 public static IAtomContainer makeBranchedAliphatic() { 1111 IAtomContainer mol = newAtomContainer(); 1112 mol.addAtom(new Atom("C")); // 0 1113 mol.addAtom(new Atom("C")); // 1 1114 mol.addAtom(new Atom("C")); // 2 1115 mol.addAtom(new Atom("C")); // 3 1116 mol.addAtom(new Atom("C")); // 4 1117 mol.addAtom(new Atom("C")); // 5 1118 mol.addAtom(new Atom("C")); // 6 1119 mol.addAtom(new Atom("C")); // 7 1120 mol.addAtom(new Atom("C")); // 8 1121 mol.addAtom(new Atom("C")); // 9 1122 mol.addAtom(new Atom("C")); // 10 1123 mol.addAtom(new Atom("C")); // 11 1124 mol.addAtom(new Atom("C")); // 12 1125 mol.addAtom(new Atom("C")); // 13 1126 mol.addAtom(new Atom("C")); // 14 1127 mol.addAtom(new Atom("C")); // 15 1128 mol.addAtom(new Atom("C")); // 16 1129 mol.addAtom(new Atom("C")); // 17 1130 mol.addAtom(new Atom("C")); // 18 1131 1132 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 1133 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 1134 mol.addBond(2, 3, IBond.Order.DOUBLE); // 3 1135 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 1136 mol.addBond(4, 5, IBond.Order.SINGLE); // 5 1137 mol.addBond(2, 6, IBond.Order.SINGLE); // 6 1138 mol.addBond(6, 7, IBond.Order.SINGLE); // 7 1139 mol.addBond(7, 8, IBond.Order.SINGLE); // 8 1140 mol.addBond(6, 9, IBond.Order.SINGLE); // 9 1141 mol.addBond(6, 10, IBond.Order.SINGLE); // 10 1142 mol.addBond(10, 11, IBond.Order.SINGLE); // 11 1143 mol.addBond(8, 12, IBond.Order.TRIPLE); // 12 1144 mol.addBond(12, 13, IBond.Order.SINGLE); // 13 1145 mol.addBond(11, 14, IBond.Order.SINGLE); // 14 1146 mol.addBond(9, 15, IBond.Order.SINGLE); 1147 mol.addBond(15, 16, IBond.Order.DOUBLE); 1148 mol.addBond(16, 17, IBond.Order.DOUBLE); 1149 mol.addBond(17, 18, IBond.Order.SINGLE); 1150 1151 return mol; 1152 } 1153 makeBenzene()1154 public static IAtomContainer makeBenzene() { 1155 IAtomContainer mol = DefaultChemObjectBuilder.getInstance().newAtomContainer(); 1156 mol.addAtom(new Atom("C")); // 0 1157 mol.addAtom(new Atom("C")); // 1 1158 mol.addAtom(new Atom("C")); // 2 1159 mol.addAtom(new Atom("C")); // 3 1160 mol.addAtom(new Atom("C")); // 4 1161 mol.addAtom(new Atom("C")); // 5 1162 1163 mol.addBond(0, 1, IBond.Order.SINGLE); // 1 1164 mol.addBond(1, 2, IBond.Order.DOUBLE); // 2 1165 mol.addBond(2, 3, IBond.Order.SINGLE); // 3 1166 mol.addBond(3, 4, IBond.Order.DOUBLE); // 4 1167 mol.addBond(4, 5, IBond.Order.SINGLE); // 5 1168 mol.addBond(5, 0, IBond.Order.DOUBLE); // 6 1169 return mol; 1170 } 1171 makeQuinone()1172 public static IAtomContainer makeQuinone() { 1173 IAtomContainer mol = newAtomContainer(); 1174 mol.addAtom(new Atom("O")); // 0 1175 mol.addAtom(new Atom("C")); // 1 1176 mol.addAtom(new Atom("C")); // 2 1177 mol.addAtom(new Atom("C")); // 3 1178 mol.addAtom(new Atom("C")); // 4 1179 mol.addAtom(new Atom("C")); // 5 1180 mol.addAtom(new Atom("C")); // 6 1181 mol.addAtom(new Atom("O")); // 7 1182 1183 mol.addBond(0, 1, IBond.Order.DOUBLE); // 1 1184 mol.addBond(1, 2, IBond.Order.SINGLE); // 2 1185 mol.addBond(2, 3, IBond.Order.DOUBLE); // 3 1186 mol.addBond(3, 4, IBond.Order.SINGLE); // 4 1187 mol.addBond(4, 5, IBond.Order.SINGLE); // 5 1188 mol.addBond(5, 6, IBond.Order.DOUBLE); // 6 1189 mol.addBond(6, 1, IBond.Order.SINGLE); // 7 1190 mol.addBond(4, 7, IBond.Order.DOUBLE); // 8 1191 return mol; 1192 } 1193 makePiperidine()1194 public static IAtomContainer makePiperidine() { 1195 IAtomContainer mol = newAtomContainer(); 1196 mol.addAtom(new Atom("N")); 1197 mol.addAtom(new Atom("C")); 1198 mol.addAtom(new Atom("C")); 1199 mol.addAtom(new Atom("C")); 1200 mol.addAtom(new Atom("C")); 1201 mol.addAtom(new Atom("C")); 1202 mol.addAtom(new Atom("H")); 1203 1204 mol.addBond(0, 1, IBond.Order.SINGLE); 1205 mol.addBond(1, 2, IBond.Order.SINGLE); 1206 mol.addBond(2, 3, IBond.Order.SINGLE); 1207 mol.addBond(3, 4, IBond.Order.SINGLE); 1208 mol.addBond(4, 5, IBond.Order.SINGLE); 1209 mol.addBond(5, 0, IBond.Order.SINGLE); 1210 1211 mol.addBond(0, 6, IBond.Order.SINGLE); 1212 1213 return mol; 1214 1215 } 1216 makeTetrahydropyran()1217 public static IAtomContainer makeTetrahydropyran() { 1218 IAtomContainer mol = newAtomContainer(); 1219 mol.addAtom(new Atom("O")); 1220 mol.addAtom(new Atom("C")); 1221 mol.addAtom(new Atom("C")); 1222 mol.addAtom(new Atom("C")); 1223 mol.addAtom(new Atom("C")); 1224 mol.addAtom(new Atom("C")); 1225 1226 mol.addBond(0, 1, IBond.Order.SINGLE); 1227 mol.addBond(1, 2, IBond.Order.SINGLE); 1228 mol.addBond(2, 3, IBond.Order.SINGLE); 1229 mol.addBond(3, 4, IBond.Order.SINGLE); 1230 mol.addBond(4, 5, IBond.Order.SINGLE); 1231 mol.addBond(5, 0, IBond.Order.SINGLE); 1232 1233 return mol; 1234 1235 } 1236 1237 /** 1238 * @cdk.inchi InChI=1/C5H5N5/c6-4-3-5(9-1-7-3)10-2-8-4/h1-2H,(H3,6,7,8,9,10)/f/h7H,6H2 1239 */ makeAdenine()1240 public static IAtomContainer makeAdenine() { 1241 IAtomContainer mol = newAtomContainer(); // Adenine 1242 IAtom a1 = mol.getBuilder().newInstance(IAtom.class, "C"); 1243 a1.setPoint2d(new Point2d(21.0223, -17.2946)); 1244 mol.addAtom(a1); 1245 IAtom a2 = mol.getBuilder().newInstance(IAtom.class, "C"); 1246 a2.setPoint2d(new Point2d(21.0223, -18.8093)); 1247 mol.addAtom(a2); 1248 IAtom a3 = mol.getBuilder().newInstance(IAtom.class, "C"); 1249 a3.setPoint2d(new Point2d(22.1861, -16.6103)); 1250 mol.addAtom(a3); 1251 IAtom a4 = mol.getBuilder().newInstance(IAtom.class, "N"); 1252 a4.setPoint2d(new Point2d(19.8294, -16.8677)); 1253 mol.addAtom(a4); 1254 IAtom a5 = mol.getBuilder().newInstance(IAtom.class, "N"); 1255 a5.setPoint2d(new Point2d(22.2212, -19.5285)); 1256 mol.addAtom(a5); 1257 IAtom a6 = mol.getBuilder().newInstance(IAtom.class, "N"); 1258 a6.setPoint2d(new Point2d(19.8177, -19.2187)); 1259 mol.addAtom(a6); 1260 IAtom a7 = mol.getBuilder().newInstance(IAtom.class, "N"); 1261 a7.setPoint2d(new Point2d(23.4669, -17.3531)); 1262 mol.addAtom(a7); 1263 IAtom a8 = mol.getBuilder().newInstance(IAtom.class, "N"); 1264 a8.setPoint2d(new Point2d(22.1861, -15.2769)); 1265 mol.addAtom(a8); 1266 IAtom a9 = mol.getBuilder().newInstance(IAtom.class, "C"); 1267 a9.setPoint2d(new Point2d(18.9871, -18.0139)); 1268 mol.addAtom(a9); 1269 IAtom a10 = mol.getBuilder().newInstance(IAtom.class, "C"); 1270 a10.setPoint2d(new Point2d(23.4609, -18.8267)); 1271 mol.addAtom(a10); 1272 IBond b1 = mol.getBuilder().newInstance(IBond.class, a1, a2, IBond.Order.DOUBLE); 1273 mol.addBond(b1); 1274 IBond b2 = mol.getBuilder().newInstance(IBond.class, a1, a3, IBond.Order.SINGLE); 1275 mol.addBond(b2); 1276 IBond b3 = mol.getBuilder().newInstance(IBond.class, a1, a4, IBond.Order.SINGLE); 1277 mol.addBond(b3); 1278 IBond b4 = mol.getBuilder().newInstance(IBond.class, a2, a5, IBond.Order.SINGLE); 1279 mol.addBond(b4); 1280 IBond b5 = mol.getBuilder().newInstance(IBond.class, a2, a6, IBond.Order.SINGLE); 1281 mol.addBond(b5); 1282 IBond b6 = mol.getBuilder().newInstance(IBond.class, a3, a7, IBond.Order.DOUBLE); 1283 mol.addBond(b6); 1284 IBond b7 = mol.getBuilder().newInstance(IBond.class, a3, a8, IBond.Order.SINGLE); 1285 mol.addBond(b7); 1286 IBond b8 = mol.getBuilder().newInstance(IBond.class, a4, a9, IBond.Order.DOUBLE); 1287 mol.addBond(b8); 1288 IBond b9 = mol.getBuilder().newInstance(IBond.class, a5, a10, IBond.Order.DOUBLE); 1289 mol.addBond(b9); 1290 IBond b10 = mol.getBuilder().newInstance(IBond.class, a6, a9, IBond.Order.SINGLE); 1291 mol.addBond(b10); 1292 IBond b11 = mol.getBuilder().newInstance(IBond.class, a7, a10, IBond.Order.SINGLE); 1293 mol.addBond(b11); 1294 1295 return mol; 1296 } 1297 1298 /** 1299 * InChI=1/C10H8/c1-2-6-10-8-4-3-7-9(10)5-1/h1-8H 1300 */ makeNaphthalene()1301 public static IAtomContainer makeNaphthalene() { 1302 IChemObjectBuilder builder = DefaultChemObjectBuilder.getInstance(); 1303 IAtomContainer mol = builder.newInstance(IAtomContainer.class); 1304 IAtom a1 = builder.newInstance(IAtom.class, "C"); 1305 a1.setFormalCharge(0); 1306 mol.addAtom(a1); 1307 IAtom a2 = builder.newInstance(IAtom.class, "C"); 1308 a2.setFormalCharge(0); 1309 mol.addAtom(a2); 1310 IAtom a3 = builder.newInstance(IAtom.class, "C"); 1311 a3.setFormalCharge(0); 1312 mol.addAtom(a3); 1313 IAtom a4 = builder.newInstance(IAtom.class, "C"); 1314 a4.setFormalCharge(0); 1315 mol.addAtom(a4); 1316 IAtom a5 = builder.newInstance(IAtom.class, "C"); 1317 a5.setFormalCharge(0); 1318 mol.addAtom(a5); 1319 IAtom a6 = builder.newInstance(IAtom.class, "C"); 1320 a6.setFormalCharge(0); 1321 mol.addAtom(a6); 1322 IAtom a7 = builder.newInstance(IAtom.class, "C"); 1323 a7.setFormalCharge(0); 1324 mol.addAtom(a7); 1325 IAtom a8 = builder.newInstance(IAtom.class, "C"); 1326 a8.setFormalCharge(0); 1327 mol.addAtom(a8); 1328 IAtom a9 = builder.newInstance(IAtom.class, "C"); 1329 a9.setFormalCharge(0); 1330 mol.addAtom(a9); 1331 IAtom a10 = builder.newInstance(IAtom.class, "C"); 1332 a10.setFormalCharge(0); 1333 mol.addAtom(a10); 1334 IBond b1 = builder.newInstance(IBond.class, a1, a2, IBond.Order.DOUBLE); 1335 mol.addBond(b1); 1336 IBond b2 = builder.newInstance(IBond.class, a2, a3, IBond.Order.SINGLE); 1337 mol.addBond(b2); 1338 IBond b3 = builder.newInstance(IBond.class, a3, a4, IBond.Order.DOUBLE); 1339 mol.addBond(b3); 1340 IBond b4 = builder.newInstance(IBond.class, a4, a5, IBond.Order.SINGLE); 1341 mol.addBond(b4); 1342 IBond b5 = builder.newInstance(IBond.class, a5, a6, IBond.Order.DOUBLE); 1343 mol.addBond(b5); 1344 IBond b6 = builder.newInstance(IBond.class, a6, a7, IBond.Order.SINGLE); 1345 mol.addBond(b6); 1346 IBond b7 = builder.newInstance(IBond.class, a7, a8, IBond.Order.DOUBLE); 1347 mol.addBond(b7); 1348 IBond b8 = builder.newInstance(IBond.class, a3, a8, IBond.Order.SINGLE); 1349 mol.addBond(b8); 1350 IBond b9 = builder.newInstance(IBond.class, a8, a9, IBond.Order.SINGLE); 1351 mol.addBond(b9); 1352 IBond b10 = builder.newInstance(IBond.class, a9, a10, IBond.Order.DOUBLE); 1353 mol.addBond(b10); 1354 IBond b11 = builder.newInstance(IBond.class, a1, a10, IBond.Order.SINGLE); 1355 mol.addBond(b11); 1356 return mol; 1357 } 1358 1359 /** 1360 * @cdk.inchi InChI=1/C14H10/c1-2-6-12-10-14-8-4-3-7-13(14)9-11(12)5-1/h1-10H 1361 */ makeAnthracene()1362 public static IAtomContainer makeAnthracene() { 1363 IChemObjectBuilder builder = DefaultChemObjectBuilder.getInstance(); 1364 IAtomContainer mol = builder.newInstance(IAtomContainer.class); 1365 IAtom a1 = builder.newInstance(IAtom.class, "C"); 1366 a1.setFormalCharge(0); 1367 mol.addAtom(a1); 1368 IAtom a2 = builder.newInstance(IAtom.class, "C"); 1369 a2.setFormalCharge(0); 1370 mol.addAtom(a2); 1371 IAtom a3 = builder.newInstance(IAtom.class, "C"); 1372 a3.setFormalCharge(0); 1373 mol.addAtom(a3); 1374 IAtom a4 = builder.newInstance(IAtom.class, "C"); 1375 a4.setFormalCharge(0); 1376 mol.addAtom(a4); 1377 IAtom a5 = builder.newInstance(IAtom.class, "C"); 1378 a5.setFormalCharge(0); 1379 mol.addAtom(a5); 1380 IAtom a6 = builder.newInstance(IAtom.class, "C"); 1381 a6.setFormalCharge(0); 1382 mol.addAtom(a6); 1383 IAtom a7 = builder.newInstance(IAtom.class, "C"); 1384 a7.setFormalCharge(0); 1385 mol.addAtom(a7); 1386 IAtom a8 = builder.newInstance(IAtom.class, "C"); 1387 a8.setFormalCharge(0); 1388 mol.addAtom(a8); 1389 IAtom a9 = builder.newInstance(IAtom.class, "C"); 1390 a9.setFormalCharge(0); 1391 mol.addAtom(a9); 1392 IAtom a10 = builder.newInstance(IAtom.class, "C"); 1393 a10.setFormalCharge(0); 1394 mol.addAtom(a10); 1395 IAtom a11 = builder.newInstance(IAtom.class, "C"); 1396 a11.setFormalCharge(0); 1397 mol.addAtom(a11); 1398 IAtom a12 = builder.newInstance(IAtom.class, "C"); 1399 a12.setFormalCharge(0); 1400 mol.addAtom(a12); 1401 IAtom a13 = builder.newInstance(IAtom.class, "C"); 1402 a13.setFormalCharge(0); 1403 mol.addAtom(a13); 1404 IAtom a14 = builder.newInstance(IAtom.class, "C"); 1405 a14.setFormalCharge(0); 1406 mol.addAtom(a14); 1407 IBond b1 = builder.newInstance(IBond.class, a1, a2, IBond.Order.DOUBLE); 1408 mol.addBond(b1); 1409 IBond b2 = builder.newInstance(IBond.class, a2, a3, IBond.Order.SINGLE); 1410 mol.addBond(b2); 1411 IBond b3 = builder.newInstance(IBond.class, a3, a4, IBond.Order.DOUBLE); 1412 mol.addBond(b3); 1413 IBond b4 = builder.newInstance(IBond.class, a4, a5, IBond.Order.SINGLE); 1414 mol.addBond(b4); 1415 IBond b5 = builder.newInstance(IBond.class, a5, a6, IBond.Order.DOUBLE); 1416 mol.addBond(b5); 1417 IBond b6 = builder.newInstance(IBond.class, a6, a7, IBond.Order.SINGLE); 1418 mol.addBond(b6); 1419 IBond b7 = builder.newInstance(IBond.class, a7, a8, IBond.Order.DOUBLE); 1420 mol.addBond(b7); 1421 IBond b8 = builder.newInstance(IBond.class, a8, a9, IBond.Order.SINGLE); 1422 mol.addBond(b8); 1423 IBond b9 = builder.newInstance(IBond.class, a9, a10, IBond.Order.DOUBLE); 1424 mol.addBond(b9); 1425 IBond b10 = builder.newInstance(IBond.class, a5, a10, IBond.Order.SINGLE); 1426 mol.addBond(b10); 1427 IBond b11 = builder.newInstance(IBond.class, a10, a11, IBond.Order.SINGLE); 1428 mol.addBond(b11); 1429 IBond b12 = builder.newInstance(IBond.class, a11, a12, IBond.Order.DOUBLE); 1430 mol.addBond(b12); 1431 IBond b13 = builder.newInstance(IBond.class, a3, a12, IBond.Order.SINGLE); 1432 mol.addBond(b13); 1433 IBond b14 = builder.newInstance(IBond.class, a12, a13, IBond.Order.SINGLE); 1434 mol.addBond(b14); 1435 IBond b15 = builder.newInstance(IBond.class, a13, a14, IBond.Order.DOUBLE); 1436 mol.addBond(b15); 1437 IBond b16 = builder.newInstance(IBond.class, a1, a14, IBond.Order.SINGLE); 1438 mol.addBond(b16); 1439 return mol; 1440 } 1441 1442 /** 1443 * octacyclo[17.2.2.2¹,⁴.2⁴,⁷.2⁷,¹⁰.2¹⁰,¹³.2¹³,¹⁶.2¹⁶,¹⁹]pentatriacontane 1444 * @cdk.inchi InChI=1/C35H56/c1-2-30-6-3-29(1)4-7-31(8-5-29)13-15-33(16-14-31)21-23-35(24-22-33)27-25-34(26-28-35)19-17-32(11-9-30,12-10-30)18-20-34/h1-28H2 1445 */ makeCyclophaneLike()1446 public static IAtomContainer makeCyclophaneLike() { 1447 IChemObjectBuilder builder = DefaultChemObjectBuilder.getInstance(); 1448 IAtomContainer mol = builder.newInstance(IAtomContainer.class); 1449 IAtom a1 = builder.newInstance(IAtom.class, "C"); 1450 a1.setFormalCharge(0); 1451 mol.addAtom(a1); 1452 IAtom a2 = builder.newInstance(IAtom.class, "C"); 1453 a2.setFormalCharge(0); 1454 mol.addAtom(a2); 1455 IAtom a3 = builder.newInstance(IAtom.class, "C"); 1456 a3.setFormalCharge(0); 1457 mol.addAtom(a3); 1458 IAtom a4 = builder.newInstance(IAtom.class, "C"); 1459 a4.setFormalCharge(0); 1460 mol.addAtom(a4); 1461 IAtom a5 = builder.newInstance(IAtom.class, "C"); 1462 a5.setFormalCharge(0); 1463 mol.addAtom(a5); 1464 IAtom a6 = builder.newInstance(IAtom.class, "C"); 1465 a6.setFormalCharge(0); 1466 mol.addAtom(a6); 1467 IAtom a7 = builder.newInstance(IAtom.class, "C"); 1468 a7.setFormalCharge(0); 1469 mol.addAtom(a7); 1470 IAtom a8 = builder.newInstance(IAtom.class, "C"); 1471 a8.setFormalCharge(0); 1472 mol.addAtom(a8); 1473 IAtom a9 = builder.newInstance(IAtom.class, "C"); 1474 a9.setFormalCharge(0); 1475 mol.addAtom(a9); 1476 IAtom a10 = builder.newInstance(IAtom.class, "C"); 1477 a10.setFormalCharge(0); 1478 mol.addAtom(a10); 1479 IAtom a11 = builder.newInstance(IAtom.class, "C"); 1480 a11.setFormalCharge(0); 1481 mol.addAtom(a11); 1482 IAtom a12 = builder.newInstance(IAtom.class, "C"); 1483 a12.setFormalCharge(0); 1484 mol.addAtom(a12); 1485 IAtom a13 = builder.newInstance(IAtom.class, "C"); 1486 a13.setFormalCharge(0); 1487 mol.addAtom(a13); 1488 IAtom a14 = builder.newInstance(IAtom.class, "C"); 1489 a14.setFormalCharge(0); 1490 mol.addAtom(a14); 1491 IAtom a15 = builder.newInstance(IAtom.class, "C"); 1492 a15.setFormalCharge(0); 1493 mol.addAtom(a15); 1494 IAtom a16 = builder.newInstance(IAtom.class, "C"); 1495 a16.setFormalCharge(0); 1496 mol.addAtom(a16); 1497 IAtom a17 = builder.newInstance(IAtom.class, "C"); 1498 a17.setFormalCharge(0); 1499 mol.addAtom(a17); 1500 IAtom a18 = builder.newInstance(IAtom.class, "C"); 1501 a18.setFormalCharge(0); 1502 mol.addAtom(a18); 1503 IAtom a19 = builder.newInstance(IAtom.class, "C"); 1504 a19.setFormalCharge(0); 1505 mol.addAtom(a19); 1506 IAtom a20 = builder.newInstance(IAtom.class, "C"); 1507 a20.setFormalCharge(0); 1508 mol.addAtom(a20); 1509 IAtom a21 = builder.newInstance(IAtom.class, "C"); 1510 a21.setFormalCharge(0); 1511 mol.addAtom(a21); 1512 IAtom a22 = builder.newInstance(IAtom.class, "C"); 1513 a22.setFormalCharge(0); 1514 mol.addAtom(a22); 1515 IAtom a23 = builder.newInstance(IAtom.class, "C"); 1516 a23.setFormalCharge(0); 1517 mol.addAtom(a23); 1518 IAtom a24 = builder.newInstance(IAtom.class, "C"); 1519 a24.setFormalCharge(0); 1520 mol.addAtom(a24); 1521 IAtom a25 = builder.newInstance(IAtom.class, "C"); 1522 a25.setFormalCharge(0); 1523 mol.addAtom(a25); 1524 IAtom a26 = builder.newInstance(IAtom.class, "C"); 1525 a26.setFormalCharge(0); 1526 mol.addAtom(a26); 1527 IAtom a27 = builder.newInstance(IAtom.class, "C"); 1528 a27.setFormalCharge(0); 1529 mol.addAtom(a27); 1530 IAtom a28 = builder.newInstance(IAtom.class, "C"); 1531 a28.setFormalCharge(0); 1532 mol.addAtom(a28); 1533 IAtom a29 = builder.newInstance(IAtom.class, "C"); 1534 a29.setFormalCharge(0); 1535 mol.addAtom(a29); 1536 IAtom a30 = builder.newInstance(IAtom.class, "C"); 1537 a30.setFormalCharge(0); 1538 mol.addAtom(a30); 1539 IAtom a31 = builder.newInstance(IAtom.class, "C"); 1540 a31.setFormalCharge(0); 1541 mol.addAtom(a31); 1542 IAtom a32 = builder.newInstance(IAtom.class, "C"); 1543 a32.setFormalCharge(0); 1544 mol.addAtom(a32); 1545 IAtom a33 = builder.newInstance(IAtom.class, "C"); 1546 a33.setFormalCharge(0); 1547 mol.addAtom(a33); 1548 IAtom a34 = builder.newInstance(IAtom.class, "C"); 1549 a34.setFormalCharge(0); 1550 mol.addAtom(a34); 1551 IAtom a35 = builder.newInstance(IAtom.class, "C"); 1552 a35.setFormalCharge(0); 1553 mol.addAtom(a35); 1554 IBond b1 = builder.newInstance(IBond.class, a1, a2, IBond.Order.SINGLE); 1555 mol.addBond(b1); 1556 IBond b2 = builder.newInstance(IBond.class, a2, a3, IBond.Order.SINGLE); 1557 mol.addBond(b2); 1558 IBond b3 = builder.newInstance(IBond.class, a3, a4, IBond.Order.SINGLE); 1559 mol.addBond(b3); 1560 IBond b4 = builder.newInstance(IBond.class, a4, a5, IBond.Order.SINGLE); 1561 mol.addBond(b4); 1562 IBond b5 = builder.newInstance(IBond.class, a5, a6, IBond.Order.SINGLE); 1563 mol.addBond(b5); 1564 IBond b6 = builder.newInstance(IBond.class, a1, a6, IBond.Order.SINGLE); 1565 mol.addBond(b6); 1566 IBond b7 = builder.newInstance(IBond.class, a6, a7, IBond.Order.SINGLE); 1567 mol.addBond(b7); 1568 IBond b8 = builder.newInstance(IBond.class, a7, a8, IBond.Order.SINGLE); 1569 mol.addBond(b8); 1570 IBond b9 = builder.newInstance(IBond.class, a8, a9, IBond.Order.SINGLE); 1571 mol.addBond(b9); 1572 IBond b10 = builder.newInstance(IBond.class, a9, a10, IBond.Order.SINGLE); 1573 mol.addBond(b10); 1574 IBond b11 = builder.newInstance(IBond.class, a10, a11, IBond.Order.SINGLE); 1575 mol.addBond(b11); 1576 IBond b12 = builder.newInstance(IBond.class, a6, a11, IBond.Order.SINGLE); 1577 mol.addBond(b12); 1578 IBond b13 = builder.newInstance(IBond.class, a9, a12, IBond.Order.SINGLE); 1579 mol.addBond(b13); 1580 IBond b14 = builder.newInstance(IBond.class, a12, a13, IBond.Order.SINGLE); 1581 mol.addBond(b14); 1582 IBond b15 = builder.newInstance(IBond.class, a13, a14, IBond.Order.SINGLE); 1583 mol.addBond(b15); 1584 IBond b16 = builder.newInstance(IBond.class, a14, a15, IBond.Order.SINGLE); 1585 mol.addBond(b16); 1586 IBond b17 = builder.newInstance(IBond.class, a15, a16, IBond.Order.SINGLE); 1587 mol.addBond(b17); 1588 IBond b18 = builder.newInstance(IBond.class, a9, a16, IBond.Order.SINGLE); 1589 mol.addBond(b18); 1590 IBond b19 = builder.newInstance(IBond.class, a14, a17, IBond.Order.SINGLE); 1591 mol.addBond(b19); 1592 IBond b20 = builder.newInstance(IBond.class, a17, a18, IBond.Order.SINGLE); 1593 mol.addBond(b20); 1594 IBond b21 = builder.newInstance(IBond.class, a18, a19, IBond.Order.SINGLE); 1595 mol.addBond(b21); 1596 IBond b22 = builder.newInstance(IBond.class, a19, a20, IBond.Order.SINGLE); 1597 mol.addBond(b22); 1598 IBond b23 = builder.newInstance(IBond.class, a20, a21, IBond.Order.SINGLE); 1599 mol.addBond(b23); 1600 IBond b24 = builder.newInstance(IBond.class, a14, a21, IBond.Order.SINGLE); 1601 mol.addBond(b24); 1602 IBond b25 = builder.newInstance(IBond.class, a19, a22, IBond.Order.SINGLE); 1603 mol.addBond(b25); 1604 IBond b26 = builder.newInstance(IBond.class, a22, a23, IBond.Order.SINGLE); 1605 mol.addBond(b26); 1606 IBond b27 = builder.newInstance(IBond.class, a23, a24, IBond.Order.SINGLE); 1607 mol.addBond(b27); 1608 IBond b28 = builder.newInstance(IBond.class, a24, a25, IBond.Order.SINGLE); 1609 mol.addBond(b28); 1610 IBond b29 = builder.newInstance(IBond.class, a25, a26, IBond.Order.SINGLE); 1611 mol.addBond(b29); 1612 IBond b30 = builder.newInstance(IBond.class, a26, a27, IBond.Order.SINGLE); 1613 mol.addBond(b30); 1614 IBond b31 = builder.newInstance(IBond.class, a27, a28, IBond.Order.SINGLE); 1615 mol.addBond(b31); 1616 IBond b32 = builder.newInstance(IBond.class, a28, a29, IBond.Order.SINGLE); 1617 mol.addBond(b32); 1618 IBond b33 = builder.newInstance(IBond.class, a3, a29, IBond.Order.SINGLE); 1619 mol.addBond(b33); 1620 IBond b34 = builder.newInstance(IBond.class, a27, a30, IBond.Order.SINGLE); 1621 mol.addBond(b34); 1622 IBond b35 = builder.newInstance(IBond.class, a30, a31, IBond.Order.SINGLE); 1623 mol.addBond(b35); 1624 IBond b36 = builder.newInstance(IBond.class, a3, a31, IBond.Order.SINGLE); 1625 mol.addBond(b36); 1626 IBond b37 = builder.newInstance(IBond.class, a27, a32, IBond.Order.SINGLE); 1627 mol.addBond(b37); 1628 IBond b38 = builder.newInstance(IBond.class, a32, a33, IBond.Order.SINGLE); 1629 mol.addBond(b38); 1630 IBond b39 = builder.newInstance(IBond.class, a24, a33, IBond.Order.SINGLE); 1631 mol.addBond(b39); 1632 IBond b40 = builder.newInstance(IBond.class, a24, a34, IBond.Order.SINGLE); 1633 mol.addBond(b40); 1634 IBond b41 = builder.newInstance(IBond.class, a34, a35, IBond.Order.SINGLE); 1635 mol.addBond(b41); 1636 IBond b42 = builder.newInstance(IBond.class, a19, a35, IBond.Order.SINGLE); 1637 mol.addBond(b42); 1638 return mol; 1639 } 1640 1641 /** 1642 * octacyclo[24.2.2.2²,⁵.2⁶,⁹.2¹⁰,¹³.2¹⁴,¹⁷.2¹⁸,²¹.2²²,²⁵]dotetracontane 1643 * @cdk.inchi InChI=1/C42H70/c1-2-30-4-3-29(1)31-5-7-33(8-6-31)35-13-15-37(16-14-35)39-21-23-41(24-22-39)42-27-25-40(26-28-42)38-19-17-36(18-20-38)34-11-9-32(30)10-12-34/h29-42H,1-28H2 1644 */ makeGappedCyclophaneLike()1645 public static IAtomContainer makeGappedCyclophaneLike() { 1646 IChemObjectBuilder builder = DefaultChemObjectBuilder.getInstance(); 1647 IAtomContainer mol = builder.newInstance(IAtomContainer.class); 1648 IAtom a1 = builder.newInstance(IAtom.class, "C"); 1649 a1.setFormalCharge(0); 1650 mol.addAtom(a1); 1651 IAtom a2 = builder.newInstance(IAtom.class, "C"); 1652 a2.setFormalCharge(0); 1653 mol.addAtom(a2); 1654 IAtom a3 = builder.newInstance(IAtom.class, "C"); 1655 a3.setFormalCharge(0); 1656 mol.addAtom(a3); 1657 IAtom a4 = builder.newInstance(IAtom.class, "C"); 1658 a4.setFormalCharge(0); 1659 mol.addAtom(a4); 1660 IAtom a5 = builder.newInstance(IAtom.class, "C"); 1661 a5.setFormalCharge(0); 1662 mol.addAtom(a5); 1663 IAtom a6 = builder.newInstance(IAtom.class, "C"); 1664 a6.setFormalCharge(0); 1665 mol.addAtom(a6); 1666 IAtom a7 = builder.newInstance(IAtom.class, "C"); 1667 a7.setFormalCharge(0); 1668 mol.addAtom(a7); 1669 IAtom a8 = builder.newInstance(IAtom.class, "C"); 1670 a8.setFormalCharge(0); 1671 mol.addAtom(a8); 1672 IAtom a9 = builder.newInstance(IAtom.class, "C"); 1673 a9.setFormalCharge(0); 1674 mol.addAtom(a9); 1675 IAtom a10 = builder.newInstance(IAtom.class, "C"); 1676 a10.setFormalCharge(0); 1677 mol.addAtom(a10); 1678 IAtom a11 = builder.newInstance(IAtom.class, "C"); 1679 a11.setFormalCharge(0); 1680 mol.addAtom(a11); 1681 IAtom a12 = builder.newInstance(IAtom.class, "C"); 1682 a12.setFormalCharge(0); 1683 mol.addAtom(a12); 1684 IAtom a13 = builder.newInstance(IAtom.class, "C"); 1685 a13.setFormalCharge(0); 1686 mol.addAtom(a13); 1687 IAtom a14 = builder.newInstance(IAtom.class, "C"); 1688 a14.setFormalCharge(0); 1689 mol.addAtom(a14); 1690 IAtom a15 = builder.newInstance(IAtom.class, "C"); 1691 a15.setFormalCharge(0); 1692 mol.addAtom(a15); 1693 IAtom a16 = builder.newInstance(IAtom.class, "C"); 1694 a16.setFormalCharge(0); 1695 mol.addAtom(a16); 1696 IAtom a17 = builder.newInstance(IAtom.class, "C"); 1697 a17.setFormalCharge(0); 1698 mol.addAtom(a17); 1699 IAtom a18 = builder.newInstance(IAtom.class, "C"); 1700 a18.setFormalCharge(0); 1701 mol.addAtom(a18); 1702 IAtom a19 = builder.newInstance(IAtom.class, "C"); 1703 a19.setFormalCharge(0); 1704 mol.addAtom(a19); 1705 IAtom a20 = builder.newInstance(IAtom.class, "C"); 1706 a20.setFormalCharge(0); 1707 mol.addAtom(a20); 1708 IAtom a21 = builder.newInstance(IAtom.class, "C"); 1709 a21.setFormalCharge(0); 1710 mol.addAtom(a21); 1711 IAtom a22 = builder.newInstance(IAtom.class, "C"); 1712 a22.setFormalCharge(0); 1713 mol.addAtom(a22); 1714 IAtom a23 = builder.newInstance(IAtom.class, "C"); 1715 a23.setFormalCharge(0); 1716 mol.addAtom(a23); 1717 IAtom a24 = builder.newInstance(IAtom.class, "C"); 1718 a24.setFormalCharge(0); 1719 mol.addAtom(a24); 1720 IAtom a25 = builder.newInstance(IAtom.class, "C"); 1721 a25.setFormalCharge(0); 1722 mol.addAtom(a25); 1723 IAtom a26 = builder.newInstance(IAtom.class, "C"); 1724 a26.setFormalCharge(0); 1725 mol.addAtom(a26); 1726 IAtom a27 = builder.newInstance(IAtom.class, "C"); 1727 a27.setFormalCharge(0); 1728 mol.addAtom(a27); 1729 IAtom a28 = builder.newInstance(IAtom.class, "C"); 1730 a28.setFormalCharge(0); 1731 mol.addAtom(a28); 1732 IAtom a29 = builder.newInstance(IAtom.class, "C"); 1733 a29.setFormalCharge(0); 1734 mol.addAtom(a29); 1735 IAtom a30 = builder.newInstance(IAtom.class, "C"); 1736 a30.setFormalCharge(0); 1737 mol.addAtom(a30); 1738 IAtom a31 = builder.newInstance(IAtom.class, "C"); 1739 a31.setFormalCharge(0); 1740 mol.addAtom(a31); 1741 IAtom a32 = builder.newInstance(IAtom.class, "C"); 1742 a32.setFormalCharge(0); 1743 mol.addAtom(a32); 1744 IAtom a33 = builder.newInstance(IAtom.class, "C"); 1745 a33.setFormalCharge(0); 1746 mol.addAtom(a33); 1747 IAtom a34 = builder.newInstance(IAtom.class, "C"); 1748 a34.setFormalCharge(0); 1749 mol.addAtom(a34); 1750 IAtom a35 = builder.newInstance(IAtom.class, "C"); 1751 a35.setFormalCharge(0); 1752 mol.addAtom(a35); 1753 IAtom a36 = builder.newInstance(IAtom.class, "C"); 1754 a36.setFormalCharge(0); 1755 mol.addAtom(a36); 1756 IAtom a37 = builder.newInstance(IAtom.class, "C"); 1757 a37.setFormalCharge(0); 1758 mol.addAtom(a37); 1759 IAtom a38 = builder.newInstance(IAtom.class, "C"); 1760 a38.setFormalCharge(0); 1761 mol.addAtom(a38); 1762 IAtom a39 = builder.newInstance(IAtom.class, "C"); 1763 a39.setFormalCharge(0); 1764 mol.addAtom(a39); 1765 IAtom a40 = builder.newInstance(IAtom.class, "C"); 1766 a40.setFormalCharge(0); 1767 mol.addAtom(a40); 1768 IAtom a41 = builder.newInstance(IAtom.class, "C"); 1769 a41.setFormalCharge(0); 1770 mol.addAtom(a41); 1771 IAtom a42 = builder.newInstance(IAtom.class, "C"); 1772 a42.setFormalCharge(0); 1773 mol.addAtom(a42); 1774 IBond b1 = builder.newInstance(IBond.class, a1, a2, IBond.Order.SINGLE); 1775 mol.addBond(b1); 1776 IBond b2 = builder.newInstance(IBond.class, a2, a3, IBond.Order.SINGLE); 1777 mol.addBond(b2); 1778 IBond b3 = builder.newInstance(IBond.class, a3, a4, IBond.Order.SINGLE); 1779 mol.addBond(b3); 1780 IBond b4 = builder.newInstance(IBond.class, a4, a5, IBond.Order.SINGLE); 1781 mol.addBond(b4); 1782 IBond b5 = builder.newInstance(IBond.class, a5, a6, IBond.Order.SINGLE); 1783 mol.addBond(b5); 1784 IBond b6 = builder.newInstance(IBond.class, a1, a6, IBond.Order.SINGLE); 1785 mol.addBond(b6); 1786 IBond b7 = builder.newInstance(IBond.class, a6, a7, IBond.Order.SINGLE); 1787 mol.addBond(b7); 1788 IBond b8 = builder.newInstance(IBond.class, a7, a8, IBond.Order.SINGLE); 1789 mol.addBond(b8); 1790 IBond b9 = builder.newInstance(IBond.class, a8, a9, IBond.Order.SINGLE); 1791 mol.addBond(b9); 1792 IBond b10 = builder.newInstance(IBond.class, a9, a10, IBond.Order.SINGLE); 1793 mol.addBond(b10); 1794 IBond b11 = builder.newInstance(IBond.class, a10, a11, IBond.Order.SINGLE); 1795 mol.addBond(b11); 1796 IBond b12 = builder.newInstance(IBond.class, a11, a12, IBond.Order.SINGLE); 1797 mol.addBond(b12); 1798 IBond b13 = builder.newInstance(IBond.class, a7, a12, IBond.Order.SINGLE); 1799 mol.addBond(b13); 1800 IBond b14 = builder.newInstance(IBond.class, a10, a13, IBond.Order.SINGLE); 1801 mol.addBond(b14); 1802 IBond b15 = builder.newInstance(IBond.class, a13, a14, IBond.Order.SINGLE); 1803 mol.addBond(b15); 1804 IBond b16 = builder.newInstance(IBond.class, a14, a15, IBond.Order.SINGLE); 1805 mol.addBond(b16); 1806 IBond b17 = builder.newInstance(IBond.class, a15, a16, IBond.Order.SINGLE); 1807 mol.addBond(b17); 1808 IBond b18 = builder.newInstance(IBond.class, a16, a17, IBond.Order.SINGLE); 1809 mol.addBond(b18); 1810 IBond b19 = builder.newInstance(IBond.class, a17, a18, IBond.Order.SINGLE); 1811 mol.addBond(b19); 1812 IBond b20 = builder.newInstance(IBond.class, a13, a18, IBond.Order.SINGLE); 1813 mol.addBond(b20); 1814 IBond b21 = builder.newInstance(IBond.class, a16, a19, IBond.Order.SINGLE); 1815 mol.addBond(b21); 1816 IBond b22 = builder.newInstance(IBond.class, a19, a20, IBond.Order.SINGLE); 1817 mol.addBond(b22); 1818 IBond b23 = builder.newInstance(IBond.class, a20, a21, IBond.Order.SINGLE); 1819 mol.addBond(b23); 1820 IBond b24 = builder.newInstance(IBond.class, a21, a22, IBond.Order.SINGLE); 1821 mol.addBond(b24); 1822 IBond b25 = builder.newInstance(IBond.class, a22, a23, IBond.Order.SINGLE); 1823 mol.addBond(b25); 1824 IBond b26 = builder.newInstance(IBond.class, a23, a24, IBond.Order.SINGLE); 1825 mol.addBond(b26); 1826 IBond b27 = builder.newInstance(IBond.class, a19, a24, IBond.Order.SINGLE); 1827 mol.addBond(b27); 1828 IBond b28 = builder.newInstance(IBond.class, a22, a25, IBond.Order.SINGLE); 1829 mol.addBond(b28); 1830 IBond b29 = builder.newInstance(IBond.class, a25, a26, IBond.Order.SINGLE); 1831 mol.addBond(b29); 1832 IBond b30 = builder.newInstance(IBond.class, a26, a27, IBond.Order.SINGLE); 1833 mol.addBond(b30); 1834 IBond b31 = builder.newInstance(IBond.class, a27, a28, IBond.Order.SINGLE); 1835 mol.addBond(b31); 1836 IBond b32 = builder.newInstance(IBond.class, a28, a29, IBond.Order.SINGLE); 1837 mol.addBond(b32); 1838 IBond b33 = builder.newInstance(IBond.class, a29, a30, IBond.Order.SINGLE); 1839 mol.addBond(b33); 1840 IBond b34 = builder.newInstance(IBond.class, a25, a30, IBond.Order.SINGLE); 1841 mol.addBond(b34); 1842 IBond b35 = builder.newInstance(IBond.class, a28, a31, IBond.Order.SINGLE); 1843 mol.addBond(b35); 1844 IBond b36 = builder.newInstance(IBond.class, a31, a32, IBond.Order.SINGLE); 1845 mol.addBond(b36); 1846 IBond b37 = builder.newInstance(IBond.class, a32, a33, IBond.Order.SINGLE); 1847 mol.addBond(b37); 1848 IBond b38 = builder.newInstance(IBond.class, a33, a34, IBond.Order.SINGLE); 1849 mol.addBond(b38); 1850 IBond b39 = builder.newInstance(IBond.class, a34, a35, IBond.Order.SINGLE); 1851 mol.addBond(b39); 1852 IBond b40 = builder.newInstance(IBond.class, a35, a36, IBond.Order.SINGLE); 1853 mol.addBond(b40); 1854 IBond b41 = builder.newInstance(IBond.class, a31, a36, IBond.Order.SINGLE); 1855 mol.addBond(b41); 1856 IBond b42 = builder.newInstance(IBond.class, a34, a37, IBond.Order.SINGLE); 1857 mol.addBond(b42); 1858 IBond b43 = builder.newInstance(IBond.class, a37, a38, IBond.Order.SINGLE); 1859 mol.addBond(b43); 1860 IBond b44 = builder.newInstance(IBond.class, a38, a39, IBond.Order.SINGLE); 1861 mol.addBond(b44); 1862 IBond b45 = builder.newInstance(IBond.class, a39, a40, IBond.Order.SINGLE); 1863 mol.addBond(b45); 1864 IBond b46 = builder.newInstance(IBond.class, a3, a40, IBond.Order.SINGLE); 1865 mol.addBond(b46); 1866 IBond b47 = builder.newInstance(IBond.class, a40, a41, IBond.Order.SINGLE); 1867 mol.addBond(b47); 1868 IBond b48 = builder.newInstance(IBond.class, a41, a42, IBond.Order.SINGLE); 1869 mol.addBond(b48); 1870 IBond b49 = builder.newInstance(IBond.class, a37, a42, IBond.Order.SINGLE); 1871 mol.addBond(b49); 1872 return mol; 1873 } 1874 configureAtoms(IAtomContainer mol)1875 private static void configureAtoms(IAtomContainer mol) { 1876 try { 1877 for (IAtom atom : mol.atoms()) 1878 atom.setImplicitHydrogenCount(null); 1879 Isotopes.getInstance().configureAtoms(mol); 1880 } catch (Exception exc) { 1881 logger.error("Could not configure molecule!"); 1882 logger.debug(exc); 1883 } 1884 } 1885 1886 } 1887