Git Product home page Git Product logo

kevinmicha / antipasti Goto Github PK

View Code? Open in Web Editor NEW
11.0 4.0 1.0 3.96 GB

ANTIPASTI (ANTIbody Predictor of Affinity from STructural Information) is a Deep Learning model that predicts the binding affinity of antibodies from their three-dimensional structure.

Home Page: https://kevinmicha.github.io/ANTIPASTI/

License: MIT License

Jupyter Notebook 98.15% R 0.02% Python 1.83%
antibody deep-learning normal-mode-analysis

antipasti's Introduction

ANTIPASTI: interpretable prediction of antibody binding affinity exploiting Normal Modes and Deep Learning

Python 3.8 - 3.11 License: MIT Tests Docs Coverage PyPI

ANTIPASTI (ANTIbody Predictor of Affinity from STructural Information) is a Python Deep Learning method that predicts the binding affinity of antibodies from their three-dimensional structure.

Installation

Through PyPI

ANTIPASTI releases are distributed through the Python Package Index (PyPI). To install the latest version use pip:

pip install antipasti

Through Anaconda

We provide an Anaconda environment that satisfies all the dependencies in antipasti-env.yml.

git clone https://github.com/kevinmicha/ANTIPASTI
cd ANTIPASTI
conda env create -f antipasti-env.yml
conda activate antipasti-env
pip install .

Next, you can run the tests to make sure your installation is working correctly.

# While still in the ANTIPASTI directory:
pytest . 

Manually handling the dependencies

If you want to use an existing environment, just omit the Anaconda commands above:

git clone https://github.com/kevinmicha/ANTIPASTI
cd ANTIPASTI
pip install .

or if you need to install it for your user only:

python setup.py install --user 

Requirements

ANTIPASTI requires the following Python packages:

  • adabelief-pytorch
  • biopython
  • matplotlib
  • numpy
  • opencv-python
  • optuna
  • pandas
  • scikit-learn
  • torch
  • torchmetrics
  • umap-learn

Example Notebooks and Documentation

The full documentation can be found here.

Example notebooks are located in the notebooks folder:

You can download normal mode correlation maps computed at atomistic scale (instead of residue scale) here and place them in data/dccm_maps_full_ags_all_aa.

Attribution

If you use this code, please cite the paper indicated in the documentation.

antipasti's People

Contributors

kevinmicha avatar

Stargazers

Jianxiang Shi avatar  avatar  avatar Lilian Denzler avatar Luisa avatar Alexander Al-Feghali avatar hugh avatar Andreas Scheck avatar  avatar  avatar XD avatar

Watchers

Mauricio Barahona avatar  avatar  avatar  avatar

Forkers

jxshi

antipasti's Issues

Notebooks are not working

Hello!

I am trying to run your notebooks, but keep getting assertion error


AssertionError Traceback (most recent call last)
Cell In[3], line 13
10 scfv = ['4gqp', '3etb', '3gkz', '3uze', '3uzq', '3gm0', '4f9l', '6ejg', '6ejm', '1h8s', '5dfw', '6cbp', '4f9p', '5kov', '1dzb', '5j74', '5aaw', '3uzv', '5aam', '3ux9', '5a2j', '5a2k', '5a2i', '3fku', '5yy4', '3uyp', '5jyl', '1y0l', '1p4b', '3kdm', '4lar', '4ffy', '2ybr', '1mfa', '5xj3', '5xj4', '4kv5', '5vyf']
11 pathological += scfv
---> 13 preprocessed_data = Preprocessing(data_path = '/home/georgii/PycharmProjects/CSM-AB2/ANTIPASTI/data/', dccm_map_path=dccm_map_path, modes=modes, pathological=pathological, renew_maps=renew_maps, renew_residues=renew_residues, ag_agnostic=ag_agnostic, cmaps=contact_maps, cmaps_thr=cmaps_thr)

File ~/PycharmProjects/CSM-AB2/ANTIPASTI/antipasti/preprocessing/preprocessing.py:131, in Preprocessing.init(self, data_path, scripts_path, structures_path, df, modes, chain_lengths_path, dccm_map_path, residues_path, file_type_input, selection, pathological, renew_maps, renew_residues, cmaps, cmaps_thr, ag_agnostic, affinity_entries_only, stage, test_data_path, test_dccm_map_path, test_residues_path, test_structure_path, test_pdb_id, alphafold, h_offset, l_offset, ag_residues)
129 self.df_path = data_path + df
130 self.entries, self.affinity, self.df = self.clean_df()
--> 131 self.heavy, self.light, self.selected_entries = self.initialisation(renew_maps, renew_residues)
132 self.max_res_list_h, self.max_res_list_l, self.min_res_list_h, self.min_res_list_l = self.get_max_min_chains()
133 self.train_x, self.train_y, self.labels, self.raw_imgs = self.load_training_images()

File ~/PycharmProjects/CSM-AB2/ANTIPASTI/antipasti/preprocessing/preprocessing.py:453, in Preprocessing.initialisation(self, renew_maps, renew_residues)
450 heavy = np.load(self.chain_lengths_path+'heavy_lengths.npy').astype(int)
451 light = np.load(self.chain_lengths_path+'light_lengths.npy').astype(int)
--> 453 assert list(np.load(self.chain_lengths_path+'selected_entries.npy')) == selected_entries
455 for entry in selected_entries:
456 assert len(np.load(self.residues_path+entry+'.npy'))-2 == heavy[selected_entries.index(entry)] + light[selected_entries.index(entry)]

AssertionError:

P.S.
Also I had issues with data_path -- user needs to give it manually

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.