Module: Chem
- Defined in:
- lib/chem.rb,
lib/chem/db.rb,
lib/chem/db/gd.rb,
lib/chem/model.rb,
lib/chem/utils.rb,
lib/chem/db/cdx.rb,
lib/chem/db/cml.rb,
lib/chem/db/eps.rb,
lib/chem/db/g98.rb,
lib/chem/db/kcf.rb,
lib/chem/db/mdl.rb,
lib/chem/db/msi.rb,
lib/chem/db/pdb.rb,
lib/chem/db/pdf.rb,
lib/chem/db/sdf.rb,
lib/chem/db/swf.rb,
lib/chem/db/xyz.rb,
lib/chem/db/kegg.rb,
lib/chem/db/smbl.rb,
lib/chem/db/gspan.rb,
lib/chem/db/mopac.rb,
lib/chem/db/opsin.rb,
lib/chem/db/sybyl.rb,
lib/chem/db/cansmi.rb,
lib/chem/db/tinker.rb,
lib/chem/db/vector.rb,
lib/chem/utils/cdk.rb,
lib/chem/utils/net.rb,
lib/chem/utils/sub.rb,
lib/chem/db/pdb_dic.rb,
lib/chem/db/pubchem.rb,
lib/chem/db/rmagick.rb,
lib/chem/utils/prop.rb,
lib/chem/utils/sssr.rb,
lib/chem/db/kcf_rpair.rb,
lib/chem/db/kcf_glycan.rb,
lib/chem/utils/ullmann.rb,
lib/chem/model/skeleton.rb,
lib/chem/utils/geometry.rb,
lib/chem/utils/traverse.rb,
lib/chem/utils/openbabel.rb,
lib/chem/utils/transform.rb,
lib/chem/db/types/type_gd.rb,
lib/chem/db/types/type_cdx.rb,
lib/chem/db/types/type_kcf.rb,
lib/chem/db/types/type_mdl.rb,
lib/chem/db/types/type_pdf.rb,
lib/chem/db/types/type_png.rb,
lib/chem/db/types/type_rdf.rb,
lib/chem/db/types/type_rxn.rb,
lib/chem/db/types/type_sdf.rb,
lib/chem/db/types/type_xyz.rb,
lib/chem/utils/fingerprint.rb,
lib/chem/data/atomic_weight.rb,
lib/chem/db/types/type_kegg.rb,
lib/chem/appl/tinker/nucleic.rb,
lib/chem/data/periodic_table.rb,
lib/chem/db/smiles/smiparser.rb,
lib/chem/db/types/type_gspan.rb,
lib/chem/db/types/type_sybyl.rb,
lib/chem/db/types/type_cansmi.rb,
lib/chem/db/types/type_kcf_glycan.rb,
ext/subcomp.c
Overview
Table of atomic weight extracted from www.chem.qmul.ac.uk/iupac/AtWt/index.html
Defined Under Namespace
Modules: Atom, Bond, CDK, CDX, Db, G98, KCF, KCFRPairType, KEGG, MDL, MSI, Molecule, Mopac7, NetUtils, OpenBabel, PDB, Reaction, SMBL, Sybyl, TINKER, Transform, Type, Writer, XYZ Classes: BitMatrix, CMLAtom, CMLBond, CMLMolecule, CompoundDB, GDWriter, GSpan, GSpanAtom, GSpanBond, GSpanMolecule, KEGGException, NCBI, OpsinMolecule, PDFWriter, PdbDic, RMagickWriter, ReactionSkeleton, Ring, SWFWriter, SkeletonAtom, SmilesAtom, SmilesBond, SmilesMol, TinkerNucleic
Constant Summary collapse
- DefaultDataDir =
File.join(ENV["HOME"], "data")
- ChemTypeRegistry =
[]
- HierarchicElementCounts =
Section 1.
{ :H => [ [4, 0], [8, 1], [16, 2], [32, 3]], :Li => [ [ 1, 4], [ 2, 5]], :B => [ [ 1, 6], [ 2, 7], [ 4, 8]], :C => [ [ 2, 9], [ 4, 10], [ 8, 11], [ 16, 12], [ 32, 13]], :N => [ [ 1, 14], [ 2, 15], [ 4, 16], [ 8, 17]], :O => [ [ 1, 18], [ 2, 19], [ 4, 20], [ 8, 21], [ 16, 22]], :F => [ [ 1, 23], [ 2, 24], [ 4, 25]], :Na => [ [ 1, 26], [ 2, 27]], :Si => [ [ 1, 28], [ 2, 29]], :P => [ [ 1, 30], [ 2, 31], [ 4, 32]], :S => [ [ 1, 33], [ 2, 34], [ 4, 35], [ 8, 36]], :Cl => [ [ 1, 37], [ 2, 38], [ 4, 39], [ 8, 40]], :K => [ [ 1, 41], [ 2, 42]], :Br => [ [ 1, 43], [ 2, 44], [ 4, 45]], :I => [ [ 1, 46], [ 2, 47], [ 4, 48]], :Be => [[ 1, 49 ]], :Mg => [[ 1, 50]], :Al => [[ 1, 51]], :Ca => [[ 1, 52]], :Sc => [[ 1, 53]], :Ti => [[ 1, 54]], :V => [[ 1, 55]], :Cr => [[ 1, 56]], :Mn => [[ 1, 57]], :Fe => [[ 1, 58]], :Co => [[ 1, 59]], :Ni => [[ 1, 60]], :Cu => [[ 1, 61]], :Zn => [[ 1, 62]], :Ga => [[ 1, 63]], :Ge => [[ 1, 64]], :As => [[ 1, 65]], :Se => [[ 1, 66]], :Kr => [[ 1, 67]], :Rb => [[ 1, 68]], :Sr => [[ 1, 69]], :Y => [[ 1, 70]], :Zr => [[ 1, 71]], :Nb => [[ 1, 72]], :Mo => [[ 1, 73]], :Ru => [[ 1, 74]], :Rh => [[ 1, 75]], :Pd => [[ 1, 76]], :Ag => [[ 1, 77]], :Cd => [[ 1, 78]], :In => [[ 1, 79]], :Sn => [[ 1, 80]], :Sb => [[ 1, 81]], :Te => [[ 1, 82]], :Xe => [[ 1, 83]], :Cs => [[ 1, 84]], :Ba => [[ 1, 85]], :Lu => [[ 1, 86]], :Hf => [[ 1, 87]], :Ta => [[ 1, 88]], :W => [[ 1, 89]], :Re => [[ 1, 90]], :Os => [[ 1, 91]], :Ir => [[ 1, 92]], :Pt => [[ 1, 93]], :Au => [[ 1, 94]], :Hg => [[ 1, 95]], :Tl => [[ 1, 96]], :Pb => [[ 1, 97]], :Bi => [[ 1, 98]], :La => [[ 1, 99]], :Ce => [[ 1, 100]], :Pr => [[ 1, 101]], :Nd => [[ 1, 102]], :Pm => [[ 1, 103]], :Sm => [[ 1, 104]], :Eu => [[ 1, 105]], :Gd => [[ 1, 106]], :Tb => [[ 1, 107]], :Dy => [[ 1, 108]], :Ho => [[ 1, 109]], :Er => [[ 1, 110]], :Tm => [[ 1, 111]], :Yb => [[ 1, 112]], :Tc => [[ 1, 113]], :U => [[ 1, 114]], }
- Section3 =
Section 3
{ 'H-Li' => 263, 'Li-Li' => 264, 'B-Li' => 265, 'C-Li' => 266, 'Li-O' => 267, 'F-Li' => 268, 'Li-P' => 269, 'Li-S' => 270, 'Cl-Li' => 271, 'B-H' => 272, 'B-B' => 273, 'B-C' => 274, 'B-N' => 275, 'B-O' => 276, 'B-F' => 277, 'B-Si' => 278, 'B-P' => 279, 'B-S' => 280, 'B-Cl' => 281, 'B-Br' => 282, 'C-H' => 283, 'C-C' => 284, 'C-N' => 285, 'C-O' => 286, 'C-F' => 287, 'C-Na' => 288, 'C-Mg' => 289, 'Al-C' => 290, 'C-Si' => 291, 'C-P' => 292, 'C-S' => 293, 'C-Cl' => 294, 'As-C' => 295, 'C-Se' => 296, 'Br-C' => 297, 'C-I' => 298, 'H-N' => 299, 'N-N' => 300, 'N-O' => 301, 'F-N' => 302, 'N-Si' => 303, 'N-P' => 304, 'N-S' => 305, 'Cl-N' => 306, 'Br-N' => 307, 'H-O' => 308, 'O-O' => 309, 'Mg-O' => 310, 'Na-O' => 311, 'Al-O' => 312, 'O-Si' => 313, 'O-P' => 314, 'K-O' => 315, 'F-P' => 316, 'F-S' => 317, 'Al-H' => 318, 'Al-Cl' => 319, 'H-Si' => 320, 'Si-Si' => 321, 'Cl-Si' => 322, 'H-P' => 323, 'P-P' => 324, 'As-H' => 325, 'As-As' => 326, }
- Section4 =
Section 4 Simple atom nearest neighbors
{ :C => [ ["-Br", "-C", 327], ["-Br", "-C", "-C", 328], ["-Br", "-H", 329], ["-Br", "~C", 330], ["-Br", "~N", 331], ["-C", "-C", 332], ["-C", "-C", "-C", 333], ["-C", "-C", "-C", "-C", 334], ["-C", "-C", "-C", "-H", 335], ["-C", "-C", "-C", "-N", 336], ["-C", "-C", "-C", "-O", 337], ["-C", "-C", "-H", "-N", 338], ["-C", "-C", "-H", "-O", 339], ["-C", "-C", "-N", 340], ["-C", "-C", "-O", 341], ["-C", "-Cl", 342], ["-C", "-Cl", "-H", 343], ["-C", "-H", 344], ["-C", "-H", "-N", 345], ["-C", "-H", "-O", 346], ["-C", "-H", "-O", "-O", 347], ["-C", "-H", "-P", 348], ["-C", "-H", "-S", 349], ["-C", "-I", 350], ["-C", "-N", 351], ["-C", "-O", 352], ["-C", "-S", 353], ["-C", "-Si", 354], ["-C", "~C", 355], ["-C", "~C", "~C", 356], ["-C", "~C", "~N", 357], ["-C", "~N", 358], ["-C", "~N", "~N", 359], ["-Cl", "-Cl", 360], ["-Cl", "-H", 361], ["-Cl", "~C", 362], ["-F", "-F", 363], ["-F", "~C", 364], ["-H", "-N", 365], ["-H", "-O", 366], ["-H", "-O", "-O", 367], ["-H", "-S", 368], ["-H", "-Si", 369], ["-H", "~C", 370], ["-H", "~C", "~C", 371], ["-H", "~C", "~N", 372], ["-H", "~N", 373], ["-H", "-H", "-H", 374], ["-N", "-N", 375], ["-N", "~C", 376], ["-N", "~C", "~C", 377], ["-N", "~C", "~N", 378], ["-N", "~N", 379], ["-O", "-O", 380], ["-O", "~C", 381], ["-O", "~C", "~C", 382], ["-S", "~C", 383], ["~C", "~C", 384], ["~C", "~C", "~C", 385], ["~C", "~C", "~N", 386], ["~C", "~N", 387], ["~C", "~N", "~N", 388], ["~N", "~N", 389]], :N => [ ["-C", "-C", 390], ["-C", "-C", "-C", 391], ["-C", "-C", "-H", 392], ["-C", "-H", 393], ["-C", "-H", "-N", 394], ["-C", "-O", 395], ["-C", "~C", 396], ["-C", "~C", "~C", 397], ["-H", "-N", 398], ["-H", "~C", 399], ["-H", "~C", "~C", 400], ["-O", "-O", 401], ["-O", "~O", 402], ["~C", "~C", 403], ["~C", "~C", "~C", 404]], :O => [ ["-C", "-C", 405], ["-C", "-H", 406], ["-C", "-P", 407], ["-H", "-S", 408], ["~C", "~C", 409]], :P => [ ["-C", "-C", 410], ["-O", "-O", 411]], :S => [ ["-C", "-C", 412], ["-C", "-H", 413], ["-C", "-O", 414]], :Si => [ ["-C", "-C", 415] ] }
- Section6 =
Section 6 Simple SMARTS patterns
{ "C-C-C#C" => 460, "O-C-C=N" => 461, "O-C-C=O" => 462, "N:C-S-[#1]" => 463, "N-C-C=C" => 464, "O=S-C-C" => 465, "N#C-C=C" => 466, "C=N-N-C" => 467, "O=S-C-N" => 468, "S-S-C:C" => 469, "C:C-C=C" => 470, "S:C:C:C" => 471, "C:N:C-C" => 472, "S-C:N:C" => 473, "S:C:C:N" => 474, "S-C=N-C" => 475, "C-O-C=C" => 476, "N-N-C:C" => 477, "S-C=N-[#1]" => 478, "S-C-S-C" => 479, "C:S:C-C" => 480, "O-S-C:C" => 481, "C:N-C:C" => 482, "N-S-C:C" => 483, "N-C:N:C" => 484, "N:C:C:N" => 485, "N-C:N:N" => 486, "N-C=N-C" => 487, "N-C=N-[#1]" => 488, "N-C-S-C" => 489, "C-C-C=C" => 490, "C-N:C-[#1]" => 491, "N-C:O:C" => 492, "O=C-C:C" => 493, "O=C-C:N" => 494, "C-N-C:C" => 495, "N:N-C-[#1]" => 496, "O-C:C:N" => 497, "O-C=C-C" => 498, "N-C:C:N" => 499, "C-S-C:C" => 500, "Cl-C:C-C" => 501, "N-C=C-[#1]" => 502, "Cl-C:C-[#1]" => 503, "N:C:N-C" => 504, "Cl-C:C-O" => 505, "C-C:N:C" => 506, "C-C-S-C" => 507, "S=C-N-C" => 508, "Br-C:C-C" => 509, "[#1]-N-N-[#1]" => 510, "S=C-N-[#1]" => 511, "C-[As]-O-[#1]" => 512, "S:C:C-[#1]" => 513, "O-N-C-C" => 514, "N-N-C-C" => 515, "[#1]-C=C-[#1]" => 516, "N-N-C-N" => 517, "O=C-N-N" => 518, "N=C-N-C" => 519, "C=C-C:C" => 520, "C:N-C-[#1]" => 521, "C-N-N-[#1]" => 522, "N:C:C-C" => 523, "C-C=C-C" => 524, "[As]-C:C-[#1]" => 525, "Cl-C:C-Cl" => 526, "C:C:N-[#1]" => 527, "[#1]-N-C-[#1]" => 528, "Cl-C-C-Cl" => 529, "N:C-C:C" => 530, "S-C:C-C" => 531, "S-C:C-[#1]" => 532, "S-C:C-N" => 533, "S-C:C-O" => 534, "O=C-C-C" => 535, "O=C-C-N" => 536, "O=C-C-O" => 537, "N=C-C-C" => 538, "N=C-C-[#1]" => 539, "C-N-C-[#1]" => 540, "O-C:C-C" => 541, "O-C:C-[#1]" => 542, "O-C:C-N" => 543, "O-C:C-O" => 544, "N-C:C-C" => 545, "N-C:C-[#1]" => 546, "N-C:C-N" => 547, "O-C-C:C" => 548, "N-C-C:C" => 549, "Cl-C-C-C" => 550, "Cl-C-C-O" => 551, "C:C-C:C" => 552, "O=C-C=C" => 553, "Br-C-C-C" => 554, "N=C-C=C" => 555, "C=C-C-C" => 556, "N:C-O-[#1]" => 557, "O=N-C:C" => 558, "O-C-N-[#1]" => 559, "N-C-N-C" => 560, "Cl-C-C=O" => 561, "Br-C-C=O" => 562, "O-C-O-C" => 563, "C=C-C=C" => 564, "C:C-O-C" => 565, "O-C-C-N" => 566, "O-C-C-O" => 567, "N#C-C-C" => 568, "N-C-C-N" => 569, "C:C-C-C" => 570, "[#1]-C-O-[#1]" => 571, "N:C:N:C" => 572, "O-C-C=C" => 573, "O-C-C:C-C" => 574, "O-C-C:C-O" => 575, "N=C-C:C-[#1]" => 576, "C:C-N-C:C" => 577, "C-C:C-C:C" => 578, "O=C-C-C-C" => 579, "O=C-C-C-N" => 580, "O=C-C-C-O" => 581, "C-C-C-C-C" => 582, "Cl-C:C-O-C" => 583, "C:C-C=C-C" => 584, "C-C:C-N-C" => 585, "C-S-C-C-C" => 586, "N-C:C-O-[#1]" => 587, "O=C-C-C=O" => 588, "C-C:C-O-C" => 589, "C-C:C-O-[#1]" => 590, "Cl-C-C-C-C" => 591, "N-C-C-C-C" => 592, "N-C-C-C-N" => 593, "C-O-C-C=C" => 594, "C:C-C-C-C" => 595, "N=C-N-C-C" => 596, "O=C-C-C:C" => 597, "Cl-C:C:C-C" => 598, "[#1]-C-C=C-[#1]" => 599, "N-C:C:C-C" => 600, "N-C:C:C-N" => 601, "O=C-C-N-C" => 602, "C-C:C:C-C" => 603, "C-O-C-C:C" => 604, "O=C-C-O-C" => 605, "O-C:C-C-C" => 606, "N-C-C-C:C" => 607, "C-C-C-C:C" => 608, "Cl-C-C-N-C" => 609, "C-O-C-O-C" => 610, "N-C-C-N-C" => 611, "N-C-O-C-C" => 612, "C-N-C-C-C" => 613, "C-C-O-C-C" => 614, "N-C-C-O-C" => 615, "C:C:N:N:C" => 616, "C-C-C-O-[#1]" => 617, "C:C-C-C:C" => 618, "O-C-C=C-C" => 619, "C:C-O-C-C" => 620, "N-C:C:C:N" => 621, "O=C-O-C:C" => 622, "O=C-C:C-C" => 623, "O=C-C:C-N" => 624, "O=C-C:C-O" => 625, "C-O-C:C-C" => 626, "O=[As]-C:C:C" => 627, "C-N-C-C:C" => 628, "S-C:C:C-N" => 629, "O-C:C-O-C" => 630, "O-C:C-O-[#1]" => 631, "C-C-O-C:C" => 632, "N-C-C:C-C" => 633, "C-C-C:C-C" => 634, "N-N-C-N-[#1]" => 635, "C-N-C-N-C" => 636, "O-C-C-C-C" => 637, "O-C-C-C-N" => 638, "O-C-C-C-O" => 639, "C=C-C-C-C" => 640, "O-C-C-C=C" => 641, "O-C-C-C=O" => 642, "[#1]-C-C-N-[#1]" => 643, "C-C=N-N-C" => 644, "O=C-N-C-C" => 645, "O=C-N-C-[#1]" => 646, "O=C-N-C-N" => 647, "O=N-C:C-N" => 648, "O=N-C:C-O" => 649, "O=C-N-C=O" => 650, "O-C:C:C-C" => 651, "O-C:C:C-N" => 652, "O-C:C:C-O" => 653, "N-C-N-C-C" => 654, "O-C-C-C:C" => 655, "C-C-N-C-C" => 656, "C-N-C:C-C" => 657, "C-C-S-C-C" => 658, "O-C-C-N-C" => 659, "C-C=C-C-C" => 660, "O-C-O-C-C" => 661, "O-C-C-O-C" => 662, "O-C-C-O-[#1]" => 663, "C-C=C-C=C" => 664, "N-C:C-C-C" => 665, "C=C-C-O-C" => 666, "C=C-C-O-[#1]" => 667, "C-C:C-C-C" => 668, "Cl-C:C-C=O" => 669, "Br-C:C:C-C" => 670, "O=C-C=C-C" => 671, "O=C-C=C-[#1]" => 672, "O=C-C=C-N" => 673, "N-C-N-C:C" => 674, "Br-C-C-C:C" => 675, "N#C-C-C-C" => 676, "C-C=C-C:C" => 677, "C-C-C=C-C" => 678, "C-C-C-C-C-C" => 679, "O-C-C-C-C-C" => 680, "O-C-C-C-C-O" => 681, "O-C-C-C-C-N" => 682, "N-C-C-C-C-C" => 683, "O=C-C-C-C-C" => 684, "O=C-C-C-C-N" => 685, "O=C-C-C-C-O" => 686, "O=C-C-C-C=O" => 687, "C-C-C-C-C-C-C" => 688, "O-C-C-C-C-C-C" => 689, "O-C-C-C-C-C-O" => 690, "O-C-C-C-C-C-N" => 691, "O=C-C-C-C-C-C" => 692, "O=C-C-C-C-C-O" => 693, "O=C-C-C-C-C=O" => 694, "O=C-C-C-C-C-N" => 695, "C-C-C-C-C-C-C-C" => 696, "C-C-C-C-C-C(C)-C" => 697, "O-C-C-C-C-C-C-C" => 698, "O-C-C-C-C-C(C)-C" => 699, "O-C-C-C-C-C-O-C" => 700, "O-C-C-C-C-C(O)-C" => 701, "O-C-C-C-C-C-N-C" => 702, "O-C-C-C-C-C(N)-C" => 703, "O=C-C-C-C-C-C-C" => 704, "O=C-C-C-C-C(O)-C" => 705, "O=C-C-C-C-C(=O)-C" => 706, "O=C-C-C-C-C(N)-C" => 707, "C-C(C)-C-C" => 708, "C-C(C)-C-C-C" => 709, "C-C-C(C)-C-C" => 710, "C-C(C)(C)-C-C" => 711, "C-C(C)-C(C)-C" => 712, }
- Section7 =
Section 7: Complex SMARTS patterns
{ "Cc1ccc(C)cc1" => 713, "Cc1ccc(O)cc1" => 714, "Cc1ccc(S)cc1" => 715, "Cc1ccc(N)cc1" => 716, "Cc1ccc(Cl)cc1" => 717, "Cc1ccc(Br)cc1" => 718, "Oc1ccc(O)cc1" => 719, "Oc1ccc(S)cc1" => 720, "Oc1ccc(N)cc1" => 721, "Oc1ccc(Cl)cc1" => 722, "Oc1ccc(Br)cc1" => 723, "Sc1ccc(S)cc1" => 724, "Sc1ccc(N)cc1" => 725, "Sc1ccc(Cl)cc1" => 726, "Sc1ccc(Br)cc1" => 727, "Nc1ccc(N)cc1" => 728, "Nc1ccc(Cl)cc1" => 729, "Nc1ccc(Br)cc1" => 730, "Clc1ccc(Cl)cc1" => 731, "Clc1ccc(Br)cc1" => 732, "Brc1ccc(Br)cc1" => 733, "Cc1cc(C)ccc1" => 734, "Cc1cc(O)ccc1" => 735, "Cc1cc(S)ccc1" => 736, "Cc1cc(N)ccc1" => 737, "Cc1cc(Cl)ccc1" => 738, "Cc1cc(Br)ccc1" => 739, "Oc1cc(O)ccc1" => 740, "Oc1cc(S)ccc1" => 741, "Oc1cc(N)ccc1" => 742, "Oc1cc(Cl)ccc1" => 743, "Oc1cc(Br)ccc1" => 744, "Sc1cc(S)ccc1" => 745, "Sc1cc(N)ccc1" => 746, "Sc1cc(Cl)ccc1" => 747, "Sc1cc(Br)ccc1" => 748, "Nc1cc(N)ccc1" => 749, "Nc1cc(Cl)ccc1" => 750, "Nc1cc(Br)ccc1" => 751, "Clc1cc(Cl)ccc1" => 752, "Clc1cc(Br)ccc1" => 753, "Brc1cc(Br)ccc1" => 754, "Cc1c(C)cccc1" => 755, "Cc1c(O)cccc1" => 756, "Cc1c(S)cccc1" => 757, "Cc1c(N)cccc1" => 758, "Cc1c(Cl)cccc1" => 759, "Cc1c(Br)cccc1" => 760, "Oc1c(O)cccc1" => 761, "Oc1c(S)cccc1" => 762, "Oc1c(N)cccc1" => 763, "Oc1c(Cl)cccc1" => 764, "Oc1c(Br)cccc1" => 765, "Sc1c(S)cccc1" => 766, "Sc1c(N)cccc1" => 767, "Sc1c(Cl)cccc1" => 768, "Sc1c(Br)cccc1" => 769, "Nc1c(N)cccc1" => 770, "Nc1c(Cl)cccc1" => 771, "Nc1c(Br)cccc1" => 772, "Clc1c(Cl)cccc1" => 773, "Clc1c(Br)cccc1" => 774, "Brc1c(Br)cccc1" => 775, "CC1CCC(C)CC1" => 776, "CC1CCC(O)CC1" => 777, "CC1CCC(S)CC1" => 778, "CC1CCC(N)CC1" => 779, "CC1CCC(Cl)CC1" => 780, "CC1CCC(Br)CC1" => 781, "OC1CCC(O)CC1" => 782, "OC1CCC(S)CC1" => 783, "OC1CCC(N)CC1" => 784, "OC1CCC(Cl)CC1" => 785, "OC1CCC(Br)CC1" => 786, "SC1CCC(S)CC1" => 787, "SC1CCC(N)CC1" => 788, "SC1CCC(Cl)CC1" => 789, "SC1CCC(Br)CC1" => 790, "NC1CCC(N)CC1" => 791, "NC1CCC(Cl)CC1" => 792, "NC1CCC(Br)CC1" => 793, "ClC1CCC(Cl)CC1" => 794, "ClC1CCC(Br)CC1" => 795, "BrC1CCC(Br)CC1" => 796, "CC1CC(C)CCC1" => 797, "CC1CC(O)CCC1" => 798, "CC1CC(S)CCC1" => 799, "CC1CC(N)CCC1" => 800, "CC1CC(Cl)CCC1" => 801, "CC1CC(Br)CCC1" => 802, "OC1CC(O)CCC1" => 803, "OC1CC(S)CCC1" => 804, "OC1CC(N)CCC1" => 805, "OC1CC(Cl)CCC1" => 806, "OC1CC(Br)CCC1" => 807, "SC1CC(S)CCC1" => 808, "SC1CC(N)CCC1" => 809, "SC1CC(Cl)CCC1" => 810, "SC1CC(Br)CCC1" => 811, "NC1CC(N)CCC1" => 812, "NC1CC(Cl)CCC1" => 813, "NC1CC(Br)CCC1" => 814, "ClC1CC(Cl)CCC1" => 815, "ClC1CC(Br)CCC1" => 816, "BrC1CC(Br)CCC1" => 817, "CC1C(C)CCCC1" => 818, "CC1C(O)CCCC1" => 819, "CC1C(S)CCCC1" => 820, "CC1C(N)CCCC1" => 821, "CC1C(Cl)CCCC1" => 822, "CC1C(Br)CCCC1" => 823, "OC1C(O)CCCC1" => 824, "OC1C(S)CCCC1" => 825, "OC1C(N)CCCC1" => 826, "OC1C(Cl)CCCC1" => 827, "OC1C(Br)CCCC1" => 828, "SC1C(S)CCCC1" => 829, "SC1C(N)CCCC1" => 830, "SC1C(Cl)CCCC1" => 831, "SC1C(Br)CCCC1" => 832, "NC1C(N)CCCC1" => 833, "NC1C(Cl)CCCC1" => 834, "NC1C(Br)CCCC1" => 835, "ClC1C(Cl)CCCC1" => 836, "ClC1C(Br)CCCC1" => 837, "BrC1C(Br)CCCC1" => 838, "CC1CC(C)CC1" => 839, "CC1CC(O)CC1" => 840, "CC1CC(S)CC1" => 841, "CC1CC(N)CC1" => 842, "CC1CC(Cl)CC1" => 843, "CC1CC(Br)CC1" => 844, "OC1CC(O)CC1" => 845, "OC1CC(S)CC1" => 846, "OC1CC(N)CC1" => 847, "OC1CC(Cl)CC1" => 848, "OC1CC(Br)CC1" => 849, "SC1CC(S)CC1" => 850, "SC1CC(N)CC1" => 851, "SC1CC(Cl)CC1" => 852, "SC1CC(Br)CC1" => 853, "NC1CC(N)CC1" => 854, "NC1CC(Cl)CC1" => 855, "NC1CC(Br)CC1" => 856, "ClC1CC(Cl)CC1" => 857, "ClC1CC(Br)CC1" => 858, "BrC1CC(Br)CC1" => 859, "CC1C(C)CCC1" => 860, "CC1C(O)CCC1" => 861, "CC1C(S)CCC1" => 862, "CC1C(N)CCC1" => 863, "CC1C(Cl)CCC1" => 864, "CC1C(Br)CCC1" => 865, "OC1C(O)CCC1" => 866, "OC1C(S)CCC1" => 867, "OC1C(N)CCC1" => 868, "OC1C(Cl)CCC1" => 869, "OC1C(Br)CCC1" => 870, "SC1C(S)CCC1" => 871, "SC1C(N)CCC1" => 872, "SC1C(Cl)CCC1" => 873, "SC1C(Br)CCC1" => 874, "NC1C(N)CCC1" => 875, "NC1C(Cl)CC1" => 876, "NC1C(Br)CCC1" => 877, "ClC1C(Cl)CCC1" => 878, "ClC1C(Br)CCC1" => 879, "BrC1C(Br)CCC1" => 880, }
- PubChemSubsKey =
[ ">= 4 H", ">= 8 H", ">= 16 H", ">= 32 H", ">= 1 Li", ">= 2 Li", ">= 1 B", ">= 2 B", ">= 4 B", ">= 2 C", ">= 4 C", ">= 8 C", ">= 16 C", ">= 32 C", ">= 1 N", ">= 2 N", ">= 4 N", ">= 8 N", ">= 1 O", ">= 2 O", ">= 4 O", ">= 8 O", ">= 16 O", ">= 1 F", ">= 2 F", ">= 4 F", ">= 1 Na", ">= 2 Na", ">= 1 Si", ">= 2 Si", ">= 1 P", ">= 2 P", ">= 4 P", ">= 1 S", ">= 2 S", ">= 4 S", ">= 8 S", ">= 1 Cl", ">= 2 Cl", ">= 4 Cl", ">= 8 Cl", ">= 1 K", ">= 2 K", ">= 1 Br", ">= 2 Br", ">= 4 Br", ">= 1 I", ">= 2 I", ">= 4 I", ">= 1 Be", ">= 1 Mg", ">= 1 Al", ">= 1 Ca", ">= 1 Sc", ">= 1 Ti", ">= 1 V", ">= 1 Cr", ">= 1 Mn", ">= 1 Fe", ">= 1 Co", ">= 1 Ni", ">= 1 Cu", ">= 1 Zn", ">= 1 Ga", ">= 1 Ge", ">= 1 As", ">= 1 Se", ">= 1 Kr", ">= 1 Rb", ">= 1 Sr", ">= 1 Y", ">= 1 Zr", ">= 1 Nb", ">= 1 Mo", ">= 1 Ru", ">= 1 Rh", ">= 1 Pd", ">= 1 Ag", ">= 1 Cd", ">= 1 In", ">= 1 Sn", ">= 1 Sb", ">= 1 Te", ">= 1 Xe", ">= 1 Cs", ">= 1 Ba", ">= 1 Lu", ">= 1 Hf", ">= 1 Ta", ">= 1 W", ">= 1 Re", ">= 1 Os", ">= 1 Ir", ">= 1 Pt", ">= 1 Au", ">= 1 Hg", ">= 1 Tl", ">= 1 Pb", ">= 1 Bi", ">= 1 La", ">= 1 Ce", ">= 1 Pr", ">= 1 Nd", ">= 1 Pm", ">= 1 Sm", ">= 1 Eu", ">= 1 Gd", ">= 1 Tb", ">= 1 Dy", ">= 1 Ho", ">= 1 Er", ">= 1 Tm", ">= 1 Yb", ">= 1 Tc", ">= 1 U", ">= 1 any ring size 3", ">= 1 saturated carbon-only ring size 3", ">= 1 saturated nitrogen-containing ring size 3", ">= 1 saturated heteroatom-containing ring size 3", ">= 1 unsaturated or aromatic carbon-only ring size 3", ">= 1 unsaturated or aromatic nitrogen-containing ring size 3", ">= 1 unsaturated or aromatic heteroatom-containing ring size 3", ">= 2 any ring size 3", ">= 2 saturated carbon-only ring size 3", ">= 2 saturated nitrogen-containing ring size 3", ">= 2 saturated heteroatom-containing ring size 3", ">= 2 unsaturated or aromatic carbon-only ring size 3", ">= 2 unsaturated or aromatic nitrogen-containing ring size 3", ">= 2 unsaturated or aromatic heteroatom-containing ring size 3", ">= 1 any ring size 4", ">= 1 saturated carbon-only ring size 4", ">= 1 saturated nitrogen-containing ring size 4", ">= 1 saturated heteroatom-containing ring size 4", ">= 1 unsaturated or aromatic carbon-only ring size 4", ">= 1 unsaturated or aromatic nitrogen-containing ring size 4", ">= 1 unsaturated or aromatic heteroatom-containing ring size 4", ">= 2 any ring size 4", ">= 2 saturated carbon-only ring size 4", ">= 2 saturated nitrogen-containing ring size 4", ">= 2 saturated heteroatom-containing ring size 4", ">= 2 unsaturated or aromatic carbon-only ring size 4", ">= 2 unsaturated or aromatic nitrogen-containing ring size 4", ">= 2 unsaturated or aromatic heteroatom-containing ring size 4", ">= 1 any ring size 5", ">= 1 saturated carbon-only ring size 5", ">= 1 saturated nitrogen-containing ring size 5", ">= 1 saturated heteroatom-containing ring size 5", ">= 1 unsaturated or aromatic carbon-only ring size 5", ">= 1 unsaturated or aromatic nitrogen-containing ring size 5", ">= 1 unsaturated or aromatic heteroatom-containing ring size 5", ">= 2 any ring size 5", ">= 2 saturated carbon-only ring size 5", ">= 2 saturated nitrogen-containing ring size 5", ">= 2 saturated heteroatom-containing ring size 5", ">= 2 unsaturated or aromatic carbon-only ring size 5", ">= 2 unsaturated or aromatic nitrogen-containing ring size 5", ">= 2 unsaturated or aromatic heteroatom-containing ring size 5", ">= 3 any ring size 5", ">= 3 saturated carbon-only ring size 5", ">= 3 saturated nitrogen-containing ring size 5", ">= 3 saturated heteroatom-containing ring size 5", ">= 3 unsaturated or aromatic carbon-only ring size 5", ">= 3 unsaturated or aromatic nitrogen-containing ring size 5", ">= 3 unsaturated or aromatic heteroatom-containing ring size 5", ">= 4 any ring size 5", ">= 4 saturated carbon-only ring size 5", ">= 4 saturated nitrogen-containing ring size 5", ">= 4 saturated heteroatom-containing ring size 5", ">= 4 unsaturated or aromatic carbon-only ring size 5", ">= 4 unsaturated or aromatic nitrogen-containing ring size 5", ">= 4 unsaturated or aromatic heteroatom-containing ring size 5", ">= 5 any ring size 5", ">= 5 saturated carbon-only ring size 5", ">= 5 saturated nitrogen-containing ring size 5", ">= 5 saturated heteroatom-containing ring size 5", ">= 5 unsaturated or aromatic carbon-only ring size 5", ">= 5 unsaturated or aromatic nitrogen-containing ring size 5", ">= 5 unsaturated or aromatic heteroatom-containing ring size 5", ">= 1 any ring size 6", ">= 1 saturated carbon-only ring size 6", ">= 1 saturated nitrogen-containing ring size 6", ">= 1 saturated heteroatom-containing ring size 6", ">= 1 unsaturated or aromatic carbon-only ring size 6", ">= 1 unsaturated or aromatic nitrogen-containing ring size 6", ">= 1 unsaturated or aromatic heteroatom-containing ring size 6", ">= 2 any ring size 6", ">= 2 saturated carbon-only ring size 6", ">= 2 saturated nitrogen-containing ring size 6", ">= 2 saturated heteroatom-containing ring size 6", ">= 2 unsaturated or aromatic carbon-only ring size 6", ">= 2 unsaturated or aromatic nitrogen-containing ring size 6", ">= 2 unsaturated or aromatic heteroatom-containing ring size 6", ">= 3 any ring size 6", ">= 3 saturated carbon-only ring size 6", ">= 3 saturated nitrogen-containing ring size 6", ">= 3 saturated heteroatom-containing ring size 6", ">= 3 unsaturated or aromatic carbon-only ring size 6", ">= 3 unsaturated or aromatic nitrogen-containing ring size 6", ">= 3 unsaturated or aromatic heteroatom-containing ring size 6", ">= 4 any ring size 6", ">= 4 saturated carbon-only ring size 6", ">= 4 saturated nitrogen-containing ring size 6", ">= 4 saturated heteroatom-containing ring size 6", ">= 4 unsaturated or aromatic carbon-only ring size 6", ">= 4 unsaturated or aromatic nitrogen-containing ring size 6", ">= 4 unsaturated or aromatic heteroatom-containing ring size 6", ">= 5 any ring size 6", ">= 5 saturated carbon-only ring size 6", ">= 5 saturated nitrogen-containing ring size 6", ">= 5 saturated heteroatom-containing ring size 6", ">= 5 unsaturated or aromatic carbon-only ring size 6", ">= 5 unsaturated or aromatic nitrogen-containing ring size 6", ">= 5 unsaturated or aromatic heteroatom-containing ring size 6", ">= 1 any ring size 7", ">= 1 saturated carbon-only ring size 7", ">= 1 saturated nitrogen-containing ring size 7", ">= 1 saturated heteroatom-containing ring size 7", ">= 1 unsaturated or aromatic carbon-only ring size 7", ">= 1 unsaturated or aromatic nitrogen-containing ring size 7", ">= 1 unsaturated or aromatic heteroatom-containing ring size 7", ">= 2 any ring size 7", ">= 2 saturated carbon-only ring size 7", ">= 2 saturated nitrogen-containing ring size 7", ">= 2 saturated heteroatom-containing ring size 7", ">= 2 unsaturated or aromatic carbon-only ring size 7", ">= 2 unsaturated or aromatic nitrogen-containing ring size 7", ">= 2 unsaturated or aromatic heteroatom-containing ring size 7", ">= 1 any ring size 8", ">= 1 saturated carbon-only ring size 8", ">= 1 saturated nitrogen-containing ring size 8", ">= 1 saturated heteroatom-containing ring size 8", ">= 1 unsaturated or aromatic carbon-only ring size 8", ">= 1 unsaturated or aromatic nitrogen-containing ring size 8", ">= 1 unsaturated or aromatic heteroatom-containing ring size 8", ">= 2 any ring size 8", ">= 2 saturated carbon-only ring size 8", ">= 2 saturated nitrogen-containing ring size 8", ">= 2 saturated heteroatom-containing ring size 8", ">= 2 unsaturated or aromatic carbon-only ring size 8", ">= 2 unsaturated or aromatic nitrogen-containing ring size 8", ">= 2 unsaturated or aromatic heteroatom-containing ring size 8", ">= 1 any ring size 9", ">= 1 saturated carbon-only ring size 9", ">= 1 saturated nitrogen-containing ring size 9", ">= 1 saturated heteroatom-containing ring size 9", ">= 1 unsaturated or aromatic carbon-only ring size 9", ">= 1 unsaturated or aromatic nitrogen-containing ring size 9", ">= 1 unsaturated or aromatic heteroatom-containing ring size 9", ">= 1 any ring size 10", ">= 1 saturated carbon-only ring size 10", ">= 1 saturated nitrogen-containing ring size 10", ">= 1 saturated heteroatom-containing ring size 10", ">= 1 unsaturated or aromatic carbon-only ring size 10", ">= 1 unsaturated or aromatic nitrogen-containing ring size 10", ">= 1 unsaturated or aromatic heteroatom-containing ring size 10", ">= 1 aromatic ring", ">= 1 hetero-aromatic ring", ">= 2 aromatic rings", ">= 2 hetero-aromatic rings", ">= 3 aromatic rings", ">= 3 hetero-aromatic rings", ">= 4 aromatic rings", ">= 4 hetero-aromatic rings", ]
- RingSizeBaseNum =
{ 3 => 115, 4 => 129, 5 => 143, 6 => 178, 7 => 213, 8 => 227, 9 => 241, 10 => 248, }
- AtomicWeight =
{ :H => 1.00794, :He => 4.002602, :Li => 6.941, :Be => 9.012182, :B => 10.811, :C => 12.0107, :N => 14.0067, :O => 15.9994, :F => 18.9984032, :Ne => 20.1797, :Na => 22.989770, :Mg => 24.3050, :Al => 26.981538, :Si => 28.0855, :P => 30.973761, :S => 32.065, :Cl => 35.453, :Ar => 39.948, :K => 39.0983, :Ca => 40.078, :Sc => 44.955910, :Ti => 47.867, :V => 50.9415, :Cr => 51.9961, :Mn => 54.938049, :Fe => 55.845, :Co => 58.933200, :Ni => 58.6934, :Cu => 63.546, :Zn => 65.409, :Ga => 69.723, :Ge => 72.64, :As => 74.92160, :Se => 78.96, :Br => 79.904, :Kr => 83.798, :Rb => 85.4678, :Sr => 87.62, :Y => 88.90585, :Zr => 91.224, :Nb => 92.90638, :Mo => 95.94, :Tc => 98, :Ru => 101.07, :Rh => 102.90550, :Pd => 106.42, :Ag => 107.8682, :Cd => 112.411, :In => 114.818, :Sn => 118.710, :Sb => 121.760, :Te => 127.60, :I => 126.90447, :Xe => 131.293, :Cs => 132.90545, :Ba => 137.327, :La => 138.9055, :Ce => 140.116, :Pr => 140.90765, :Nd => 144.24, :Pm => 145, :Sm => 150.36, :Eu => 151.964, :Gd => 157.25, :Tb => 158.92534, :Dy => 162.500, :Ho => 164.93032, :Er => 167.259, :Tm => 168.93421, :Yb => 173.04, :Lu => 174.967, :Hf => 178.49, :Ta => 180.9479, :W => 183.84, :Re => 186.207, :Os => 190.23, :Ir => 192.217, :Pt => 195.078, :Au => 196.96655, :Hg => 200.59, :Tl => 204.3833, :Pb => 207.2, :Bi => 208.98038, :Po => 209, :At => 210, :Rn => 222, :Fr => 223, :Ra => 226, :Ac => 227, :Th => 232.0381, :Pa => 231.03588, :U => 238.02891, :Np => 237, :Pu => 244, :Am => 243, :Cm => 247, :Bk => 247, :Cf => 251, :Es => 252, :Fm => 257, :Md => 258, :No => 259, :Lr => 262, :Rf => 261, :Db => 262, :Sg => 266, :Bh => 264, :Hs => 277, :Mt => 268, :Ds => 281, :Rg => 272, :Uub=> 285, :Uut=> 284, :Uuq=> 289, :Uup=> 288, #116 Uuh Ununhexium see Note above #118 Uuo Ununoctium see Note above }
- Element2Number =
{:Bk=>97, :Si=>14, :In=>49, :Fr=>87, :V=>23, :Na=>11, :Tb=>65, :Po=>84, :Pd=>46, :Al=>13, :Ho=>67, :Ba=>56, :As=>33, :Rn=>86, :Nb=>41, :Hg=>80, :P=>15, :Bi=>83, :Be=>4, :Ru=>44, :S=>16, :O=>8, :Ra=>88, :Es=>99, :Xe=>54, :He=>2, :N=>7, :Am=>95, :Pr=>59, :Er=>68, :Au=>79, :Rh=>45, :Ce=>58, :Tm=>69, :Gd=>64, :Ir=>77, :Sr=>38, :La=>57, :Cm=>96, :Ca=>20, :C=>6, :Sm=>62, :Hf=>72, :Ag=>47, :At=>85, :F=>9, :Tc=>43, :Zn=>30, :Lu=>71, :B=>5, :Np=>93, :Ga=>31, :XX=>101, :Sn=>50, :Os=>76, :Eu=>63, :Dy=>66, :Yb=>70, :K=>19, :Tl=>81, :I=>53, :Ar=>18, :Th=>90, :Zr=>40, :Pt=>78, :Fe=>26, :Ge=>32, :Cr=>24, :Cf=>98, :Kr=>36, :Rb=>37, :ZZ=>103, :Ta=>73, :W=>74, :Sc=>21, :Mn=>25, :Pu=>94, :Mg=>12, :Se=>34, :Ti=>22, :Cd=>48, :Sb=>51, :Fm=>100, :Cs=>55, :Nd=>60, :Co=>27, :Pb=>82, :Cl=>17, :Cu=>29, :Y=>39, :Re=>75, :U=>92, :Pa=>91, :Mo=>42, :H=>1, :D=>0, :Te=>52, :Li=>3, :Br=>35, :YY=>102, :Pm=>61, :Ac=>89, :Ni=>28, :Ne=>10}
- Number2Element =
[:D, :H, :He, :Li, :Be, :B, :C, :N, :O, :F, :Ne, :Na, :Mg, :Al, :Si, :P, :S, :Cl, :Ar, :K, :Ca, :Sc, :Ti, :V, :Cr, :Mn, :Fe, :Co, :Ni, :Cu, :Zn, :Ga, :Ge, :As, :Se, :Br, :Kr, :Rb, :Sr, :Y, :Zr, :Nb, :Mo, :Tc, :Ru, :Rh, :Pd, :Ag, :Cd, :In, :Sn, :Sb, :Te, :I, :Xe, :Cs, :Ba, :La, :Ce, :Pr, :Nd, :Pm, :Sm, :Eu, :Gd, :Tb, :Dy, :Ho, :Er, :Tm, :Yb, :Lu, :Hf, :Ta, :W, :Re, :Os, :Ir, :Pt, :Au, :Hg, :Tl, :Pb, :Bi, :Po, :At, :Rn, :Fr, :Ra, :Ac, :Th, :Pa, :U, :Np, :Pu, :Am, :Cm, :Bk, :Cf, :Es, :Fm, :XX, :YY, :ZZ]
Class Method Summary collapse
-
.autodetect(file) ⇒ Object
format_class = Chem.autodetect(“file.mol”).
- .data_dir ⇒ Object
- .db_search(database_name, q_mol, block) ⇒ Object
- .match_by_ullmann(q_mol, t_mol) ⇒ Object
- .open_kegg(dir) ⇒ Object
-
.open_mol(file, format_type = nil) ⇒ Object
(also: parse_file, load)
Makes possible to open chemical files.
- .opsin_parse(iupac_name) ⇒ Object
- .parse_gspan(file) ⇒ Object
- .parse_smiles(smiles) ⇒ Object
- .save(array, filename, params = {}) ⇒ Object
- .search_net(term, options) ⇒ Object
Class Method Details
.autodetect(file) ⇒ Object
format_class = Chem.autodetect(“file.mol”)
Automatically detect file type and returns appropriate class to parse it
56 57 58 |
# File 'lib/chem.rb', line 56 def self.autodetect file ChemTypeRegistry.find{|format| format.detect_file file} end |
.data_dir ⇒ Object
41 42 43 |
# File 'lib/chem.rb', line 41 def self.data_dir DefaultDataDir end |
.db_search(database_name, q_mol, block) ⇒ Object
456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 |
# File 'ext/subcomp.c', line 456
static VALUE
db_search(VALUE self, VALUE database_name, VALUE q_mol, VALUE block)
{
char * filename;
struct CompoundDB db;
struct Query query;
filename = StringValuePtr(database_name);
if(strlen(filename) > 40){
rb_raise(rb_eException, "length of database name must less than 40!");
}
query_setup(q_mol, & query);
db.mat = db_file_open(filename, ".mat");
db.idx = db_file_open(filename, ".idx");
db.typ = db_file_open(filename, ".typ");
db_load(& db, & query);
query_free(& query);
fclose(db.mat);
fclose(db.idx);
fclose(db.typ);
}
|
.match_by_ullmann(q_mol, t_mol) ⇒ Object
517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 |
# File 'ext/subcomp.c', line 517
static VALUE
mol_by_mol(VALUE self, VALUE q_mol, VALUE t_mol)
{
struct Query query;
struct Target target;
struct State state;
VALUE result;
target.max_length = 0;
state.max_length = 0;
query_setup( q_mol, & query );
target_setup( t_mol, & target );
state_allocate(& state, & query, & target);
if(rb_block_given_p() == Qtrue){
state_setup_block(& state);
}
else{
state_setup(& state, & query, & target);
}
search_by_ullmann(& state, & query, & target);
result = state_get_result(& state);
query_free(& query);
target_free(& target);
state_free(& state);
return result;
}
|
.open_kegg(dir) ⇒ Object
95 96 97 98 |
# File 'lib/chem.rb', line 95 def open_kegg dir require 'chem/db/kegg' Chem::KEGG::KeggDirectory.new(dir) end |
.open_mol(file, format_type = nil) ⇒ Object Also known as: parse_file, load
Makes possible to open chemical files. Guesses the file type based on the extension of the file name.
Examples : So if the file name is “benzene.mol”,
mol = Chem.open_mol(“benzene.mol”) # returns MDLMolecule object
67 68 69 70 71 72 73 74 75 76 |
# File 'lib/chem.rb', line 67 def open_mol file, format_type = nil format = nil if format_type == nil format = Chem.autodetect(file) else format = ChemTypeRegistry.find{|format| format.detect_type format_type} end raise NotImplementedError unless format return format.parse(file) if format end |
.opsin_parse(iupac_name) ⇒ Object
4 5 6 |
# File 'lib/chem/db/opsin.rb', line 4 def self.opsin_parse(iupac_name) OpsinMolecule.new(iupac_name) end |
.parse_gspan(file) ⇒ Object
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/chem/db/gspan.rb', line 103 def self.parse_gspan file t = "t"[0] v = "v"[0] e = "e"[0] mols = [] mol = GSpanMolecule.new open(file).each do |line| case line[0] when t mol = GSpanMolecule.new mols.push(mol) when v mol.nodes.push(GSpanAtom.parse_line(line)) when e ary = line.split node1 = mol.nodes[ary[1].to_i] node2 = mol.nodes[ary[2].to_i] mol.edges.push([GSpanBond.new(ary[3].to_i), node1, node2]) else end end mols end |
.parse_smiles(smiles) ⇒ Object
89 90 91 92 93 |
# File 'lib/chem.rb', line 89 def parse_smiles smiles require 'chem/db/smiles' require 'chem/db/smiles/smiparser' ::SmilesParser.parse_smiles(smiles) end |
.save(array, filename, params = {}) ⇒ Object
84 85 86 87 |
# File 'lib/chem.rb', line 84 def self.save(array, filename, params = {}) format = autodetect filename format.save(array, filename, params) end |