Chemistry-File-MDLMol-0.24/0000775000200400020040000000000014176777001015237 5ustar andriusandriusChemistry-File-MDLMol-0.24/dist.ini0000644000200400020040000000112014176777001016673 0ustar andriusandriusname = Chemistry-File-MDLMol author = Ivan Tubert-Brohman license = Perl_5 copyright_holder = Ivan Tubert-Brohman copyright_year = 2009 version = 0.24 [@Filter] -bundle = @Basic -remove = License -remove = Readme [AutoMetaResources] homepage = https://search.cpan.org/dist/%{dist} repository.github = user:perlmol [MetaJSON] [OurPkgVersion] [Prereqs] Chemistry::Mol = 0.35 [Prereqs / RuntimeRecommends] -phase = runtime -relationship = recommends Chemistry::Isotope = 0 Chemistry::Pattern = 0 Chemistry::Ring = 0.19 [Prereqs / Test] -phase = test Test::More = 0 Chemistry-File-MDLMol-0.24/Changes0000644000200400020040000000335414176777001016535 0ustar andriusandriusRevision history for Perl extension Chemistry::File::MDLMol. 0.24 Thu Mar 3 - Implemented reading of the chiral flag. - Fixed POD typos. Thanks Florian Schlichting. - Updated MDL file specification links (bug 140933) 0.23 Tue Apr 13 2021 - Fixed t/pod.t which no longer found any POD files to check. 0.22 Mon Apr 12 2021 - Implemented reading and writing of isotopes (bug 134837) - Fixed typo in documentation. - Switched to Dist::Zilla. - Adjusted URLs in documentation, as the source has been hosted on GitHub. - New co-maintainer Andrius Merkys . 0.21 Sun May 10 2009 - Added automatic aromatization of patterns, as suggested by Peter Spiro. - Added a new default test subroutine for bonds, that takes aromaticity into account. 0.20 Fri May 20 2005 - Added support for charges and radicals. - Add implicit hydrogens on read. - Support for some query properties: atom lists, bond topology, and bond types. 0.19 Mon Jan 31 2005 - Fixed documentation bug in SDF.pm SYNOPSIS. 0.18 Thu Jan 27 2005 - Compatibility with Chemistry::File 0.30 (for sequential SDF reading) 0.17 Wed Jul 21 2004 - Fixed name_is in MDLMol, which was using .sdf instead of .mol as the extension. 0.16 Wed Jun 30 2004 - Added missing name_is methods. - Fixed default atom and bond class handling in MDLMol. 0.15 Fri May 14 2004 - Added write_string method to MDLMol.pm and SDF.pm - Changed SDF data storage attribute to a hash ref in 'sdf/data' instead of storing each attribute individually. 0.10 Fri Feb 20 2004 - First release Chemistry-File-MDLMol-0.24/README0000644000200400020040000000214614176777001016120 0ustar andriusandriusChemistry/File/MDLMol version 0.24 Chemistry/File/SDF version 0.24 ================================== This modules read MDL mol and SDF (structure data file) files. The MDLmol module automatically registers the 'mdl' format with Chemistry::Mol, so that molfiles may be identified and read by Chemistry::Mol::read_mol(). The SDF module registers the 'sdf' format. CHANGES SINCE VERSION 0.23 - Implemented reading of the chiral flag. - Fixed POD typos. Thanks Florian Schlichting. - Updated MDL file specification links (bug 140933) INSTALLATION To install this module type the following: perl Makefile.PL make make test make install DEPENDENCIES This module requires these other modules and libraries: Chemistry::Mol 0.35 Some features such as substructure search and isotope reading also require other modules: Chemistry::Isotope Chemistry::Pattern Chemistry::Ring COPYRIGHT AND LICENSE Copyright (C) 2009 Ivan Tubert-Brohman This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. Chemistry-File-MDLMol-0.24/MANIFEST0000644000200400020040000000063714176777001016374 0ustar andriusandrius# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.010. Changes MANIFEST META.json META.yml Makefile.PL README dist.ini lib/Chemistry/File/MDLMol.pm lib/Chemistry/File/SDF.pm t/mdlmol.t t/mol/C5H5Cl2I.mol t/mol/N2F2.mol t/mol/bromobenzene.mol t/mol/chg_rad.mol t/mol/fluoroethylene.mol t/pat/bromobenzene.mol t/pat/query.mol t/pattern.t t/pod.t t/sdf.t t/sdf/1.sdf t/sdf/C.sdf t/sdf/rw.sdf Chemistry-File-MDLMol-0.24/META.yml0000644000200400020040000000134114176777001016505 0ustar andriusandrius--- abstract: 'MDL molfile reader/writer' author: - 'Ivan Tubert-Brohman ' build_requires: Test::More: '0' configure_requires: ExtUtils::MakeMaker: '0' dynamic_config: 0 generated_by: 'Dist::Zilla version 6.010, CPAN::Meta::Converter version 2.150010' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: '1.4' name: Chemistry-File-MDLMol recommends: Chemistry::Isotope: '0' Chemistry::Pattern: '0' Chemistry::Ring: '0.19' requires: Chemistry::Mol: '0.35' resources: homepage: https://search.cpan.org/dist/Chemistry-File-MDLMol repository: git://github.com/perlmol/chemistry-file-mdlmol.git version: '0.24' x_serialization_backend: 'YAML::Tiny version 1.70' Chemistry-File-MDLMol-0.24/t/0000775000200400020040000000000014176777001015502 5ustar andriusandriusChemistry-File-MDLMol-0.24/t/sdf.t0000644000200400020040000000362514176777001016447 0ustar andriusandriususe Test::More tests => 15; BEGIN { use_ok('Chemistry::File::SDF') }; use strict; use warnings; # Read all at once my @mols = Chemistry::Mol->read("t/sdf/1.sdf"); ok(@mols == 8, "read 8"); my $i; for my $mol(@mols) { $i++ if $mol->isa('Chemistry::Mol'); } ok($i == @mols, "isa Chemistry::Mol"); is($mols[1]->name, "[2-(4-Bromo-phenoxy)-ethyl]-(4-dimethylamino-6-methoxy-[1,3,5]triazin-2-yl)-cyan", "name"); ok($mols[1]->attr("sdf/data")->{'PKA'} == 4.65, "attr"); # sequential read my $reader = Chemistry::Mol->file('t/sdf/1.sdf'); isa_ok( $reader, 'Chemistry::File' ); $reader->open; $reader->read_header; $reader->skip_mol($reader->fh); my $mol = $reader->read_mol($reader->fh); isa_ok( $mol, "Chemistry::Mol" ); is($mol->name, "[2-(4-Bromo-phenoxy)-ethyl]-(4-dimethylamino-6-methoxy-[1,3,5]triazin-2-yl)-cyan", "name"); ok($mol->attr("sdf/data")->{'PKA'} == 4.65, "attr"); $i = 2; $i++ while ($reader->skip_mol($reader->fh)); is($i, 8, "sequential read 8"); # read/write test my $fname = "t/sdf/rw.sdf"; open F, "<", "$fname" or die "couldn't open $fname; $!\n"; my $sdf_str; { local $/; $sdf_str = } @mols = Chemistry::Mol->parse($sdf_str, format => 'sdf'); my $sdf_out = Chemistry::Mol->print(format => 'sdf', mols => \@mols); ok($sdf_str eq $sdf_out, "read-write test"); # test isotopes my $C13_ISO = 13; my $C13_atom_block = 12.0107; my $M_ISO_out = 'M ISO 1 2 13'; if( eval { require Chemistry::Isotope } ) { $C13_ISO = $C13_atom_block = Chemistry::Isotope::isotope_mass(13, 6); $M_ISO_out = 'M ISO 2 2 13 3 13'; } @mols = Chemistry::Mol->read("t/sdf/C.sdf"); my @atoms = $mols[0]->atoms; is($atoms[0]->mass, 12.0107); is($atoms[1]->mass, $C13_ISO); is($atoms[2]->mass, $C13_atom_block); my( $M_ISO ) = grep { /^M ISO/ } split "\n", Chemistry::Mol->print(format => 'sdf', mols => \@mols); is($M_ISO, $M_ISO_out); Chemistry-File-MDLMol-0.24/t/sdf/0000775000200400020040000000000014176777001016256 5ustar andriusandriusChemistry-File-MDLMol-0.24/t/sdf/1.sdf0000644000200400020040000005713114176777001017121 0ustar andriusandrius1-(4-Dimethylamino-phenyl)-5-(4-nitro-phenyl)-penta-1,4-dien-3-one -ISIS- 09170316162D 24 25 0 0 0 0 0 0 0 0999 V2000 -2.2292 -0.6125 0.0000 N 0 3 0 0 0 0 0 0 0 0 0 0 -1.7625 -0.3625 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.6625 -0.3500 0.0000 O 0 5 0 0 0 0 0 0 0 0 0 0 -0.4500 0.9000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.4375 0.9000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.2500 -1.1250 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 0.4375 0.4000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.4500 0.3875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.7708 -0.3458 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.0125 1.1500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.2375 -0.5625 0.0000 N 0 0 3 0 0 0 0 0 0 0 0 0 0.0000 1.6500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 -1.3375 -0.6250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.7625 0.1500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.7625 0.1542 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.3375 -0.6125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.8833 0.1500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.8875 0.1208 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.9000 -0.3792 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.3292 0.3750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.3125 0.4000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.8875 -0.3625 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.2625 -1.0625 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.6500 -0.2833 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2 1 1 0 0 0 0 3 1 1 0 0 0 0 4 8 2 0 0 0 0 5 10 1 0 0 0 0 6 1 2 0 0 0 0 7 5 2 0 0 0 0 8 18 1 0 0 0 0 9 15 1 0 0 0 0 10 4 1 0 0 0 0 11 9 1 0 0 0 0 12 10 2 0 0 0 0 13 2 2 0 0 0 0 14 2 1 0 0 0 0 15 21 2 0 0 0 0 16 22 1 0 0 0 0 17 7 1 0 0 0 0 18 20 1 0 0 0 0 19 13 1 0 0 0 0 20 14 2 0 0 0 0 21 17 1 0 0 0 0 22 17 2 0 0 0 0 23 11 1 0 0 0 0 24 11 1 0 0 0 0 19 18 2 0 0 0 0 9 16 2 0 0 0 0 M CHG 2 1 1 3 -1 M END > (BAS 0000525) BAS 0000525 > (BAS 0000525) 29060 > (BAS 0000525) 1 > (BAS 0000525) 0.000000000000000e+000 > (BAS 0000525) 10 > (BAS 0000525) 4.066000000000000e+000 > (BAS 0000525) 6 > (BAS 0000525) 3 > (BAS 0000525) 0 > (BAS 0000525) 5 > (BAS 0000525) 0 > (BAS 0000525) 3.600000000000000e+001 > (BAS 0000525) -4.421000000000000e+000 > (BAS 0000525) -2 > (BAS 0000525) 3.823100000000000e+001 > (BAS 0000525) -1.478000000000000e+000 > (BAS 0000525) 9.800000000000001e-001 > (BAS 0000525) 96 > (BAS 0000525) 6.345000000000000e+001 > (BAS 0000525) 1.222770000000000e+001 > (BAS 0000525) 4.670000000000000e+000 $$$$ [2-(4-Bromo-phenoxy)-ethyl]-(4-dimethylamino-6-methoxy-[1,3,5]triazin-2-yl)-cyan -ISIS- 09170316162D 24 25 0 0 0 0 0 0 0 0999 V2000 -0.4875 -1.2583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.5000 -0.4083 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -1.2167 0.0083 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.2000 -1.6708 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -1.9375 -0.4083 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -1.9375 -1.2583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.2458 -1.6833 0.0000 N 0 0 3 0 0 0 0 0 0 0 0 0 0.2458 -2.5208 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.9625 -2.9417 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -1.2167 0.8417 0.0000 N 0 0 3 0 0 0 0 0 0 0 0 0 -2.6750 -1.6708 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 1.7000 2.5167 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.6833 0.8417 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.9792 -1.2583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.7000 3.3583 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0 2.4125 2.0958 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.9792 2.0958 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.4125 1.2583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.9625 1.2583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.7000 -0.0042 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 0.9792 -0.4208 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.4875 1.2625 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.9375 1.2625 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -3.4000 -1.2417 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2 1 2 0 0 0 0 3 2 1 0 0 0 0 4 1 1 0 0 0 0 5 6 1 0 0 0 0 6 4 2 0 0 0 0 7 1 1 0 0 0 0 8 7 1 0 0 0 0 9 8 3 0 0 0 0 10 3 1 0 0 0 0 11 6 1 0 0 0 0 12 17 1 0 0 0 0 13 20 1 0 0 0 0 14 7 1 0 0 0 0 15 12 1 0 0 0 0 16 18 1 0 0 0 0 17 19 2 0 0 0 0 18 13 2 0 0 0 0 19 13 1 0 0 0 0 20 21 1 0 0 0 0 21 14 1 0 0 0 0 22 10 1 0 0 0 0 23 10 1 0 0 0 0 24 11 1 0 0 0 0 5 3 2 0 0 0 0 12 16 2 0 0 0 0 M END > (BAS 0000708) BAS 0000708 > (BAS 0000708) 2299 > (BAS 0000708) 16 > (BAS 0000708) 4.420000000000000e-002 > (BAS 0000708) 1 > (BAS 0000708) 3.269000000000000e+000 > (BAS 0000708) 8 > (BAS 0000708) 7 > (BAS 0000708) 0 > (BAS 0000708) 8 > (BAS 0000708) 0 > (BAS 0000708) 4.800000000000000e+001 > (BAS 0000708) -3.522000000000000e+000 > (BAS 0000708) -1 > (BAS 0000708) 1.842890000000000e+002 > (BAS 0000708) -8.219999999999998e-001 > (BAS 0000708) 4.700000000000000e-001 > (BAS 0000708) 95 > (BAS 0000708) 8.740000000000001e+001 > (BAS 0000708) 1.182118000000000e+002 > (BAS 0000708) 4.650000000000000e+000 $$$$ (2-p-Tolyloxy-ethylthiocarbamoylsulfanyl)-acetic acid tert-butyl ester -ISIS- 09170316162D 22 22 0 0 0 0 0 0 0 0999 V2000 -0.6125 -0.4792 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.5917 -0.0583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.6125 -1.2375 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0 -1.2625 -0.0917 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0 -3.2625 -0.4292 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 -2.5625 0.6750 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 -3.9125 -0.0292 0.0000 C 0 0 3 0 0 0 0 0 0 0 0 0 0.0583 -0.0917 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -1.9208 -0.4542 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.7083 -0.0583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 4.0250 0.7083 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.7083 0.6750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 3.3583 -0.4542 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 3.3792 1.0750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 4.0250 -0.0917 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.0375 -0.4542 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 -4.3000 -0.6917 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -3.5250 0.6208 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -4.5750 0.3625 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.7083 -0.4750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.3792 -0.0792 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 4.6875 1.1000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2 9 1 0 0 0 0 3 1 2 0 0 0 0 4 1 1 0 0 0 0 5 2 1 0 0 0 0 6 2 2 0 0 0 0 7 5 1 0 0 0 0 8 1 1 0 0 0 0 9 4 1 0 0 0 0 10 16 1 0 0 0 0 11 15 2 0 0 0 0 12 10 1 0 0 0 0 13 10 2 0 0 0 0 14 12 2 0 0 0 0 15 13 1 0 0 0 0 16 21 1 0 0 0 0 17 7 1 0 0 0 0 18 7 1 0 0 0 0 19 7 1 0 0 0 0 20 8 1 0 0 0 0 21 20 1 0 0 0 0 22 11 1 0 0 0 0 11 14 1 0 0 0 0 M END > (BAS 0000725) BAS 0000725 > (BAS 0000725) 28369 > (BAS 0000725) 1 > (BAS 0000725) 0.000000000000000e+000 > (BAS 0000725) 13 > (BAS 0000725) 4.316999999999999e+000 > (BAS 0000725) 10 > (BAS 0000725) 5 > (BAS 0000725) 1 > (BAS 0000725) 4 > (BAS 0000725) 0 > (BAS 0000725) 6.363640000000000e+001 > (BAS 0000725) -5.308000000000000e+000 > (BAS 0000725) 0 > (BAS 0000725) 4.015549999999999e+002 > (BAS 0000725) -6.900000000000001e-001 > (BAS 0000725) 9.300000000000003e-001 > (BAS 0000725) 99 > (BAS 0000725) 4.756000000000000e+001 > (BAS 0000725) 1.680300000000000e+000 $$$$ -ISIS- 09170316162D 18 19 0 0 0 0 0 0 0 0999 V2000 -2.2917 -0.4000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.1083 0.5542 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.9917 -1.3417 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 1.4292 1.2708 0.0000 N 0 3 0 0 0 0 0 0 0 0 0 0 -3.2917 -0.1458 0.0000 N 0 3 0 0 0 0 0 0 0 0 0 0 -1.4917 0.2083 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 3.1167 0.6417 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 1.9167 -0.4083 0.0000 N 0 0 3 0 0 0 0 0 0 0 0 0 -0.6833 -0.3792 0.0000 N 0 0 3 0 0 0 0 0 0 0 0 0 2.8083 -0.8917 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -0.9917 -1.3417 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 3.5333 -0.1917 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.9667 -0.7292 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.7333 2.2208 0.0000 O 0 5 0 0 0 0 0 0 0 0 0 0 -3.5167 0.7792 0.0000 O 0 5 0 0 0 0 0 0 0 0 0 0 0.4583 1.0708 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 -4.0292 -0.8083 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 0.1833 -0.0583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2 8 1 0 0 0 0 3 1 1 0 0 0 0 4 2 1 0 0 0 0 5 1 1 0 0 0 0 6 1 2 0 0 0 0 7 2 2 0 0 0 0 8 13 1 0 0 0 0 9 6 1 0 0 0 0 10 8 1 0 0 0 0 11 3 2 0 0 0 0 12 10 2 0 0 0 0 13 18 1 0 0 0 0 14 4 1 0 0 0 0 15 5 1 0 0 0 0 16 4 2 0 0 0 0 17 5 2 0 0 0 0 18 9 1 0 0 0 0 11 9 1 0 0 0 0 12 7 1 0 0 0 0 M CHG 4 4 1 5 1 14 -1 15 -1 M END > (BAS 0000767) BAS 0000767 > (BAS 0000767) 15637 > (BAS 0000767) 2 > (BAS 0000767) 1.153000000000000e-001 > (BAS 0000767) 78 > (BAS 0000767) -2.305000000000000e+000 > (BAS 0000767) 5 > (BAS 0000767) 8 > (BAS 0000767) 0 > (BAS 0000767) 12 > (BAS 0000767) 0 > (BAS 0000767) 3.684210000000000e+001 > (BAS 0000767) -1.405000000000000e+000 > (BAS 0000767) -2 > (BAS 0000767) 4.557000000000000e+000 > (BAS 0000767) -2.222000000000000e+000 > (BAS 0000767) 9.900000000000000e-001 > (BAS 0000767) 95 > (BAS 0000767) 1.477000000000000e+002 > (BAS 0000767) 9.999999900000003e+003 $$$$ 1,3-Di-p-tolyl-adamantane -ISIS- 09170316162D 24 28 0 0 0 0 0 0 0 0999 V2000 0.4625 -1.4875 0.0000 C 0 0 3 0 0 0 0 0 0 0 0 0 -1.2417 -0.3250 0.0000 C 0 0 3 0 0 0 0 0 0 0 0 0 0.5000 -0.6750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.9500 -1.2250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.2208 1.1750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.4083 -1.8125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.1417 -2.5875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.8625 -0.7375 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.5500 -1.3625 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.6083 -2.1875 0.0000 C 0 0 3 0 0 0 0 0 0 0 0 0 -2.8625 -1.5250 0.0000 C 0 0 3 0 0 0 0 0 0 0 0 0 -4.4875 -2.2125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.4583 0.1917 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.9292 -2.3750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.0917 1.9250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.5083 1.9542 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 4.4000 -2.1125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 3.9375 0.4625 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.1167 3.4375 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.5083 3.4625 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 4.9167 -0.6958 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.2000 4.2083 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 5.9583 -0.5583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.1625 5.1083 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2 3 1 0 0 0 0 3 1 1 0 0 0 0 4 1 1 0 0 0 0 5 2 1 0 0 0 0 6 1 1 0 0 0 0 7 1 1 0 0 0 0 8 11 1 0 0 0 0 9 10 1 0 0 0 0 10 7 1 0 0 0 0 11 6 1 0 0 0 0 12 10 1 0 0 0 0 13 4 2 0 0 0 0 14 4 1 0 0 0 0 15 5 1 0 0 0 0 16 5 2 0 0 0 0 17 14 2 0 0 0 0 18 13 1 0 0 0 0 19 15 2 0 0 0 0 20 16 1 0 0 0 0 21 18 2 0 0 0 0 22 20 2 0 0 0 0 23 21 1 0 0 0 0 24 22 1 0 0 0 0 12 11 1 0 0 0 0 9 2 1 0 0 0 0 8 2 1 0 0 0 0 21 17 1 0 0 0 0 22 19 1 0 0 0 0 M END > (BAS 0000799) BAS 0000799 > (BAS 0000799) 1701 > (BAS 0000799) 18 > (BAS 0000799) 3.250000000000000e-002 > (BAS 0000799) 1 > (BAS 0000799) 7.796000000000000e+000 > (BAS 0000799) 2 > (BAS 0000799) 0 > (BAS 0000799) 0 > (BAS 0000799) 0 > (BAS 0000799) 0 > (BAS 0000799) 5.714290000000000e+001 > (BAS 0000799) -6.895000000000000e+000 > (BAS 0000799) 2 > (BAS 0000799) 2.280076000000000e+003 > (BAS 0000799) 6.440000000000000e-001 > (BAS 0000799) 9.900000000000000e-001 > (BAS 0000799) 93 > (BAS 0000799) 0.000000000000000e+000 > (BAS 0000799) 4.030000000000000e-002 $$$$ 3-[3,5-Bis-(2-carboxy-ethyl)-2,4,6-trioxo-[1,3,5]triazinan-1-yl]-propionic acid -ISIS- 09170316162D 24 24 0 0 0 0 0 0 0 0999 V2000 -0.0083 -0.7958 0.0000 N 0 0 3 0 0 0 0 0 0 0 0 0 0.6917 0.4042 0.0000 N 0 0 3 0 0 0 0 0 0 0 0 0 -0.7083 0.4208 0.0000 N 0 0 3 0 0 0 0 0 0 0 0 0 0.6917 -0.3958 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.7083 -0.3958 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.0083 0.8208 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.0083 -1.6000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.4125 0.8000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.4250 0.8250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.6917 -2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.4375 1.6042 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.1208 0.4208 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.0083 1.6250 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 1.4125 -0.8000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 -1.4083 -0.8125 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 0.6917 -2.8125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.1542 1.9875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.8250 0.8042 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.3917 -3.2125 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 2.1917 2.8000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 -3.5083 0.3875 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 -0.0083 -3.2208 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 -2.8625 1.6042 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 2.8292 1.5583 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 2 4 1 0 0 0 0 3 5 1 0 0 0 0 4 1 1 0 0 0 0 5 1 1 0 0 0 0 6 3 1 0 0 0 0 7 1 1 0 0 0 0 8 2 1 0 0 0 0 9 3 1 0 0 0 0 10 7 1 0 0 0 0 11 8 1 0 0 0 0 12 9 1 0 0 0 0 13 6 2 0 0 0 0 14 4 2 0 0 0 0 15 5 2 0 0 0 0 16 10 1 0 0 0 0 17 11 1 0 0 0 0 18 12 1 0 0 0 0 19 16 2 0 0 0 0 20 17 2 0 0 0 0 21 18 2 0 0 0 0 22 16 1 0 0 0 0 23 18 1 0 0 0 0 24 17 1 0 0 0 0 6 2 1 0 0 0 0 M END > (BAS 0001385) BAS 0001385 > (BAS 0001385) 4414 > (BAS 0001385) 11 > (BAS 0001385) 8.729999999999999e-002 > (BAS 0001385) 110 > (BAS 0001385) -3.600000000000000e-002 > (BAS 0001385) 12 > (BAS 0001385) 9 > (BAS 0001385) 3 > (BAS 0001385) 12 > (BAS 0001385) 0 > (BAS 0001385) 7.500000000000000e+001 > (BAS 0001385) -1.538000000000000e+000 > (BAS 0001385) -2 > (BAS 0001385) 3.660000000000000e-001 > (BAS 0001385) -3.913000000000000e+000 > (BAS 0001385) 1.000000000000000e-002 > (BAS 0001385) 94 > (BAS 0001385) 1.779000000000000e+002 > (BAS 0001385) 9.999999900000003e+003 > (BAS 0001385) 4.340000000000000e+000 $$$$ -ISIS- 09170316162D 21 25 0 0 0 0 0 0 0 0999 V2000 -0.0958 -1.0000 0.0000 C 0 0 3 0 0 0 0 0 0 0 0 0 0.3250 0.3000 0.0000 C 0 0 3 0 0 0 0 0 0 0 0 0 1.1250 -1.5792 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.9042 -0.4625 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.8625 1.1417 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.4375 1.6375 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.1125 -0.0125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.0833 -1.1792 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.6917 -2.8000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 3.2542 -0.5917 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 3.8250 -1.8125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 3.0375 -2.9167 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.1750 1.6750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.6167 2.9375 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.8750 1.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -3.3750 -1.1000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 4.5917 -1.8167 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0 -1.6625 2.6875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.4750 3.1458 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -3.1750 0.9083 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -3.9458 -0.1375 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2 7 1 0 0 0 0 3 1 1 0 0 0 0 4 3 2 0 0 0 0 5 1 1 0 0 0 0 6 5 1 0 0 0 0 7 8 2 0 0 0 0 8 1 1 0 0 0 0 9 3 1 0 0 0 0 10 4 1 0 0 0 0 11 12 1 0 0 0 0 12 9 2 0 0 0 0 13 5 2 0 0 0 0 14 6 2 0 0 0 0 15 7 1 0 0 0 0 16 8 1 0 0 0 0 17 11 1 0 0 0 0 18 13 1 0 0 0 0 19 18 2 0 0 0 0 20 21 1 0 0 0 0 21 16 2 0 0 0 0 2 6 1 0 0 0 0 2 4 1 0 0 0 0 20 15 2 0 0 0 0 19 14 1 0 0 0 0 11 10 2 0 0 0 0 M END > (BAS 0001419) BAS 0001419 > (BAS 0001419) 9787 > (BAS 0001419) 4 > (BAS 0001419) 4.109999999999999e-002 > (BAS 0001419) 10 > (BAS 0001419) 5.611000000000000e+000 > (BAS 0001419) 0 > (BAS 0001419) 1 > (BAS 0001419) 0 > (BAS 0001419) 0 > (BAS 0001419) 3 > (BAS 0001419) 2.800000000000000e+001 > (BAS 0001419) -5.656999999999999e+000 > (BAS 0001419) 2 > (BAS 0001419) 2.163618000000000e+003 > (BAS 0001419) 6.440000000000000e-001 > (BAS 0001419) 9.900000000000000e-001 > (BAS 0001419) 94 > (BAS 0001419) 0.000000000000000e+000 > (BAS 0001419) 7.341000000000000e-001 $$$$ 5,5'-Dimethyl-[3,3']bi[[1,2,4]oxadiazolyl] -ISIS- 09170316162D 12 13 0 0 0 0 0 0 0 0999 V2000 0.6250 0.0042 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.6208 0.0042 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.3875 0.9708 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -1.3917 -0.9792 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 1.3208 -1.0208 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -1.3208 1.0292 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 2.5583 0.5542 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.5750 -0.5583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.5208 -0.6958 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 -2.5125 0.6917 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 3.6083 1.2583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -3.6292 -1.2292 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2 1 1 0 0 0 0 3 1 1 0 0 0 0 4 2 1 0 0 0 0 5 1 2 0 0 0 0 6 2 2 0 0 0 0 7 3 2 0 0 0 0 8 4 2 0 0 0 0 9 5 1 0 0 0 0 10 6 1 0 0 0 0 11 7 1 0 0 0 0 12 8 1 0 0 0 0 9 7 1 0 0 0 0 10 8 1 0 0 0 0 M END > (BAS 0001437) BAS 0001437 > (BAS 0001437) 26178 > (BAS 0001437) 1 > (BAS 0001437) 0.000000000000000e+000 > (BAS 0001437) 197 > (BAS 0001437) -3.330000000000000e-001 > (BAS 0001437) 1 > (BAS 0001437) 6 > (BAS 0001437) 0 > (BAS 0001437) 6 > (BAS 0001437) 0 > (BAS 0001437) 2.307690000000000e+001 > (BAS 0001437) -1.220000000000000e+000 > (BAS 0001437) -1 > (BAS 0001437) 8.358400000000002e+001 > (BAS 0001437) -3.430000000000000e-001 > (BAS 0001437) 9.800000000000001e-001 > (BAS 0001437) 95 > (BAS 0001437) 7.784000000000000e+001 > (BAS 0001437) 9.999999900000003e+003 $$$$ Chemistry-File-MDLMol-0.24/t/sdf/rw.sdf0000644000200400020040000005060214176777001017405 0ustar andriusandrius1-(4-Dimethylamino-phenyl)-5-(4-nitro-phenyl)-penta-1,4-dien-3-one perlmol 24 25 0 0 0 0 0 0 0 0999 V2000 -2.2292 -0.6125 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -1.7625 -0.3625 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.6625 -0.3500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 -0.4500 0.9000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.4375 0.9000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.2500 -1.1250 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 0.4375 0.4000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.4500 0.3875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.7708 -0.3458 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.0125 1.1500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.2375 -0.5625 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 0.0000 1.6500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 -1.3375 -0.6250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.7625 0.1500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.7625 0.1542 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.3375 -0.6125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.8833 0.1500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.8875 0.1208 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.9000 -0.3792 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.3292 0.3750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.3125 0.4000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.8875 -0.3625 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.2625 -1.0625 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.6500 -0.2833 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2 1 1 0 0 0 0 3 1 1 0 0 0 0 4 8 2 0 0 0 0 5 10 1 0 0 0 0 6 1 2 0 0 0 0 7 5 2 0 0 0 0 8 18 1 0 0 0 0 9 15 1 0 0 0 0 10 4 1 0 0 0 0 11 9 1 0 0 0 0 12 10 2 0 0 0 0 13 2 2 0 0 0 0 14 2 1 0 0 0 0 15 21 2 0 0 0 0 16 22 1 0 0 0 0 17 7 1 0 0 0 0 18 20 1 0 0 0 0 19 13 1 0 0 0 0 20 14 2 0 0 0 0 21 17 1 0 0 0 0 22 17 2 0 0 0 0 23 11 1 0 0 0 0 24 11 1 0 0 0 0 19 18 2 0 0 0 0 9 16 2 0 0 0 0 M END > 10 > 3.823100000000000e+001 > 4.066000000000000e+000 > 29060 > 1 > 0.000000000000000e+000 > -2 > 0 > 9.800000000000001e-001 > 3.600000000000000e+001 > 3 > 0 > BAS 0000525 > -1.478000000000000e+000 > -4.421000000000000e+000 > 5 > 4.670000000000000e+000 > 96 > 6 > 1.222770000000000e+001 > 6.345000000000000e+001 $$$$ [2-(4-Bromo-phenoxy)-ethyl]-(4-dimethylamino-6-methoxy-[1,3,5]triazin-2-yl)-cyan perlmol 24 25 0 0 0 0 0 0 0 0999 V2000 -0.4875 -1.2583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.5000 -0.4083 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -1.2167 0.0083 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.2000 -1.6708 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -1.9375 -0.4083 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -1.9375 -1.2583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.2458 -1.6833 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 0.2458 -2.5208 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.9625 -2.9417 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -1.2167 0.8417 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -2.6750 -1.6708 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 1.7000 2.5167 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.6833 0.8417 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.9792 -1.2583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.7000 3.3583 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0 2.4125 2.0958 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.9792 2.0958 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.4125 1.2583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.9625 1.2583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.7000 -0.0042 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 0.9792 -0.4208 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.4875 1.2625 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.9375 1.2625 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -3.4000 -1.2417 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2 1 2 0 0 0 0 3 2 1 0 0 0 0 4 1 1 0 0 0 0 5 6 1 0 0 0 0 6 4 2 0 0 0 0 7 1 1 0 0 0 0 8 7 1 0 0 0 0 9 8 3 0 0 0 0 10 3 1 0 0 0 0 11 6 1 0 0 0 0 12 17 1 0 0 0 0 13 20 1 0 0 0 0 14 7 1 0 0 0 0 15 12 1 0 0 0 0 16 18 1 0 0 0 0 17 19 2 0 0 0 0 18 13 2 0 0 0 0 19 13 1 0 0 0 0 20 21 1 0 0 0 0 21 14 1 0 0 0 0 22 10 1 0 0 0 0 23 10 1 0 0 0 0 24 11 1 0 0 0 0 5 3 2 0 0 0 0 12 16 2 0 0 0 0 M END > 1 > 1.842890000000000e+002 > 3.269000000000000e+000 > 2299 > 16 > 4.420000000000000e-002 > -1 > 0 > 4.700000000000000e-001 > 4.800000000000000e+001 > 7 > 0 > BAS 0000708 > -8.219999999999998e-001 > -3.522000000000000e+000 > 8 > 4.650000000000000e+000 > 95 > 8 > 1.182118000000000e+002 > 8.740000000000001e+001 $$$$ (2-p-Tolyloxy-ethylthiocarbamoylsulfanyl)-acetic acid tert-butyl ester perlmol 22 22 0 0 0 0 0 0 0 0999 V2000 -0.6125 -0.4792 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.5917 -0.0583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.6125 -1.2375 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0 -1.2625 -0.0917 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0 -3.2625 -0.4292 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 -2.5625 0.6750 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 -3.9125 -0.0292 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.0583 -0.0917 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -1.9208 -0.4542 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.7083 -0.0583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 4.0250 0.7083 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.7083 0.6750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 3.3583 -0.4542 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 3.3792 1.0750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 4.0250 -0.0917 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.0375 -0.4542 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 -4.3000 -0.6917 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -3.5250 0.6208 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -4.5750 0.3625 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.7083 -0.4750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.3792 -0.0792 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 4.6875 1.1000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2 9 1 0 0 0 0 3 1 2 0 0 0 0 4 1 1 0 0 0 0 5 2 1 0 0 0 0 6 2 2 0 0 0 0 7 5 1 0 0 0 0 8 1 1 0 0 0 0 9 4 1 0 0 0 0 10 16 1 0 0 0 0 11 15 2 0 0 0 0 12 10 1 0 0 0 0 13 10 2 0 0 0 0 14 12 2 0 0 0 0 15 13 1 0 0 0 0 16 21 1 0 0 0 0 17 7 1 0 0 0 0 18 7 1 0 0 0 0 19 7 1 0 0 0 0 20 8 1 0 0 0 0 21 20 1 0 0 0 0 22 11 1 0 0 0 0 11 14 1 0 0 0 0 M END > 13 > 4.015549999999999e+002 > 4.316999999999999e+000 > 28369 > 1 > 0.000000000000000e+000 > 0 > 0 > 9.300000000000003e-001 > 6.363640000000000e+001 > 5 > 1 > BAS 0000725 > -6.900000000000001e-001 > -5.308000000000000e+000 > 4 > 99 > 10 > 1.680300000000000e+000 > 4.756000000000000e+001 $$$$ perlmol 18 19 0 0 0 0 0 0 0 0999 V2000 -2.2917 -0.4000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.1083 0.5542 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.9917 -1.3417 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 1.4292 1.2708 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -3.2917 -0.1458 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -1.4917 0.2083 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 3.1167 0.6417 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 1.9167 -0.4083 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -0.6833 -0.3792 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 2.8083 -0.8917 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -0.9917 -1.3417 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 3.5333 -0.1917 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.9667 -0.7292 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.7333 2.2208 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 -3.5167 0.7792 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 0.4583 1.0708 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 -4.0292 -0.8083 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 0.1833 -0.0583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2 8 1 0 0 0 0 3 1 1 0 0 0 0 4 2 1 0 0 0 0 5 1 1 0 0 0 0 6 1 2 0 0 0 0 7 2 2 0 0 0 0 8 13 1 0 0 0 0 9 6 1 0 0 0 0 10 8 1 0 0 0 0 11 3 2 0 0 0 0 12 10 2 0 0 0 0 13 18 1 0 0 0 0 14 4 1 0 0 0 0 15 5 1 0 0 0 0 16 4 2 0 0 0 0 17 5 2 0 0 0 0 18 9 1 0 0 0 0 11 9 1 0 0 0 0 12 7 1 0 0 0 0 M END > 78 > 4.557000000000000e+000 > -2.305000000000000e+000 > 15637 > 2 > 1.153000000000000e-001 > -2 > 0 > 9.900000000000000e-001 > 3.684210000000000e+001 > 8 > 0 > BAS 0000767 > -2.222000000000000e+000 > -1.405000000000000e+000 > 12 > 95 > 5 > 9.999999900000003e+003 > 1.477000000000000e+002 $$$$ 1,3-Di-p-tolyl-adamantane perlmol 24 28 0 0 0 0 0 0 0 0999 V2000 0.4625 -1.4875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.2417 -0.3250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.5000 -0.6750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.9500 -1.2250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.2208 1.1750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.4083 -1.8125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.1417 -2.5875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.8625 -0.7375 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.5500 -1.3625 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.6083 -2.1875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.8625 -1.5250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -4.4875 -2.2125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.4583 0.1917 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.9292 -2.3750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.0917 1.9250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.5083 1.9542 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 4.4000 -2.1125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 3.9375 0.4625 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.1167 3.4375 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.5083 3.4625 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 4.9167 -0.6958 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.2000 4.2083 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 5.9583 -0.5583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.1625 5.1083 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2 3 1 0 0 0 0 3 1 1 0 0 0 0 4 1 1 0 0 0 0 5 2 1 0 0 0 0 6 1 1 0 0 0 0 7 1 1 0 0 0 0 8 11 1 0 0 0 0 9 10 1 0 0 0 0 10 7 1 0 0 0 0 11 6 1 0 0 0 0 12 10 1 0 0 0 0 13 4 2 0 0 0 0 14 4 1 0 0 0 0 15 5 1 0 0 0 0 16 5 2 0 0 0 0 17 14 2 0 0 0 0 18 13 1 0 0 0 0 19 15 2 0 0 0 0 20 16 1 0 0 0 0 21 18 2 0 0 0 0 22 20 2 0 0 0 0 23 21 1 0 0 0 0 24 22 1 0 0 0 0 12 11 1 0 0 0 0 9 2 1 0 0 0 0 8 2 1 0 0 0 0 21 17 1 0 0 0 0 22 19 1 0 0 0 0 M END > 1 > 2.280076000000000e+003 > 7.796000000000000e+000 > 1701 > 18 > 3.250000000000000e-002 > 2 > 0 > 9.900000000000000e-001 > 5.714290000000000e+001 > 0 > 0 > BAS 0000799 > 6.440000000000000e-001 > -6.895000000000000e+000 > 0 > 93 > 2 > 4.030000000000000e-002 > 0.000000000000000e+000 $$$$ 3-[3,5-Bis-(2-carboxy-ethyl)-2,4,6-trioxo-[1,3,5]triazinan-1-yl]-propionic acid perlmol 24 24 0 0 0 0 0 0 0 0999 V2000 -0.0083 -0.7958 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 0.6917 0.4042 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -0.7083 0.4208 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 0.6917 -0.3958 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.7083 -0.3958 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.0083 0.8208 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.0083 -1.6000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.4125 0.8000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.4250 0.8250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.6917 -2.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.4375 1.6042 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.1208 0.4208 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.0083 1.6250 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 1.4125 -0.8000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 -1.4083 -0.8125 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 0.6917 -2.8125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.1542 1.9875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.8250 0.8042 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.3917 -3.2125 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 2.1917 2.8000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 -3.5083 0.3875 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 -0.0083 -3.2208 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 -2.8625 1.6042 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 2.8292 1.5583 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 2 4 1 0 0 0 0 3 5 1 0 0 0 0 4 1 1 0 0 0 0 5 1 1 0 0 0 0 6 3 1 0 0 0 0 7 1 1 0 0 0 0 8 2 1 0 0 0 0 9 3 1 0 0 0 0 10 7 1 0 0 0 0 11 8 1 0 0 0 0 12 9 1 0 0 0 0 13 6 2 0 0 0 0 14 4 2 0 0 0 0 15 5 2 0 0 0 0 16 10 1 0 0 0 0 17 11 1 0 0 0 0 18 12 1 0 0 0 0 19 16 2 0 0 0 0 20 17 2 0 0 0 0 21 18 2 0 0 0 0 22 16 1 0 0 0 0 23 18 1 0 0 0 0 24 17 1 0 0 0 0 6 2 1 0 0 0 0 M END > 110 > 3.660000000000000e-001 > -3.600000000000000e-002 > 4414 > 11 > 8.729999999999999e-002 > -2 > 0 > 1.000000000000000e-002 > 7.500000000000000e+001 > 9 > 3 > BAS 0001385 > -3.913000000000000e+000 > -1.538000000000000e+000 > 12 > 4.340000000000000e+000 > 94 > 12 > 9.999999900000003e+003 > 1.779000000000000e+002 $$$$ perlmol 21 25 0 0 0 0 0 0 0 0999 V2000 -0.0958 -1.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.3250 0.3000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.1250 -1.5792 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.9042 -0.4625 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.8625 1.1417 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.4375 1.6375 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.1125 -0.0125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.0833 -1.1792 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.6917 -2.8000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 3.2542 -0.5917 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 3.8250 -1.8125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 3.0375 -2.9167 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.1750 1.6750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.6167 2.9375 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -1.8750 1.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -3.3750 -1.1000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 4.5917 -1.8167 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0 -1.6625 2.6875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.4750 3.1458 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -3.1750 0.9083 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -3.9458 -0.1375 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2 7 1 0 0 0 0 3 1 1 0 0 0 0 4 3 2 0 0 0 0 5 1 1 0 0 0 0 6 5 1 0 0 0 0 7 8 2 0 0 0 0 8 1 1 0 0 0 0 9 3 1 0 0 0 0 10 4 1 0 0 0 0 11 12 1 0 0 0 0 12 9 2 0 0 0 0 13 5 2 0 0 0 0 14 6 2 0 0 0 0 15 7 1 0 0 0 0 16 8 1 0 0 0 0 17 11 1 0 0 0 0 18 13 1 0 0 0 0 19 18 2 0 0 0 0 20 21 1 0 0 0 0 21 16 2 0 0 0 0 2 6 1 0 0 0 0 2 4 1 0 0 0 0 20 15 2 0 0 0 0 19 14 1 0 0 0 0 11 10 2 0 0 0 0 M END > 10 > 2.163618000000000e+003 > 5.611000000000000e+000 > 9787 > 4 > 4.109999999999999e-002 > 2 > 3 > 9.900000000000000e-001 > 2.800000000000000e+001 > 1 > 0 > BAS 0001419 > 6.440000000000000e-001 > -5.656999999999999e+000 > 0 > 94 > 0 > 7.341000000000000e-001 > 0.000000000000000e+000 $$$$ 5,5'-Dimethyl-[3,3']bi[[1,2,4]oxadiazolyl] perlmol 12 13 0 0 0 0 0 0 0 0999 V2000 0.6250 0.0042 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.6208 0.0042 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.3875 0.9708 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -1.3917 -0.9792 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 1.3208 -1.0208 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 -1.3208 1.0292 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 2.5583 0.5542 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.5750 -0.5583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2.5208 -0.6958 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 -2.5125 0.6917 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 3.6083 1.2583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -3.6292 -1.2292 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 2 1 1 0 0 0 0 3 1 1 0 0 0 0 4 2 1 0 0 0 0 5 1 2 0 0 0 0 6 2 2 0 0 0 0 7 3 2 0 0 0 0 8 4 2 0 0 0 0 9 5 1 0 0 0 0 10 6 1 0 0 0 0 11 7 1 0 0 0 0 12 8 1 0 0 0 0 9 7 1 0 0 0 0 10 8 1 0 0 0 0 M END > 197 > 8.358400000000002e+001 > -3.330000000000000e-001 > 26178 > 1 > 0.000000000000000e+000 > -1 > 0 > 9.800000000000001e-001 > 2.307690000000000e+001 > 6 > 0 > BAS 0001437 > -3.430000000000000e-001 > -1.220000000000000e+000 > 6 > 95 > 1 > 9.999999900000003e+003 > 7.784000000000000e+001 $$$$ Chemistry-File-MDLMol-0.24/t/sdf/C.sdf0000644000200400020040000000045314176777001017136 0ustar andriusandriusTEST 3 0 0 0 0 0 0 0 0 0999 V2000 0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.0000 0.0000 0.0000 C 1 0 0 0 0 0 0 0 0 0 0 0 M ISO 1 2 13 M END $$$$ Chemistry-File-MDLMol-0.24/t/pattern.t0000644000200400020040000000207514176777001017346 0ustar andriusandriususe strict; use warnings; use Test::More; use Chemistry::File::MDLMol; my @patt_files = glob 't/pat/*.mol'; my @mol_files = glob 't/mol/*.mol'; if (eval "use Chemistry::Pattern; 1") { plan tests => 1 + 1 * @patt_files + 1 * @patt_files * @mol_files; #plan 'no_plan'; ok(1, "loaded Chemistry::Pattern"); } else { plan skip_all => 'Chemistry::Pattern not installed'; } #$Chemistry::File::MDLMol::DEBUG = 1; for my $patt_file (@patt_files) { my $patt = Chemistry::Pattern->read($patt_file); isa_ok ($patt, 'Chemistry::Pattern'); my ($patt_basename) = $patt_file =~ /([^\/]*)\.mol/; my %expected = split " ", $patt->name; for my $mol_file (@mol_files) { my ($mol_basename) = $mol_file =~ /([^\/]*)\.mol/; $expected{$mol_basename} ||= 0; my $mol = Chemistry::Mol->read($mol_file); Chemistry::Ring::aromatize_mol($mol); my $n = 0; $n++ while $patt->match($mol); is ($n, $expected{$mol_basename}, "$patt_basename matches $mol_basename $expected{$mol_basename} times?"); } } Chemistry-File-MDLMol-0.24/t/mdlmol.t0000644000200400020040000000213314176777001017150 0ustar andriusandriususe Test::More tests => 14; BEGIN { use_ok('Chemistry::File::MDLMol') }; # read a molecule and see if some of the data is ok my $mol = Chemistry::Mol->read("t/mol/N2F2.mol"); isa_ok($mol, 'Chemistry::Mol', '$mol'); is($mol->name, "trans-Difluorodiazene", "name"); is($mol->attr("mdlmol/line2"), " -ISIS- 3D", "line2"); is($mol->attr("mdlmol/comment"), "r23 N2F2 FN=NF", "comment"); is($mol->attr("mdlmol/chiral"), 0, "chiral"); is($mol->atoms(2)->symbol, "N", "symbol"); is($mol->atoms(3)->y3, 1.2409, "coords"); is($mol->bonds(1)->type, 2, "bond type"); is($mol->bonds(1)->order, 2, "bond order"); # try one with charges and radicals $mol = Chemistry::Mol->read('t/mol/chg_rad.mol'); is($mol->atoms(1)->formal_radical, 2, 'radical'); is($mol->atoms(1)->implicit_hydrogens, 2, 'implicit_hydrogens'); is($mol->atoms(4)->formal_charge, -1, 'charge'); # see if we can change the change, write it and parse it back $mol->atoms(4)->formal_charge(1); my $s = $mol->print(format => 'mdl'); $mol = Chemistry::Mol->parse($s, format => 'mdl'); is($mol->atoms(4)->formal_charge, 1, 'charge rw'); Chemistry-File-MDLMol-0.24/t/pat/0000775000200400020040000000000014176777001016266 5ustar andriusandriusChemistry-File-MDLMol-0.24/t/pat/query.mol0000644000200400020040000000064714176777001020151 0ustar andriusandriusC5H5Cl2I 2 bromobenzene 2 -ISIS- 05180520302D 3 2 1 0 0 0 0 0 0 0999 V2000 5.1542 -8.7417 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 5.9500 -8.5250 0.0000 L 0 0 0 0 0 0 0 0 0 0 0 0 5.1500 -9.5667 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1 2 1 0 0 0 0 1 3 7 0 0 1 0 2 F 4 9 17 35 53 M ALS 2 4 F F Cl Br I M END Chemistry-File-MDLMol-0.24/t/pat/bromobenzene.mol0000644000200400020040000000135514176777001021466 0ustar andriusandriusbromobenzene 1 -ISIS- 05180520352D 7 7 0 0 0 0 0 0 0 0999 V2000 -3.8723 -6.3083 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -3.8734 -7.1357 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -3.1586 -7.5485 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.4422 -7.1352 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.4450 -6.3047 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -3.1604 -5.8955 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -3.1629 -5.0705 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0 3 4 2 0 0 0 0 4 5 1 0 0 0 0 2 3 1 0 0 0 0 5 6 2 0 0 0 0 6 1 1 0 0 0 0 1 2 2 0 0 0 0 6 7 1 0 0 0 0 M END Chemistry-File-MDLMol-0.24/t/pod.t0000644000200400020040000000021714176777001016447 0ustar andriusandriususe Test::More; eval 'use Test::Pod'; if ($@) { plan skip_all => "You don't have Test::Pod installed"; } else { all_pod_files_ok(); } Chemistry-File-MDLMol-0.24/t/mol/0000775000200400020040000000000014176777001016271 5ustar andriusandriusChemistry-File-MDLMol-0.24/t/mol/chg_rad.mol0000644000200400020040000000072414176777001020372 0ustar andriusandrius -ISIS- 05180515162D 4 3 0 0 0 0 0 0 0 0999 V2000 -1.6875 -0.0917 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.8625 -0.0917 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -0.4500 -0.8061 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 -0.4500 0.6228 0.0000 O 0 5 0 0 0 0 0 0 0 0 0 0 2 3 2 0 0 0 0 1 2 1 0 0 0 0 2 4 1 0 0 0 0 M CHG 1 4 -1 M RAD 1 1 2 M END Chemistry-File-MDLMol-0.24/t/mol/bromobenzene.mol0000644000200400020040000000133714176777001021471 0ustar andriusandrius -ISIS- 05180520352D 7 7 0 0 0 0 0 0 0 0999 V2000 -3.8723 -6.3083 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -3.8734 -7.1357 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -3.1586 -7.5485 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.4422 -7.1352 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.4450 -6.3047 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -3.1604 -5.8955 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -3.1629 -5.0705 0.0000 Br 0 0 0 0 0 0 0 0 0 0 0 0 3 4 2 0 0 0 0 4 5 1 0 0 0 0 2 3 1 0 0 0 0 5 6 2 0 0 0 0 6 1 1 0 0 0 0 1 2 2 0 0 0 0 6 7 1 0 0 0 0 M END Chemistry-File-MDLMol-0.24/t/mol/N2F2.mol0000644000200400020040000000054214176777001017450 0ustar andriusandriustrans-Difluorodiazene -ISIS- 3D r23 N2F2 FN=NF 4 3 0 0 0 0 0 0 0 0 0 0.0000 0.0000 0.0000 N 0 0 0 0 0 1.2441 0.0000 0.0000 N 0 0 0 0 0 1.7701 1.2409 0.0000 F 0 0 0 0 0 -0.5258 -1.2409 -0.0000 F 0 0 0 0 0 1 2 2 0 0 0 1 4 1 0 0 0 2 3 1 0 0 0 M END Chemistry-File-MDLMol-0.24/t/mol/fluoroethylene.mol0000644000200400020040000000052014176777001022041 0ustar andriusandrius -ISIS- 05180520362D 3 2 0 0 0 0 0 0 0 0999 V2000 0.0292 -9.3667 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 0.8250 -9.5792 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 1.0392 -10.3759 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0 1 2 2 0 0 0 0 2 3 1 0 0 0 0 M END Chemistry-File-MDLMol-0.24/t/mol/C5H5Cl2I.mol0000644000200400020040000000147514176777001020125 0ustar andriusandrius -ISIS- 05180520352D 8 8 0 0 0 0 0 0 0 0999 V2000 -3.1834 -10.4584 0.0000 C 0 0 3 0 0 0 0 0 0 0 0 0 -2.3584 -10.4584 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.1016 -9.6742 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.7709 -9.1875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -3.4359 -9.6742 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 -2.7721 -8.3625 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 -1.3166 -9.4204 0.0000 I 0 0 0 0 0 0 0 0 0 0 0 0 -3.6042 -11.1708 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 3 4 2 0 0 0 0 4 5 1 0 0 0 0 5 1 1 0 0 0 0 1 2 1 0 0 0 0 4 6 1 0 0 0 0 3 7 1 0 0 0 0 2 3 1 0 0 0 0 1 8 1 0 0 0 0 M END Chemistry-File-MDLMol-0.24/Makefile.PL0000644000200400020040000000177714176777001017223 0ustar andriusandrius# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.010. use strict; use warnings; use ExtUtils::MakeMaker; my %WriteMakefileArgs = ( "ABSTRACT" => "MDL molfile reader/writer", "AUTHOR" => "Ivan Tubert-Brohman ", "CONFIGURE_REQUIRES" => { "ExtUtils::MakeMaker" => 0 }, "DISTNAME" => "Chemistry-File-MDLMol", "LICENSE" => "perl", "NAME" => "Chemistry::File::MDLMol", "PREREQ_PM" => { "Chemistry::Mol" => "0.35" }, "TEST_REQUIRES" => { "Test::More" => 0 }, "VERSION" => "0.24", "test" => { "TESTS" => "t/*.t" } ); my %FallbackPrereqs = ( "Chemistry::Mol" => "0.35", "Test::More" => 0 ); unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) { delete $WriteMakefileArgs{TEST_REQUIRES}; delete $WriteMakefileArgs{BUILD_REQUIRES}; $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs; } delete $WriteMakefileArgs{CONFIGURE_REQUIRES} unless eval { ExtUtils::MakeMaker->VERSION(6.52) }; WriteMakefile(%WriteMakefileArgs); Chemistry-File-MDLMol-0.24/lib/0000775000200400020040000000000014176777001016005 5ustar andriusandriusChemistry-File-MDLMol-0.24/lib/Chemistry/0000775000200400020040000000000014176777001017754 5ustar andriusandriusChemistry-File-MDLMol-0.24/lib/Chemistry/File/0000775000200400020040000000000014176777001020633 5ustar andriusandriusChemistry-File-MDLMol-0.24/lib/Chemistry/File/MDLMol.pm0000644000200400020040000003010114176777001022246 0ustar andriusandriuspackage Chemistry::File::MDLMol; our $VERSION = '0.24'; # VERSION # $Id$ use base "Chemistry::File"; use Chemistry::Mol; use Carp; use List::Util; use strict; use warnings; our $DEBUG = 0; =head1 NAME Chemistry::File::MDLMol - MDL molfile reader/writer =head1 SYNOPSIS use Chemistry::File::MDLMol; # read a molecule my $mol = Chemistry::Mol->read('myfile.mol'); # write a molecule $mol->write("myfile.mol"); # use a molecule as a query for substructure matching use Chemistry::Pattern; use Chemistry::Ring; Chemistry::Ring::aromatize_mol($mol); my $patt = Chemistry::Pattern->read('query.mol'); if ($patt->match($mol)) { print "it matches!\n"; } =cut Chemistry::Mol->register_format(mdl => __PACKAGE__); =head1 DESCRIPTION MDL Molfile (V2000) reader/writer. This module automatically registers the 'mdl' format with Chemistry::Mol. The first three lines of the molfile are stored as $mol->name, $mol->attr("mdlmol/line2"), and $mol->attr("mdlmol/comment"). This version only reads and writes some of the information available in a molfile: it reads coordinates, atom and bond types, charges, isotopes, radicals, and atom lists. It does not read other things such as stereochemistry, 3d properties, etc. This module is part of the PerlMol project, L. =head2 Query properties The MDL molfile format supports query properties such as atom lists, and special bond types such as "single or double", "single or aromatic", "double or aromatic", "ring bond", or "any". These properties are supported by this module in conjunction with L. However, support for query properties is currently read-only, and the other properties listed in the specification are not supported yet. So that atom and bond objects can use these special query options, the conditions are represented as Perl subroutines. The generated code can be read from the 'mdlmol/test_sub' attribute: $atom->attr('mdlmol/test_sub'); $bond->attr('mdlmol/test_sub'); This may be useful for debugging, such as when an atom doesn't seem to match as expected. =head2 Aromatic Queries To be able to search for aromatic substructures are represented by Kekule structures, molfiles that are read as patterns (with Cread) are aromatized automatically by using the L module. The default bond test from Chemistry::Pattern::Bond is overridden by one that checks the aromaticity in addition to the bond order. The test is, $patt->aromatic ? $bond->aromatic : (!$bond->aromatic && $patt->order == $bond->order); That is, aromatic pattern bonds match aromatic bonds, and aliphatic pattern bonds match aliphatic bonds with the same bond order. =cut # some constants, based on tables from the file format specification my %OLD_CHARGE_MAP = ( 1 => 3, 2 => 2, 3 => 1, 4 => 0, 5 => -1, 6 => -2, 7 => -3, ); my %BOND_TYPE_EXPR = ( 4 => '($bond->aromatic)', 5 => '($bond->order == 1 or $bond->order == 2)', 6 => '($bond->order == 1 or $bond->aromatic)', 7 => '($bond->order == 2 or $bond->aromatic)', 8 => '(1)', # any bond ); my %BOND_TOPOLOGY_EXPR = ( 1 => '@{$bond->attr("ring/rings")||[]}', 2 => '! @{$bond->attr("ring/rings")||[]}', ); sub read_mol { my ($self, $fh, %opts) = @_; return if $fh->eof; %opts = ( slurp => 1, %opts ); my $mol_class = $opts{mol_class} || "Chemistry::Mol"; my $atom_class = $opts{atom_class} || $mol_class->atom_class; my $bond_class = $opts{bond_class} || $mol_class->bond_class; local $_; my $mol = $mol_class->new(); # header my $name = <$fh>; chomp $name; my $line2 = <$fh>; chomp $line2; my $comment = <$fh>; chomp $comment; $mol->name($name); $mol->attr("mdlmol/line2", $line2); $mol->attr("mdlmol/comment", $comment); # counts line defined ($_ = <$fh>) or croak "unexpected end of file"; my ($na, $nb, undef, undef, $is_chiral) = unpack("A3A3A3A3A3", $_); $mol->attr("mdlmol/chiral", int $is_chiral); my %old_charges; my %old_radicals; # atom block for my $i (1 .. $na) { # for each atom... defined (my $line = <$fh>) or croak "unexpected end of file"; my ($x, $y, $z, $symbol, $mass, $charge) = unpack("A10A10A10xA3A2A3", $line); $old_charges{$i} = $OLD_CHARGE_MAP{$charge} if $OLD_CHARGE_MAP{$charge}; $old_radicals{$i} = 2 if $charge && $charge == 4; my $mass_number; if( int $mass && eval { require Chemistry::Isotope } ) { my $abundance = Chemistry::Isotope::isotope_abundance($symbol); ($mass_number) = sort { $abundance->{$b} cmp $abundance->{$a} } sort keys %$abundance; $mass_number += $mass; } elsif( int $mass ) { warn "no Chemistry::Isotope, cannot read mass number " . "from atom block\n"; } $mol->new_atom( symbol => $symbol, coords => [$x*1, $y*1, $z*1], mass_number => $mass_number, ); } # bond block for my $i (1 .. $nb) { # for each bond... no warnings 'numeric'; defined ($_ = <$fh>) or croak "unexpected end of file"; my ($a1, $a2, $type, $stereo, $topology, $rxn) = map {$_*1} unpack("A3A3A3A3x3A3A3", $_); my $order = $type =~ /^[123]$/ ? $type : 1; my $bond = $mol->new_bond( type => $type, atoms => [$mol->atoms($a1,$a2)], order => $order, ); if ($mol->isa('Chemistry::Pattern')) { $self->bond_expr($bond, $i, $type, $topology); } } # properties block while (<$fh>) { if (/^M END/ or /^\$\$\$\$/) { last; } elsif (/^M (...)/) { # generic extended property handler if ($1 eq 'CHG' or $1 eq 'RAD'){ # XXX # clear old-style info %old_radicals = (); %old_charges = (); } my $method = "M_$1"; $self->$method($mol, $_) if $self->can($method); } } # add old-style charges and radicals if they still apply while (my ($key, $val) = each %old_charges) { $mol->atoms($key)->formal_charge($val); } while (my ($key, $val) = each %old_radicals) { $mol->atoms($key)->formal_radical($val); } # make sure we get to the end of the file if ($opts{slurp}) { 1 while <$fh>; } $mol->add_implicit_hydrogens; if ($mol->isa('Chemistry::Pattern')) { require Chemistry::Ring; Chemistry::Ring::aromatize_mol($mol); } return $mol; } sub bond_expr { my ($self, $bond, $i, $type, $topology) = @_; my @bond_exprs; my $s = $BOND_TOPOLOGY_EXPR{$topology}; push @bond_exprs, $s if $s; $s = $BOND_TYPE_EXPR{$type}; push @bond_exprs, $s if $s; if (@bond_exprs) { my $expr = join " and ", @bond_exprs; my $sub_txt = <>>\n" if $DEBUG; $bond->attr('mdlmol/test_sub' => $sub_txt); $bond->test_sub(eval $sub_txt); } else { # default bond sub $bond->test_sub(\&default_bond_test); } } sub default_bond_test { no warnings; my ($patt, $bond) = @_; $patt->aromatic ? $bond->aromatic : (!$bond->aromatic && $patt->order == $bond->order); } sub M_CHG { my ($self, $mol, $line) = @_; my ($m, $type, $n, %data) = split " ", $line; while (my ($key, $val) = each %data) { $mol->atoms($key)->formal_charge($val); } } sub M_RAD { my ($self, $mol, $line) = @_; my ($m, $type, $n, %data) = split " ", $line; while (my ($key, $val) = each %data) { $mol->atoms($key)->formal_radical($val); } } sub M_ISO { my ($self, $mol, $line) = @_; my ($m, $type, $n, %data) = split " ", $line; while (my ($key, $val) = each %data) { $mol->atoms($key)->mass_number($val); } } sub M_ALS { my ($self, $mol, $line) = @_; return unless $line =~ /^M ALS (...)(...) (.)/; my ($n, $cnt, $exclude) = ($1, $2, $3); my @symbols; $exclude = $exclude =~ /^[Tt]$/ ? '!' : ''; # parse the symbols out of the atom list line for my $i (0 .. $cnt-1) { my $s = substr $_, 16+$i*4, 4; $s =~ s/\s+//g; push @symbols, $s; } # save attr $mol->atoms($n)->attr('mdlmol/atom_list' => $_); # create test sub if ($mol->isa('Chemistry::Pattern')) { my $sub_txt = <symbol; $exclude (List::Util::first {\$sym eq \$_} \@symbols); }; SUB print "MDLMol atom($n) sub: <<<<$sub_txt>>>\n" if $DEBUG; print "MDLMol symbol list: (@symbols)\n" if $DEBUG; $mol->atoms($n)->attr('mdlmol/test_sub' => $sub_txt); $mol->atoms($n)->test_sub(eval $sub_txt); } } sub name_is { my ($self, $fname) = @_; $fname =~ /\.mol$/i; } sub file_is { my ($self, $fname) = @_; $fname =~ /\.mol$/i; } sub write_string { my ($self, $mol, %opts) = @_; no warnings 'uninitialized'; my $s = sprintf "%s\n perlmol \n\n", $mol->name; $s .= sprintf "%3i%3i%3i%3i%3i%3i%3i%3i%3i%3i%3i%6s\n", 0+$mol->atoms, 0+$mol->bonds, 0, 0, 0, 0, 0, 0, 0, 0, 999, "V2000"; # "counts" line my $i = 1; my %idx_map; my @charged_atoms; my @isotope_atoms; my @radical_atoms; for my $atom ($mol->atoms) { my ($x, $y, $z) = $atom->coords->array; $s .= sprintf "%10.4f%10.4f%10.4f %-3s%2i%3i%3i%3i%3i%3i%3i%3i%3i%3i%3i%3i\n", $x, $y, $z, $atom->symbol, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; push @charged_atoms, $i if $atom->formal_charge; push @isotope_atoms, $i if $atom->mass_number; push @radical_atoms, $i if $atom->formal_radical; $idx_map{$atom->id} = $i++; } for my $bond ($mol->bonds) { my ($a1, $a2) = map {$idx_map{$_->id}} $bond->atoms; $s .= sprintf "%3i%3i%3i%3i%3i%3i%3i\n", $a1, $a2, $bond->order, 0, 0, 0, 0; } while (@charged_atoms) { my $n = @charged_atoms > 8 ? 8 : @charged_atoms; $s .= "M CHG $n"; for my $key (splice @charged_atoms, 0, $n) { $s .= sprintf "%4d%4d", $key, $mol->atoms($key)->formal_charge; } $s .= "\n"; } while (@isotope_atoms) { my $n = @isotope_atoms > 8 ? 8 : @isotope_atoms; $s .= "M ISO $n"; for my $key (splice @isotope_atoms, 0, $n) { $s .= sprintf "%4d%4d", $key, $mol->atoms($key)->mass_number; } $s .= "\n"; } while (@radical_atoms) { my $n = @radical_atoms > 8 ? 8 : @radical_atoms; $s .= "M RAD $n"; for my $key (splice @radical_atoms, 0, $n) { $s .= sprintf "%4d%4d", $key, $mol->atoms($key)->formal_radical; } $s .= "\n"; } $s .= "M END\n"; $s; } 1; =head1 SOURCE CODE REPOSITORY L =head1 SEE ALSO L The MDL file format specification. L, L, L, or Arthur Dalby et al., J. Chem. Inf. Comput. Sci, 1992, 32, 244-255. L. =head1 AUTHOR Ivan Tubert-Brohman =head1 COPYRIGHT Copyright (c) 2009 Ivan Tubert-Brohman. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut Chemistry-File-MDLMol-0.24/lib/Chemistry/File/SDF.pm0000644000200400020040000001066014176777001021606 0ustar andriusandriuspackage Chemistry::File::SDF; our $VERSION = '0.24'; # VERSION # $Id$ use base "Chemistry::File"; use Chemistry::Mol; use Chemistry::File::MDLMol; use strict; use warnings; =head1 NAME Chemistry::File::SDF - MDL Structure Data File reader/writer =head1 SYNOPSIS use Chemistry::File::SDF; # Simple interface (all at once) # read all the molecules in the file my @mols = Chemistry::Mol->read('myfile.sdf'); # assuming that the file includes a data item... print $mols[0]->attr("sdf/data")->{PKA}; # write a bunch of molecules to an SDF file Chemistry::Mol->write('myfile.sdf', mols => \@mols); # or write just one molecule $mol->write('myfile.sdf'); # Low level interface (one at a time) # create reader my $reader = Chemistry::Mol->file('myfile.sdf'); $reader->open('<'); while (my $mol = $reader->read_mol($reader->fh)) { # do something with $mol } =cut Chemistry::Mol->register_format(sdf => __PACKAGE__); =head1 DESCRIPTION MDL SDF (V2000) reader. This module automatically registers the 'sdf' format with Chemistry::Mol. The parser returns a list of Chemistry::Mol objects. SDF data can be accessed by the $mol->attr method. Attribute names are stored as a hash ref at the "sdf/data" attribute, as shown in the synopsis. When a data item has a single line in the SDF file, the attribute is stored as a string; when there's more than one line, they are stored as an array reference. The rest of the information on the line that holds the field name is ignored. This module is part of the PerlMol project, L. =cut sub slurp_mol { my ($self, $fh, %opts) = @_; return if $fh->eof; my $s; while (<$fh>) { last if /^\$\$\$\$/; $s .= $_; } $s =~ s/\r\n?/\n/g; # normalize EOL $s; } sub skip_mol { my ($self, $fh, %opts) = @_; return if $fh->eof; while (<$fh>) { return 1 if /^\$\$\$\$/; } return 0; } sub read_mol { my ($self, $fh, %opts) = @_; my $s = $self->slurp_mol($fh, %opts) or return; my $mol = Chemistry::File::MDLMol->parse_string($s, %opts); $self->parse_data($mol, $s); $mol; } sub parse_data { my ($self, $mol, $mol_string) = @_; my (@items) = split /\n>/, $mol_string; shift @items; # drop everything until first datum my %data_block; for my $item (@items) { my ($header, @data) = split /\n/, $item; my ($field_name) = $header =~ /<(.*?)>/g; warn "SDF: no field name\n", next unless $field_name; #$mol->attr("sdf/$field_name", @data == 1 ? $data[0] : \@data); $data_block{$field_name} = @data == 1 ? $data[0] : \@data; } $mol->attr("sdf/data", \%data_block); } sub write_string { my ($self, $mol_ref, %opts) = @_; my @mols; my $ret = ''; if ($opts{mols}) { @mols = @{$opts{mols}}; } else { @mols = $mol_ref; } for my $mol (@mols) { $ret .= $mol->print(format => 'mdl'); $ret .= format_data($mol->attr('sdf/data')) . '$$$$'."\n"; } $ret; } sub format_data { my ($data) = @_; my $ret = ''; return $ret unless $data; for my $field_name (sort keys %$data) { $ret .= "> <$field_name>\n"; my $value = $data->{$field_name}; if (ref $value) { $ret .= join "\n", @$value; } else { $ret .= "$value\n"; } $ret .= "\n"; } $ret; } sub file_is { my ($self, $fname) = @_; return 1 if $fname =~ /\.sdf?$/i; return 0; } sub name_is { my ($self, $fname) = @_; $fname =~ /\.sdf?$/i; } sub string_is { my ($self, $s) = @_; /\$\$\$\$/ ? 1 : 0; } 1; =head1 CAVEATS Note that by storing the SDF data as a hash, there can be only one field with a given name. The SDF format description is not entirely clear in this regard. Also note that SDF data field names are considered to be case-sensitive. =head1 SOURCE CODE REPOSITORY L =head1 SEE ALSO L The MDL file format specification. L or Arthur Dalby et al., J. Chem. Inf. Comput. Sci, 1992, 32, 244-255. =head1 AUTHOR Ivan Tubert-Brohman =head1 COPYRIGHT Copyright (c) 2009 Ivan Tubert-Brohman. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut Chemistry-File-MDLMol-0.24/META.json0000644000200400020040000000243314176777001016660 0ustar andriusandrius{ "abstract" : "MDL molfile reader/writer", "author" : [ "Ivan Tubert-Brohman " ], "dynamic_config" : 0, "generated_by" : "Dist::Zilla version 6.010, CPAN::Meta::Converter version 2.150010", "license" : [ "perl_5" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : 2 }, "name" : "Chemistry-File-MDLMol", "prereqs" : { "configure" : { "requires" : { "ExtUtils::MakeMaker" : "0" } }, "runtime" : { "recommends" : { "Chemistry::Isotope" : "0", "Chemistry::Pattern" : "0", "Chemistry::Ring" : "0.19" }, "requires" : { "Chemistry::Mol" : "0.35" } }, "test" : { "requires" : { "Test::More" : "0" } } }, "release_status" : "stable", "resources" : { "homepage" : "https://search.cpan.org/dist/Chemistry-File-MDLMol", "repository" : { "type" : "git", "url" : "git://github.com/perlmol/chemistry-file-mdlmol.git", "web" : "https://github.com/perlmol/chemistry-file-mdlmol" } }, "version" : "0.24", "x_serialization_backend" : "Cpanel::JSON::XS version 3.0239" }