Пример #1
0
def stream_smiles_results(operation, query, source, annotate=False):
    buf = StringIO()
    filtered = operation(query, source, annotate=annotate)
    results = SmilesWriter(buf, isomericSmiles=True, includeHeader=False)
    if annotate:
        results.SetProps(['match'])
    for result in filtered:
        buf.truncate(0)
        results.write(result)
        results.flush()
        yield buf.getvalue()
Пример #2
0
def write_smiles_results(operation, needles, haystack, dest, annotate=False, extra_props=0):
    filtered = operation(needles, haystack, annotate=annotate)
    results = SmilesWriter(dest, isomericSmiles=True, includeHeader=False)
    props = []
    if annotate:
        props.append('match')
    if extra_props:
        props.extend('ExtraProp{0}'.format(i+1) for i in range(extra_props))
    results.SetProps(props)
    for result in filtered:
        results.write(result)
    return results.NumMols()