Skip to content
PaivelPublic
forked from aelashkin/DP5

About

Python workflow for DP5 and DP4 analysis of organic molecules

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

An improved version of DP5 analysis developed by Howarth (DOI:10.1039/D1SC04406K). This codebase is refactored for legibility and maintainability.

We strongly recommend using a separate python environment created via conda, uv, or other solution of your choice to run this programme. DP5 currently supports python>=3.9,<=3.11 (due to the TensorFlow dependency range).

If you do not have uv installed yet:

  • macOS (Homebrew): brew install uv
  • Linux: curl -LsSf https://astral.sh/uv/install.sh | sh (or wget -qO- https://astral.sh/uv/install.sh | sh)

To get started:

  • clone this repository using git clone https://github.com/ruslankotl/DP5.git
  • navigate to the folder on your machine
  • create and activate a compatible environment, for example uv venv && source .venv/bin/activate
  • install via uv sync
  • to also install documentation build dependencies, run uv sync --extra dev
  • run pydp4 -s <SD_FILE> -n <NMR_FILE> -w w

DP5 installs TensorFlow for neural-network shift prediction on supported platforms. On native macOS Apple Silicon only, DP5 also installs tensorflow-metal as Apple's Metal acceleration plugin; macOS Intel, Windows, and Linux installs use base TensorFlow without tensorflow-metal.

For example, run:

cd reassignments/S11
pydp4 -s S11a_.sdf S11b_.sdf -n S11_NMR -w w

NMR files are provided as a list of shifts with assignments, e.g., 153.0(any),125.6(any)

Manual NMR descriptions are strict by default. Carbon equivalence groups collapse multiple atoms into one required experimental signal, omitted atoms are excluded, and every non-omitted carbon group must be assigned exactly one 13C signal unless an allow flag is used.

Manual description format:

140.1(any),129.7(any),126.7(C10),20.3(C14,C23)

0.0(any)

C1,C3
C4,C5
C14,C23
OMIT C19,H51

Section 1 is comma-separated carbon shifts. Section 2 is comma-separated proton shifts; carbon-only callers may use 0.0(any). Later sections may contain one equivalence group per line and optional OMIT lines. Labels are element symbols plus 1-based atom indices from the supplied molecule/SDF atom order. Use --nmr-assignment-mode legacy to preserve the previous loose assignment behavior. Use --allow-extra-peaks or --allow-missing-peaks only when strict coverage should be reported as partial instead of aborting. Further documentation for workflow options is available here

Original DP5 code can be found at https://github.com/Goodman-lab/DP5

About

Python workflow for DP5 and DP4 analysis of organic molecules

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages