Skip to content

Commit

Permalink
Merge pull request #260 from JacksonBurns/aimsim-v2.1.0
Browse files Browse the repository at this point in the history
`AIMSim` v2.1.0 updates
  • Loading branch information
JacksonBurns authored Aug 16, 2023
2 parents 6995c1a + 161da49 commit 5e4febd
Show file tree
Hide file tree
Showing 58 changed files with 7,678 additions and 1,077 deletions.
31 changes: 0 additions & 31 deletions .github/workflows/check_pypi_build.yml

This file was deleted.

98 changes: 98 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
name: Run Tests
on:
schedule:
- cron: '0 8 * * 1-5'
push:
branches: [ master ]
pull_request:
branches: [ master ]

workflow_dispatch:

jobs:
code-format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup python
uses: actions/setup-python@v1
with:
python-version: '3.9'
architecture: x64
- name: Install Dependencies
run: |
python -m pip install rdkit-pypi
python -m pip install networkx==2.1
python -m pip install pycodestyle autopep8
python -m pip install -r requirements.txt
python -m pip install -e .
python -m pip install sphinx sphinx-rtd-theme m2r mistune==0.8.4
- name: Check Errors
run: |
pycodestyle --statistics --count --max-line-length=150 --show-source --exclude=interfaces/UI/libraries .
build:
strategy:
fail-fast: false
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11']
os: [ubuntu-latest, windows-latest, macos-latest]

runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash -el {0}
name: ${{ matrix.os }} Python ${{ matrix.python-version }} Subtest
steps:
- uses: actions/checkout@v3
- uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
- name: Install Dependencies
run: |
python -m pip install openpyxl
python -m pip install -r requirements.txt
python -m pip install -e .
python -m pip install coverage
- name: Run Tests
run: |
coverage run --source=. --omit=interfaces/*,aimsim/__main__.py,aimsim/tasks/__init__.py,aimsim/ops/__init__.py,aimsim/chemical_datastructures/__init__.py,aimsim/utils/__init__.py,setup.py,tests/*,aimsim/__init__.py,aimsim/utils/plotting_scripts.py -m unittest discover
- name: Show Coverage
run: |
coverage report -m
pypi:
name: Build and publish Python 🐍 distributions 📦 to PyPI
runs-on: ubuntu-latest
# only run if the tests pass
needs: build
# run only on pushes to master on AIMSim
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository == 'VlachosGroup/AIMSim'}}
steps:
- uses: actions/checkout@master
- name: Set up Python 3.10
uses: actions/setup-python@v3
with:
python-version: "3.10"
- name: Install pypa/build
run: >-
python -m
pip install
build
--user
- name: Build a binary wheel and a source tarball
run: >-
python -m
build
--sdist
--wheel
--outdir dist/
.
- name: Publish distribution 📦 to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PYPI_API_TOKEN }}
skip-existing: true
verbose: true
31 changes: 0 additions & 31 deletions .github/workflows/format_code.yml

This file was deleted.

34 changes: 0 additions & 34 deletions .github/workflows/mordred_check.yml

This file was deleted.

42 changes: 0 additions & 42 deletions .github/workflows/run_tests.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# vscode configuration files
*.json
.vscode

# intellij configuration files
.idea/*
Expand Down
12 changes: 10 additions & 2 deletions AIMSim-demo.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,21 @@
"This notebook demonstrates the key uses of _AIMSim_ as a graphical user interface, command line tool, and scripting utility. For detailed explanations and to view the source code for _AIMSim_, visit our [documentation page](https://vlachosgroup.github.io/AIMSim/)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Installing _AIMSim_\n",
"For users with Python already in use on their devices, it is _highly_ recommended to first create a virtual environment before installing _AIMSim_. This package has a large number of dependencies with only a handful of versions supported, so conflicts are likely unless a virtual environment is used.\n",
"\n",
"For new Python users, the authors recommended installing anaconda navigator to manage dependencies for _AIMSim_ and make installation easier overall. Once anaconda navigator is ready, create a new environment with Python 3.7, open a terminal or command prompt in this environment, and follow the instructions below. \n",
"For new Python users, the authors recommended installing anaconda navigator to manage dependencies for _AIMSim_ and make installation easier overall. Once anaconda navigator is ready, create a new environment with Python 3.8 or newer, open a terminal or command prompt in this environment, and follow the instructions below. \n",
"\n",
"We reccomend installing _AIMSim_ using the commands shown below (omit exclamation points and the %%capture, unless you are running in a Jupyter notebook):"
"We recommend installing _AIMSim_ using the commands shown below (omit exclamation points and the %%capture, unless you are running in a Jupyter notebook):"
]
},
{
Expand Down Expand Up @@ -195,6 +200,9 @@
"global_random_seed (int / str): # int or 'random'\n",
" \n",
"tasks:\n",
" get_extended_similarity_indices:\n",
" # Extended Similarity Indices has no options\n",
"\n",
" compare_target_molecule:\n",
" target_molecule_smiles (str):\n",
" draw_molecule (bool): # If true, strucures of target, most and least similar molecules are displayed\n",
Expand Down
21 changes: 13 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,16 +47,17 @@ When proposing a novel reaction it is essential for the practicing chemist to ev
Many of the substrates appear similar to one another and thereby redundant, but in reality the core sulfone moiety and the use of the same coupling partner when evaluating functional group tolerance accounts for this apparent shortcoming. Also of note is the region of high similarity along the diagonal where the substrates often differ by a single halide heteratom or substitution pattern.

## Installing AIMSim
`AIMSim` can be installed with a single command:
`AIMSim` can be installed with a single command using Python's package manager `pip`:
`pip install aimsim`
This command also installs the required dependencies. It is recommended to install `AIMSim` in a separate virtual environment.
This command also installs the required dependencies.
It is recommended to install `AIMSim` in a virtual environment with [`conda`](https://docs.conda.io/en/latest/) or Python's [`venv`](https://docs.python.org/3/library/venv.html).

_Optional:_ Previous versions of AIMSim provided direct support for the descriptors provided in the `mordred` package. Unforunately, `mordred` is no longer recieving updates and causes significant depdendency conflicts. Because of this, it is an _optional_ add-on to `AIMSim` that is only compatible with Python 3.8. To install with `mordred` support, use `pip install 'aimsim[mordred]'` (note the single quotes, necessary in `zsh`).

Unit tests from previous versions of `AIMSim` have been kept but are not actively maintained due to the limitations above. Use `mordred` at your own risk.
### Note for mordred-descriptor
AIMSim v1 provided direct support for the descriptors provided in the `mordred` package but unfortunately the original `mordred` is now abandonware.
The **unofficial** [`mordredcommunity`](https://github.com/JacksonBurns/mordred-community) is now used in version 2.1 and newer to deliver the same features but with support for modern Python.

## Running AIMSim
`AIMSim` is compatible with Python 3.7 to 3.9.
`AIMSim` is compatible with Python 3.8 to 3.11.
Start `AIMSim` with a graphical user interface:

`aimsim`
Expand Down Expand Up @@ -117,6 +118,10 @@ Developer: Himaghna Bhattacharjee, Vlachos Research Lab. ([LinkedIn](www.linkedi

Developer: Jackson Burns, Don Watson Lab. ([Personal Site](https://www.jacksonwarnerburns.com/))

## `AIMSim` in the Literature
- [Applications of Artificial Intelligence and Machine Learning Algorithms to Crystallization](https://doi.org/10.1021/acs.chemrev.2c00141)
- [Recent Advances in Machine-Learning-Based Chemoinformatics: A Comprehensive Review](https://doi.org/10.3390/ijms241411488)

## Developer Notes
Issues and Pull Requests are welcomed! To propose an addition to `AIMSim` open an issue and the developers will tag it as an _enhancement_ and start discussion.

Expand All @@ -141,12 +146,12 @@ Be sure to bump the version in `__init__.py`.
## Citation
If you use this code for scientific publications, please cite the following paper.

Bhattacharjee, H.҂; Burns, J.҂; Vlachos, D.G. (2021): AIMSim: An Accessible Cheminformatics Platform for Similarity Operations on Chemicals Datasets. ChemRxiv. Preprint. https://doi.org/10.26434/chemrxiv-2022-nw6f5
Himaghna Bhattacharjee, Jackson Burns, Dionisios G. Vlachos, AIMSim: An accessible cheminformatics platform for similarity operations on chemicals datasets, Computer Physics Communications, Volume 283, 2023, 108579, ISSN 0010-4655, https://doi.org/10.1016/j.cpc.2022.108579.

## License
This code is made available under the terms of the _MIT Open License_:

Copyright (c) 2020 Himaghna Bhattacharjee & Jackson Burns
Copyright (c) 2020-2027 Himaghna Bhattacharjee & Jackson Burns

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
Loading

0 comments on commit 5e4febd

Please sign in to comment.