Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 23 additions & 15 deletions .github/workflows/pytest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,42 +4,50 @@ on:
push:
branches: [ master ]
paths:
- '.github/workflows/pytest.yml'
- 'morphct/**'
- morphct/**
- environment.yml
- .github/workflows/pytest.yml
pull_request:
branches: [ master ]
paths:
- '.github/workflows/pytest.yml'
- 'morphct/**'
# Allows workflow to be manually triggered
- morphct/**
- environment.yml
- .github/workflows/pytest.yml

workflow_dispatch:

jobs:
pytest:
runs-on: ubuntu-latest
if: github.event.pull_request.draft == false
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: ['3.7']

runs-on: ${{ matrix.os }}

steps:
- name: Check out repository
uses: actions/checkout@v2
uses: actions/checkout@v4

- name: Build environment
uses: conda-incubator/setup-miniconda@v2
uses: mamba-org/setup-micromamba@v2
with:
environment-file: environment.yml
miniforge-variant: Mambaforge
miniforge-version: 4.9.2-4
use-mamba: true
create-args: >-
python=${{ matrix.python-version }}

- name: Install package
shell: bash -l {0}
run: pip install .
run: python -m build && pip install dist/*.whl

- name: Run pytest with coverage report
shell: bash -l {0}
run: python -m pytest --cov=./ --cov-report=xml -v
run: python -m pytest -rs -v --cov=./ --cov-report=xml

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.xml
26 changes: 13 additions & 13 deletions environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,20 @@ channels:
dependencies:
- blas=*=openblas
- cython=0.29
- ele=0.2.0
- freud=2.6.2
- gsd=2.4.2
- h5py=2.10
- hdf5=1.10
- ele
- freud
- gsd
- h5py<3.0
- hdf5
- libcint=4
- matplotlib=3.4.2
- numpy=1.21
- openbabel=3.1.1
- pip=21.0.1
- pyscf=1.7.6
- matplotlib
- numpy
- openbabel
- pip
- pyscf<2.0
- python=3.7
- scipy=1.7
- signac=1.6.0
- signac-flow=0.13.0
- scipy
- pytest
- pytest-cov
- pip:
- build
32 changes: 19 additions & 13 deletions morphct/__init__.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,23 @@
from morphct.chromophores import Chromophore
from morphct.mobility_kmc import Carrier
from morphct.__version__ import __version__
from morphct import (chromophores, execute_qcc, helper_functions, kmc_analyze,
mobility_kmc, transfer_integrals)
from morphct import (
chromophores,
execute_qcc,
helper_functions,
kmc_analyze,
mobility_kmc,
transfer_integrals
)

__all__ = [
"__version__",
"Chromophore",
"Carrier",
"chromophores",
"execute_qcc",
"helper_functions",
"kmc_analyze",
"mobility_kmc",
"transfer_integrals",
]
"Chromophore",
"Carrier",
"chromophores",
"execute_qcc",
"helper_functions",
"kmc_analyze",
"mobility_kmc",
"transfer_integrals",
]

__version__ = "0.5.1"
1 change: 0 additions & 1 deletion morphct/__version__.py

This file was deleted.

168 changes: 84 additions & 84 deletions morphct/chromophores.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import sys
from warnings import warn

import ele
from ele import element_from_symbol
import freud
from openbabel import openbabel
from openbabel import pybel
Expand Down Expand Up @@ -229,7 +229,7 @@ def get_chromo_ids_smiles(snap, smarts_str, conversion_dict=None):
if conversion_dict is not None:
element = conversion_dict[snap.particles.types[typeid]]
else:
element = ele.element_from_symbol(snap.particles.types[typeid])
element = element_from_symbol(snap.particles.types[typeid])
a.SetAtomicNum(element.atomic_number)
a.SetVector(*[float(x) for x in unwrapped_positions[i]])

Expand Down Expand Up @@ -335,90 +335,90 @@ def set_neighbors_voronoi(chromo_list, snap, conversion_dict=None, d_cut=10):


conversion_dict = {
"S1": ele.element_from_symbol("S"),
"H1": ele.element_from_symbol("H"),
"C5": ele.element_from_symbol("C"),
"C1": ele.element_from_symbol("C"),
"C4": ele.element_from_symbol("C"),
"C6": ele.element_from_symbol("C"),
"C8": ele.element_from_symbol("C"),
"C9": ele.element_from_symbol("C"),
"C3": ele.element_from_symbol("C"),
"C7": ele.element_from_symbol("C"),
"C2": ele.element_from_symbol("C"),
"C10": ele.element_from_symbol("C"),
"S1": element_from_symbol("S"),
"H1": element_from_symbol("H"),
"C5": element_from_symbol("C"),
"C1": element_from_symbol("C"),
"C4": element_from_symbol("C"),
"C6": element_from_symbol("C"),
"C8": element_from_symbol("C"),
"C9": element_from_symbol("C"),
"C3": element_from_symbol("C"),
"C7": element_from_symbol("C"),
"C2": element_from_symbol("C"),
"C10":element_from_symbol("C"),
}


amber_dict = {
"c": ele.element_from_symbol("C"),
"c1": ele.element_from_symbol("C"),
"c2": ele.element_from_symbol("C"),
"c3": ele.element_from_symbol("C"),
"ca": ele.element_from_symbol("C"),
"cp": ele.element_from_symbol("C"),
"cq": ele.element_from_symbol("C"),
"cc": ele.element_from_symbol("C"),
"cd": ele.element_from_symbol("C"),
"ce": ele.element_from_symbol("C"),
"cf": ele.element_from_symbol("C"),
"cg": ele.element_from_symbol("C"),
"ch": ele.element_from_symbol("C"),
"cx": ele.element_from_symbol("C"),
"cy": ele.element_from_symbol("C"),
"cu": ele.element_from_symbol("C"),
"cv": ele.element_from_symbol("C"),
"h1": ele.element_from_symbol("H"),
"h2": ele.element_from_symbol("H"),
"h3": ele.element_from_symbol("H"),
"h4": ele.element_from_symbol("H"),
"h5": ele.element_from_symbol("H"),
"ha": ele.element_from_symbol("H"),
"hc": ele.element_from_symbol("H"),
"hn": ele.element_from_symbol("H"),
"ho": ele.element_from_symbol("H"),
"hp": ele.element_from_symbol("H"),
"hs": ele.element_from_symbol("H"),
"hw": ele.element_from_symbol("H"),
"hx": ele.element_from_symbol("H"),
"f": ele.element_from_symbol("F"),
"cl": ele.element_from_symbol("Cl"),
"br": ele.element_from_symbol("Br"),
"i": ele.element_from_symbol("I"),
"n": ele.element_from_symbol("N"),
"n1": ele.element_from_symbol("N"),
"n2": ele.element_from_symbol("N"),
"n3": ele.element_from_symbol("N"),
"n4": ele.element_from_symbol("N"),
"na": ele.element_from_symbol("N"),
"nb": ele.element_from_symbol("N"),
"nc": ele.element_from_symbol("N"),
"nd": ele.element_from_symbol("N"),
"ne": ele.element_from_symbol("N"),
"nf": ele.element_from_symbol("N"),
"nh": ele.element_from_symbol("N"),
"no": ele.element_from_symbol("N"),
"o": ele.element_from_symbol("O"),
"oh": ele.element_from_symbol("O"),
"os": ele.element_from_symbol("O"),
"ow": ele.element_from_symbol("O"),
"p2": ele.element_from_symbol("P"),
"p3": ele.element_from_symbol("P"),
"p4": ele.element_from_symbol("P"),
"p5": ele.element_from_symbol("P"),
"pb": ele.element_from_symbol("P"),
"pc": ele.element_from_symbol("P"),
"pd": ele.element_from_symbol("P"),
"pe": ele.element_from_symbol("P"),
"pf": ele.element_from_symbol("P"),
"px": ele.element_from_symbol("P"),
"py": ele.element_from_symbol("P"),
"s": ele.element_from_symbol("S"),
"s2": ele.element_from_symbol("S"),
"s4": ele.element_from_symbol("S"),
"s6": ele.element_from_symbol("S"),
"sh": ele.element_from_symbol("S"),
"ss": ele.element_from_symbol("S"),
"sx": ele.element_from_symbol("S"),
"sy": ele.element_from_symbol("S"),
"c": element_from_symbol("C"),
"c1": element_from_symbol("C"),
"c2": element_from_symbol("C"),
"c3": element_from_symbol("C"),
"ca": element_from_symbol("C"),
"cp": element_from_symbol("C"),
"cq": element_from_symbol("C"),
"cc": element_from_symbol("C"),
"cd": element_from_symbol("C"),
"ce": element_from_symbol("C"),
"cf": element_from_symbol("C"),
"cg": element_from_symbol("C"),
"ch": element_from_symbol("C"),
"cx": element_from_symbol("C"),
"cy": element_from_symbol("C"),
"cu": element_from_symbol("C"),
"cv": element_from_symbol("C"),
"h1": element_from_symbol("H"),
"h2": element_from_symbol("H"),
"h3": element_from_symbol("H"),
"h4": element_from_symbol("H"),
"h5": element_from_symbol("H"),
"ha": element_from_symbol("H"),
"hc": element_from_symbol("H"),
"hn": element_from_symbol("H"),
"ho": element_from_symbol("H"),
"hp": element_from_symbol("H"),
"hs": element_from_symbol("H"),
"hw": element_from_symbol("H"),
"hx": element_from_symbol("H"),
"f": element_from_symbol("F"),
"cl": element_from_symbol("Cl"),
"br": element_from_symbol("Br"),
"i": element_from_symbol("I"),
"n": element_from_symbol("N"),
"n1":element_from_symbol("N"),
"n2":element_from_symbol("N"),
"n3":element_from_symbol("N"),
"n4": element_from_symbol("N"),
"na": element_from_symbol("N"),
"nb": element_from_symbol("N"),
"nc": element_from_symbol("N"),
"nd": element_from_symbol("N"),
"ne": element_from_symbol("N"),
"nf": element_from_symbol("N"),
"nh": element_from_symbol("N"),
"no": element_from_symbol("N"),
"o": element_from_symbol("O"),
"oh": element_from_symbol("O"),
"os": element_from_symbol("O"),
"ow": element_from_symbol("O"),
"p2": element_from_symbol("P"),
"p3": element_from_symbol("P"),
"p4": element_from_symbol("P"),
"p5": element_from_symbol("P"),
"pb": element_from_symbol("P"),
"pc": element_from_symbol("P"),
"pd": element_from_symbol("P"),
"pe": element_from_symbol("P"),
"pf": element_from_symbol("P"),
"px": element_from_symbol("P"),
"py": element_from_symbol("P"),
"s": element_from_symbol("S"),
"s2": element_from_symbol("S"),
"s4": element_from_symbol("S"),
"s6": element_from_symbol("S"),
"sh": element_from_symbol("S"),
"ss": element_from_symbol("S"),
"sx": element_from_symbol("S"),
"sy": element_from_symbol("S"),
}
33 changes: 33 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
[build-system]
requires = ["setuptools>=61.2", "versioningit"]
build-backend = "setuptools.build_meta"

[project]
name = "MorphCT"
description = "Using the Marcus Hoping model, caclulates charge mobility from atomistic molecular dynamics morphologies."
readme = "README.md"
authors = [
{name = "Eric Jankowski", email = "ericjankowski@boisestate.edu"}
]
license= {text = "GPLv3"}
classifiers=[
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
]
urls = {Homepage = "https://github.com/cmelab/morphct"}
requires-python = ">=3.7"
dynamic = ["version"]

[tool.setuptools]
zip-safe = false
include-package-data = true
license-files = ["LICENSE"]

[tool.setuptools.packages.find]
where = ["."]
include = ["morphct*"]
exclude = ["tests*"]

[tool.setuptools.dynamic]
version = {attr = "morphct.__version__"}
Loading
Loading