Skip to main content

useful python tools that I use to streamline my work.

Project description

Project Description

ben-science-tools (bst) is meant to contain tools that Ben uses to streamline some of his porcesses while working on computaional chemistry. The project currently has two main modules process_data which is used for log file or computaional chemistry output file processing and analysis, and input_file_maker which is used to generate file inputs for computational chemistry

Documentation

process_data

Functions

statp takes a file patern and returns the number of stationary points in each file that fits that pattern.

Parameters
----------
file_patern (str) :  a string that matches a certain string

Returns
-------
a string that gives nomber of occurences and line numbers of stationary points

Classes

out_file_scraper This is a parent file scraper class meant to be altered or used for scraping log files for computations.

Attributes
----------
path : str
    a path to an output file

file_list : list
    a list of strings where each item is the corrsponding line in the file.

Methods
-------
`read_in_file()`
Reads in a file and retruns a list where each line is an item in the list

    Parameters
    ----------
        file_name : str
            a path to an output file
    Returns
    -------
        None
            assignes self.file_list a list of all the lines in a file where each item in the list is an item.
`set_flag_function()`
Create the flag_functions dictionary mapping flag strings to the subparsing functions

    Parameters
    ----------
        flag : str
            this is the flag you plan to add to the flag_functions dictionary
        function_string : str
            this is the method you plan to call if the flag is found
    
    Returns
    -------
        None
            Adds to the self.flag_functions dictionary

g16_scraper This is a child class of out_file_scraper. To be a general scraper for Gaussian 16 output files

Attributes
----------

input_line : str
    this is the input line used in the original gjf file

checkpoint_line : str
    The "%chk=" in the original gjf file

nproc_line : str
    The "%nproc=" in the original gjf file

memory_line : str
    The "%mem=" line in the original gjf file

charge : int
    Represents the charge of the system in the original gjf file

mult : int
    represents the multiplicity of the system in the original gjf file

start_geometry: list[str]
    the starting geometry of the sytem in the original gjf file

Methods
-------
`get_input_lines()`
Extracts the input information of the gaussian file 

    Parameters
    ----------
        self
        index : int
            The index of the line this parsing function's flag is found in the file_list
    Returns
    -------
        None
            assigns respective values to:
                checkpoint_line : str
                nproc_line :      str
                memory_line :     str
                input_line :      str
                charge :          int
                multiplicity :    int
                start_geometry :  list[str]

`recreate_gjf()`
Recreates the most basic starting gjf file (does not inclued anything after the starting geometry)

    Parameters
    ----------
        self

    Returns
    -------
        str
            a formatted string of a gjf file from the start of the run

g16_optfreq Child of the g16_scraper. Meant to serve as a file scraper for Gaussian16 frequency calculations

Attributes
----------
zero_point_correction                          : float
    unit: hartrees/particle
    gives the gaussian calculated floating point number.

thermal_correction_to_energy                   : float
    unit: hartrees/particle
    gives the gaussian calculated floating point number.

thermal_correction_to_enthalpy                 : float
    unit: hartrees/particle
    gives the gaussian calculated floating point number.

thermal_correction_to_gibbs_free_energy        : float
    unit: hartrees/particle
    gives the gaussian calculated floating point number.

sum_of_electronic_and_zero_point_energies      : float
    unit: hartrees/particle
    gives the gaussian calculated floating point number.

sum_of_electronic_and_thermal_enthalpies       : float
    unit: hartrees/particle
    gives the gaussian calculated floating point number.

sum_of_electronic_and_thermal_energies         : float
    unit: hartrees/particle
    gives the gaussian calculated floating point number.

sum_of_electronic_and_thermal_free_energies    : float
    unit: hartrees/particle
    gives the gaussian calculated floating point number.

zero_point_energy                              :float
    unit: hartrees/particle
    gives the zero point energy of the system

vibrational_thermal_contributions              : dict {str : tuple(str,float)}
    keys:
        "Thermal_Energy"
            unit : kcal/mol
            returns a list of tuples with the the name : str of the of the contribution at index 0 and the value : float at index 0
        "CV" (specific Heat)
            unit : cal/(mol * kelvin)
            returns a list of tuples with the the name : str of the of the contribution at index 0 and the value : float at index 0
        "S" (Entropy)
            unit : cal/(mol * kelvin)
            returns a list of tuples with the the name : str of the of the contribution at index 0 and the value : float at index 0
    
Methods
-------
`get_thermochemistry_properties()`
Assigns the thermochemistry properties
    
    Parameters
    ----------
        index : int
            The index of the starting line for the thermochemistry section in an opt freq gaussian job

    Returns
    -------
        None
            Assigns values to the following attributes:
            zero_point_correction                          : float
            thermal_correction_to_energy                   : float
            thermal_correction_to_enthalpy                 : float
            thermal_correction_to_gibbs_free_energy        : float
            sum_of_electronic_and_zero_point_energies      : float
            sum_of_electronic_and_thermal_energies         : float
            sum_of_electronic_and_thermal_enthalpies       : float
            sum_of_electronic_and_thermal_free_energies    : float
            zero_point_energy                              : float
            vibrational_thermal_contributions 

input_file_maker

Functions

Classes

xyz_atom an atom with x, y, and z coordinates

Attributes
----------
x_val : float
    x postion
y_val : float
    y postion
z_val : float
    z postion
atom_type : str
    the atomic coded for an atom i.e. C for carbon

Methods
-------

`as_string()`
returns a formatted string of atom type and xyz data

    Parameters
    ----------
    None

    Returns
    -------
    A formatted string of atom type and xyz data

xyz_molecule a list of xyz_atoms

Attributes
----------
    atom_list : list[xyz_atom]

Methods
-------

`as_string()`
returns a formatted string of atom type and xyz data

    Parameters
    ----------
    None

    Returns
    -------
    A formatted string of atom type and xyz data for each atom in the molecule on a new line
    """

`add_atom()`
adds an atom to the atom list
    
    Parameters
    ----------
    new_atom (xyz_atom)

    Returns
    -------
    None

g16_input A formatting object for g16_inputs

Attributes
----------

checkpoint : str
    The name of the checkpoint file
file_name : str
    The name of the associated input file
geometry : xyz_molecule
    The systems geometry information 
mem : int
    The memory usage of the calculation in GB. default is 1
nproc : int
    the number of processors used in the cacluation the default is 36
input_line : str
    The input line of the input file
extra : str
    Any information that may come after the geometry section
title_card : str
    The Title card of the input file
charge : charge
    The charge of the system
spin_mult : int
    The spin multiplicity of the system

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ben_sci_tools-0.0.5.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

ben_sci_tools-0.0.5-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file ben_sci_tools-0.0.5.tar.gz.

File metadata

  • Download URL: ben_sci_tools-0.0.5.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for ben_sci_tools-0.0.5.tar.gz
Algorithm Hash digest
SHA256 2265058a37fe706999760f16822e457dacaaae730ef4e906d17e399497c704bc
MD5 d398e2f99d64ce2e1794b049872617e0
BLAKE2b-256 ae28de7cfc5dcbd176ffccb05d726ee7b6c46191ca6492d8356df776ff2757cd

See more details on using hashes here.

File details

Details for the file ben_sci_tools-0.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for ben_sci_tools-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 ba47b43fea92a69c10afd9f5f13725a1c34da4fbd8829fd838827a061d6bf8a1
MD5 8309ce5d67eef769f8cbce62de3c5147
BLAKE2b-256 5bc81f87556e60d77fb5e88ae9075950d3242d171bf595ed9dfb3bf32a3fd822

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page