sdf-parser
    Preparing search index...

    sdf-parser

    sdf-parser

    NPM version build status Test coverage npm download

    Allow to parse a SDF file and convert it to an array of objects.

    npm install sdf-parser
    

    In node script:

    // allows to parse a file test.sdf that would be present in the same directory

    var { parse } = require('sdf-parser');

    var fs = require('fs');
    var sdf = fs.readFileSync('./test.sdf', 'utf-8');

    var result = parse(sdf);
    console.log(result);

    options:

    • exclude : array of string containing the fields to discard
    • include : array of string containing the fields to keep
    • modifiers : object of functions that need to be converted during the parsing
    • filter : function that allows to filter the result
    • mixedEOL : if set to true will try to deal with mixed End Of Line separator
    • dynamicTyping : convert fields containing only number to numbers (default: true)
    var result = parse(sdf, {
    exclude: ['Number of H-Donors'],
    include: ['Number of H-Donors', 'CLogP', 'Code'],
    modifiers: {
    CLogP: function (field) {
    return {
    low: field * 1 - 0.2,
    high: field * 1 + 0.2,
    };
    },
    },
    filter: (entry) => {
    return entry.CLogP && entry.CLogP.low > 4;
    },
    });
    const { iterator } = require('sdf-parser');
    const file = await openAsBlob(join(__dirname, 'test.sdf.gz'));

    const decompressionStream = new DecompressionStream('gzip');
    const textDecoder = new TextDecoderStream();

    const stream = file
    .stream()
    .pipeThrough(decompressionStream)
    .pipeThrough(textDecoder);
    const results = [];

    for await (const entry of iterator(stream)) {
    results.push(entry);
    }

    MIT