.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Chemistry::File::SDF 3pm" .TH Chemistry::File::SDF 3pm "2022-02-06" "perl v5.32.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Chemistry::File::SDF \- MDL Structure Data File reader/writer .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Chemistry::File::SDF; \& \& # Simple interface (all at once) \& # read all the molecules in the file \& my @mols = Chemistry::Mol\->read(\*(Aqmyfile.sdf\*(Aq); \& \& # 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(\*(Aqmyfile.sdf\*(Aq, mols => \e@mols); \& \& # or write just one molecule \& $mol\->write(\*(Aqmyfile.sdf\*(Aq); \& \& \& # Low level interface (one at a time) \& # create reader \& my $reader = Chemistry::Mol\->file(\*(Aqmyfile.sdf\*(Aq); \& $reader\->open(\*(Aq<\*(Aq); \& while (my $mol = $reader\->read_mol($reader\->fh)) { \& # do something with $mol \& } .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\s-1MDL SDF\s0 (V2000) reader. .PP This module automatically registers the 'sdf' format with Chemistry::Mol. .PP The parser returns a list of Chemistry::Mol objects. \s-1SDF\s0 data can be accessed by the \f(CW$mol\fR\->attr method. Attribute names are stored as a hash ref at the \&\*(L"sdf/data\*(R" attribute, as shown in the synopsis. When a data item has a single line in the \s-1SDF\s0 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. .PP This module is part of the PerlMol project, . .SH "CAVEATS" .IX Header "CAVEATS" Note that by storing the \s-1SDF\s0 data as a hash, there can be only one field with a given name. The \s-1SDF\s0 format description is not entirely clear in this regard. Also note that \s-1SDF\s0 data field names are considered to be case-sensitive. .SH "SOURCE CODE REPOSITORY" .IX Header "SOURCE CODE REPOSITORY" .SH "SEE ALSO" .IX Header "SEE ALSO" Chemistry::Mol .PP The \s-1MDL\s0 file format specification. or Arthur Dalby et al., J. Chem. Inf. Comput. Sci, 1992, 32, 244\-255. .SH "AUTHOR" .IX Header "AUTHOR" Ivan Tubert-Brohman .SH "COPYRIGHT" .IX Header "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.