Source code for parmed.formats.sdf

"""
This module contains parsers for sdf file format 
extension described at https://www.cas.org/content/chemical-suppliers/example-sdf
"""
from __future__ import print_function, division, absolute_import
import linecache

from parmed.formats.registry import FileFormatType
from parmed.utils.six import add_metaclass
from parmed import rdkit

[docs]@add_metaclass(FileFormatType) class SDFFile(object): """ Class to read SDF file """
[docs] @staticmethod def id_format(filename): """ Identify the file as a SDF file format or not Parameters ---------- filename : str Name of the file to test whether or not it is a sdf file Returns ------- is_fmt : bool True if it is a sdf file, False otherwise """ words = linecache.getline(filename, lineno=4).split() return len(words) >= 3 and words[-1] in ('V2000', 'V3000')
[docs] @staticmethod def parse(filename, structure=False): return rdkit.from_sdf(filename, structure=structure)