Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
faf5a92
Updated functions and formatting
Nov 15, 2024
10dff00
Split energy and data functions
Nov 22, 2024
2b1d8b2
Updated energy function
Nov 24, 2024
b89eb16
added unittest for energy
a-angel-s Nov 27, 2024
44217a0
Added fractional activation
Nov 29, 2024
c30a450
Added unittest for fractional activation
a-angel-s Dec 5, 2024
0fbc7e4
Added unittest for fractional activation
a-angel-s Dec 5, 2024
a7a5a2a
Updated energy and fractional activation
Dec 5, 2024
475408a
Formatting
Dec 5, 2024
89ab4a9
Fixed fractional activation when missing shifts
Dec 10, 2024
5ff5bbe
Added gym environment
Dec 13, 2024
903eef8
Merge branch 'dev' of https://github.com/maccallumlab/nmr into dev
a-angel-s Dec 19, 2024
5d71f29
Added some text adventure examples
Dec 20, 2024
2a88335
Energy checks for activation
abbie-p Jan 14, 2025
ade1595
Added visualization components
abbie-p Jan 28, 2025
c35b655
Changes to shift/atom correlation and data pickling
abbie-p Jan 28, 2025
7f25ea4
added connectivity and updated generate_data
a-angel-s Feb 14, 2025
d2c3180
Added fake histories and distributed connectivity param
abbie-p Feb 21, 2025
d5d02c0
Added agent to generate synthetic histories, and distributed some fun…
abbie-p Mar 5, 2025
e8ba0d8
Value to go and energy transformation
abbie-p Mar 7, 2025
c31b0b7
added nmr_transformer
a-angel-s Mar 10, 2025
7e6e0c7
Merge branch 'dev' of https://github.com/maccallumlab/nmr into dev
a-angel-s Mar 10, 2025
42906d1
Attempt to scale NOEs and restraints
abbie-p Mar 12, 2025
9832f4f
Connected energy to the NOE distance scale
abbie-p Mar 13, 2025
469994f
Data processing
abbie-p Mar 16, 2025
019a7b6
Updated fake histories and nmr inputs
abbie-p Mar 20, 2025
9149a76
Initial implementation of training
jlmaccal Mar 29, 2025
7e1fe64
padded version of transformer
jlmaccal Mar 29, 2025
201fc1a
Update training
jlmaccal Mar 29, 2025
538ac16
Implement train-test split
jlmaccal Mar 29, 2025
caef94d
Add device support
jlmaccal Apr 7, 2025
3819859
Merge branch 'padded' into dev
jlmaccal Apr 7, 2025
9fc7eda
Linear mapping
abbie-p May 23, 2025
140e713
Scaling visualization
abbie-p May 23, 2025
f227b21
Coordinate scaling and optimization
abbie-p May 23, 2025
6d38666
Unittesting for updates
abbie-p May 25, 2025
44df990
Sample PyG work for triples
abbie-p Jul 11, 2025
13682a7
Modified triple out message passing and overall in/self/out update calls
abbie-p Jul 30, 2025
c55fa56
Split triple node types and modified setup to work with batching
abbie-p Aug 21, 2025
eb04c95
Organization into composable units with value and policy
abbie-p Oct 1, 2025
8821099
Pkl example with single step
abbie-p Nov 10, 2025
5f8d8b6
Training loop and visualization
abbie-p Nov 10, 2025
d62b09f
Reorganize and cleanup
jlmaccal Nov 12, 2025
ebdd27c
Remove pkl file
jlmaccal Nov 12, 2025
31187eb
Add normalization layer
jlmaccal Nov 12, 2025
a35c957
Updated architecture
jlmaccal Nov 14, 2025
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
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@ __pycache__/
*.py[cod]
*$py.class

# Pickled data and visualization
*.pkl
!fake_histories_r4_0.pkl
*.png
runs/
*.pdb

# C extensions
*.so

Expand Down
46 changes: 45 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,45 @@
# nmr
# nmr

NMR Chemical Shift Assignment using Graph Neural Networks and Reinforcement Learning

## Quick Start

### Generating Training Data

Create synthetic datasets for supervised pre-training:

```bash
# Generate a dataset
python scripts/generate_dataset.py --num-resid 10 --output dataset_10.pkl

# Generate training histories
python scripts/generate_histories.py \
--dataset dataset_10.pkl \
--num-histories 100
```

For detailed documentation, see [docs/fake-data-guide.md](docs/fake-data-guide.md)

## Documentation

- **[Fake Data Generation Guide](docs/fake-data-guide.md)** - Complete guide to generating synthetic training data
- **[Development Guide](docs/development-guide.md)** - Setup, development patterns, and testing
- **[Architecture Documentation](docs/architecture.md)** - System architecture and design
- **[Project Overview](docs/project-overview.md)** - Executive summary

## Project Structure

```
nmr/
├── nmr/ # Main package
│ ├── construct.py # Graph construction
│ ├── models/ # GNN architecture
│ └── env/ # RL environment
├── scripts/ # Executable scripts
│ ├── generate_dataset.py # Dataset generation
│ ├── generate_histories.py # History generation
│ ├── train_gnn.py # Training loop
│ └── visualize_data.py # Data visualization
├── tests/ # Unit tests
└── docs/ # Documentation
```
161 changes: 0 additions & 161 deletions fake_data.py

This file was deleted.

32 changes: 32 additions & 0 deletions nmr/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
"""NMR chemical shift assignment package."""

from nmr.construct import construct_graph
from nmr.models import NMRNet
from nmr.nmr_gym.fake_data import FakeDataGenerator
from nmr.nmr_gym.energy import Energy
from nmr.nmr_gym.assignment_order import FractionalActivation
from nmr.nmr_gym.gym_env import GymEnv
from nmr.nmr_gym.fake_histories import FakeHistoryGenerator
from nmr.nmr_gym.data_structures import Connectivity, HSQCPeak, NOEPeak, Protein
from nmr.nmr_gym.io import load_dataset, load_histories, save_dataset, save_histories
from nmr.nmr_gym.state import create_state_dict, validate_state_dict

__all__ = [
"construct_graph",
"NMRNet",
"FakeDataGenerator",
"Energy",
"FractionalActivation",
"GymEnv",
"FakeHistoryGenerator",
"Connectivity",
"HSQCPeak",
"NOEPeak",
"Protein",
"load_dataset",
"load_histories",
"save_dataset",
"save_histories",
"create_state_dict",
"validate_state_dict",
]
Loading