Esempio n. 1
0
# -*- coding: utf-8 -*-
"""Non-graphical part of the Custom step in a SEAMM flowchart"""

import logging
import os

import custom_step
import seamm
import seamm_util.printing as printing
from seamm_util.printing import FormattedText as __

logger = logging.getLogger(__name__)
job = printing.getPrinter()
printer = printing.getPrinter('Custom')


class cd:
    """Context manager for changing the current working directory"""
    def __init__(self, newPath):
        self.newPath = os.path.expanduser(newPath)

    def __enter__(self):
        self.savedPath = os.getcwd()
        os.chdir(self.newPath)

    def __exit__(self, etype, value, traceback):
        os.chdir(self.savedPath)


class Custom(seamm.Node):
    def __init__(self,
Esempio n. 2
0
# -*- coding: utf-8 -*-
"""Run a vibrational frequency calculation in MOPAC"""

import logging
import seamm
import seamm_util.printing as printing
from seamm_util.printing import FormattedText as __
import mopac_step

logger = logging.getLogger(__name__)
job = printing.getPrinter()
printer = printing.getPrinter('mopac')


class IR(mopac_step.Energy):
    def __init__(self, flowchart=None, title='IR Spectrum', extension=None):
        """Initialize the node"""

        logger.debug('Creating IR {}'.format(self))

        super().__init__(flowchart=flowchart, title=title, extension=extension)

        self.parameters = mopac_step.IRParameters()
        self.description = 'Infrared (vibrational) spectroscopy calculation'

    def description_text(self, P):
        """Prepare information about what this node will do
        """

        text = ('Harmonic vibrational calculation using {hamiltonian}, '
                'with the SCF converged to ')
Esempio n. 3
0
the job, and should be used very sparingly, typically to echo what this step
will do in the initial summary of the job.

'printer' sends output to the file 'step.out' in this steps working
directory, and is used for all normal output from this step.
"""

import logging
import seamm
from seamm_util import ureg, Q_  # noqa: F401
import seamm_util.printing as printing
from seamm_util.printing import FormattedText as __
import cassandra_step

logger = logging.getLogger(__name__)
job = printing.getPrinter()
printer = printing.getPrinter('lammps')


class Cassandra(seamm.Node):

    def __init__(self, flowchart=None, title='Cassandra', extension=None):
        """A Cassandra step in a MolSSI flowchart.

        You may wish to change the title above, which is the string displayed
        in the box representing the step in the flowchart.

        Keyword arguments:
        """
        logger.debug('Creating Cassandra {}'.format(self))
Esempio n. 4
0
import system_step
import seamm
from seamm_util import ureg, Q_  # noqa: F401
import seamm_util.printing as printing
from seamm_util.printing import FormattedText as __

# In addition to the normal logger, two logger-like printing facilities are
# defined: 'job' and 'printer'. 'job' send output to the main job.out file for
# the job, and should be used very sparingly, typically to echo what this step
# will do in the initial summary of the job.
#
# 'printer' sends output to the file 'step.out' in this steps working
# directory, and is used for all normal output from this step.

logger = logging.getLogger(__name__)
job = printing.getPrinter()
printer = printing.getPrinter('System')


class System(seamm.Node):
    """
    The non-graphical part of a System step in a flowchart.

    Attributes
    ----------
    parser : configargparse.ArgParser
        The parser object.

    options : tuple
        It contains a two item tuple containing the populated namespace and the
        list of remaining argument strings.
Esempio n. 5
0
import logging
from pathlib import PurePath, Path
import textwrap

from .formats.registries import get_format_metadata
import read_structure_step
from .read import read
import seamm
from seamm import data  # noqa: F401
from seamm_util import ureg, Q_  # noqa: F401
import seamm_util.printing as printing
from seamm_util.printing import FormattedText as __
from .utils import guess_extension

logger = logging.getLogger(__name__)
job = printing.getPrinter()
printer = printing.getPrinter("Read Structure")


class ReadStructure(seamm.Node):
    def __init__(self, flowchart=None, title="Read Structure", extension=None):
        """A step for Read Structure in a SEAMM flowchart.

        You may wish to change the title above, which is the string displayed
        in the box representing the step in the flowchart.

        Parameters:
            flowchart: The flowchart that contains this step.
            title: The name displayed in the flowchart.

            extension: ??
Esempio n. 6
0
import logging
import os.path
from pathlib import PurePath

import numpy as np
import pandas
from tabulate import tabulate

import seamm
import seamm_util.printing as printing
from seamm_util import ureg, Q_, units_class  # noqa: F401
import table_step

logger = logging.getLogger(__name__)
job = printing.getPrinter()
printer = printing.getPrinter("table")


class Table(seamm.Node):
    def __init__(self, flowchart=None, extension=None):
        """Setup the non-graphical part of the Table step in SEAMM.

        Keyword arguments:
        """
        logger.debug("Creating Table {}".format(self))

        # Initialize our parent class
        super().__init__(flowchart=flowchart,
                         title="Table",
                         extension=extension,
Esempio n. 7
0
"""

import logging
from pathlib import PurePath

import read_structure_step
from .write import write
import seamm
from seamm import data  # noqa: F401
from seamm_util import ureg, Q_  # noqa: F401
import seamm_util.printing as printing
from seamm_util.printing import FormattedText as __
from .utils import guess_extension

logger = logging.getLogger(__name__)
job = printing.getPrinter()
printer = printing.getPrinter("Write Structure")


class WriteStructure(seamm.Node):
    def __init__(self,
                 flowchart=None,
                 title="Write Structure",
                 extension=None):
        """A step for Write Structure in a SEAMM flowchart.

        You may wish to change the title above, which is the string displayed
        in the box representing the step in the flowchart.

        Parameters:
            flowchart: The flowchart that contains this step.
Esempio n. 8
0
import configargparse
import mendeleev

import seamm
from seamm import data
import seamm_util
from seamm_util import ureg, Q_, units_class  # noqa: F401
from seamm_util import pdbfile
import seamm_util.printing as printing
from seamm_util.printing import FormattedText as __
from seamm_util.water_models import Water
import solvate_step

logger = logging.getLogger(__name__)
job = printing.getPrinter()
printer = printing.getPrinter('solvate')


class Solvate(seamm.Node):
    def __init__(self, flowchart=None, extension=None):
        """Setup the main Solvate step

        Keyword arguments:
        """

        logger.debug('Handling arguments in Solvate {}'.format(self))

        # Argument/config parsing
        self.parser = configargparse.ArgParser(auto_env_var_prefix='',
                                               default_config_files=[
Esempio n. 9
0
import set_cell_step
import seamm
from seamm_util import ureg, Q_  # noqa: F401
import seamm_util.printing as printing
from seamm_util.printing import FormattedText as __

# In addition to the normal logger, two logger-like printing facilities are
# defined: 'job' and 'printer'. 'job' send output to the main job.out file for
# the job, and should be used very sparingly, typically to echo what this step
# will do in the initial summary of the job.
#
# 'printer' sends output to the file 'step.out' in this steps working
# directory, and is used for all normal output from this step.

logger = logging.getLogger(__name__)
job = printing.getPrinter()
printer = printing.getPrinter('Set Cell')


class SetCell(seamm.Node):
    """
    The non-graphical part of a Set Cell step in a flowchart.

    Attributes
    ----------
    parser : configargparse.ArgParser
        The parser object.

    options : tuple
        It contains a two item tuple containing the populated namespace and the
        list of remaining argument strings.
Esempio n. 10
0
import seamm_antechamber
import seamm
from seamm_util import ureg, Q_  # noqa: F401
import seamm_util.printing as printing
from seamm_util.printing import FormattedText as __

# In addition to the normal logger, two logger-like printing facilities are
# defined: 'job' and 'printer'. 'job' send output to the main job.out file for
# the job, and should be used very sparingly, typically to echo what this step
# will do in the initial summary of the job.
#
# 'printer' sends output to the file 'step.out' in this steps working
# directory, and is used for all normal output from this step.

logger = logging.getLogger(__name__)
job = printing.getPrinter()
printer = printing.getPrinter('Antechamber')

ANTECHAMBER = "/Users/meliseo/Scratch/antechamber/amber20_src/bin/antechamber"


class Antechamber:
    """
    The non-graphical part of a Antechamber step in a flowchart.

    Attributes
    ----------
    parser : configargparse.ArgParser
        The parser object.

    options : tuple
from seamm_util.printing import FormattedText as __
import rdkit
import rdkit.Chem
import rdkit.Chem.AllChem
import re

# In addition to the normal logger, two logger-like printing facilities are
# defined: 'job' and 'printer'. 'job' send output to the main job.out file for
# the job, and should be used very sparingly, typically to echo what this step
# will do in the initial summary of the job.
#
# 'printer' sends output to the file 'step.out' in this steps working
# directory, and is used for all normal output from this step.

logger = logging.getLogger(__name__)
job = printing.getPrinter()
printer = printing.getPrinter('seamm_default_atomtyping')


class SeammDefaultAtomtyping:
    """
    The non-graphical part of a seamm_default_atomtyping step in a flowchart.

    Attributes
    ----------
    parser : configargparse.ArgParser
        The parser object.

    options : tuple
        It contains a two item tuple containing the populated namespace and the
        list of remaining argument strings.