DAminoMuta / README.md
auralray's picture
Upload folder using huggingface_hub
acbef3a verified
# AI-based D-amino acid substitution for optimizing antimicrobial peptides to treat multidrug-resistant bacterial infection
This repository contains the code for the paper "AI-based D-amino acid substitution for optimizing antimicrobial peptides to treat multidrug-resistant bacterial infection"
## Requirements
```
mamba_ssm==2.2.4
numpy==1.26.3
pandas==2.1.4
rdkit==2024.3.5
scikit_learn==1.4.1.post1
scipy==1.13.0
torch==2.2.0
torchmetrics==1.3.1
torchvision==0.17.0
```
You can install them with `pip install -r requirements.txt`
Additionally, `mamba_ssm` is optional since it is not used for our final method.
You can comment `mamba_ssm==2.2.4` in `requirements.txt` and `from mamba_ssm import Mamba` in `network.py` out if you don't want to install it and avoid use `--q-encoder mamba`.
## Training
There are two .py file for training: `main.py` and `main_simple.py`.
`main.py`: Can train model with Classification and Regression tasks. Prefered with regression task.
`main_simple.py`: Can ONLY train model with Classification task. Prefered with classification task. `simple` means a simple dataset that direct loads pre-processed data.
example:
```
python main-simple.py \
--q-encoder cnn \ # Encoder, can be cnn, lstm, gru, mamba, mha
--channels 16 \ # Encoder channels
--side-enc lstm \ # Side sequence Encoder, only lstm implemented, only use with cnn encoder
--fusion att \ # Fusion method, can be att, mlp or diff
--task cls \ # Task, can be cls or reg
--loss ce \ # Loss, can be ce or mse, some other losses can be found in code
--batch-size 32 \ # Batch size
--epochs 35 \ # Epochs
--gpu 0 \ # GPU index to use, -1 for cpu
# ===CNN only options=== \
--pcs \ # Enable protease cleavage site dyeing for input pictures
--resize 768 \ # Resize input pictures, can be 1 or 2 numbers like 768 or 768 512
# ===main_simple.py only options=== \
--llm-data # Use LLM augmented training data
```
Corresponding model weight checkpoints will be saved in the subdirectory of `run-cls` or `run-reg`, e.g. `/run-cls/cnn-att-16-lstm-pcs-simple-llm-768-oneway-ce-32-0.001-35/`
For more arguments, please refer to the code of `main.py` or `main_simple.py`
## Inference
You can simple replace `main.py` with `infer.py` in your training command to do inference. Remember to add `--simple` if you used checkpoints trained from `main_simple.py`
For case study scanning, please use `infer_case.py` with an additional argument `--case r2` or `--case YOUR_PEPTIDE_SEQUENCE`
Inference results will be saved in the weights directory in `csv` format, e.g. `/run-cls/cnn-att-16-lstm-pcs-simple-llm-768-oneway-ce-32-0.001-35/preds_test.csv`