deepmodeling / Uni-Mol

Official Repository for the Uni-Mol Series Methods
MIT License
714 stars 126 forks source link

Running inference outside of pre-computed datasets #52

Open cyrusmaher opened 2 years ago

cyrusmaher commented 2 years ago

Dear authors,

Congratulations on Uni-Mol! This is truly exciting work 🥇

I'm writing to express interest in running inference outside of the pre-computed datasets. For example:

1.) Running docking from a pdb file + bounding box 2.) Embedding molecules from smiles 3.) Embedding proteins from pdb files

Looking at the code, it wasn't clear to me where to get started on this, but let me know if I can help.

Best wishes,

-Cyrus

Naplessss commented 2 years ago

Hi Cyrus,

Thanks for your advices, we will add more examples and demo in future updates, especailly for inferencing outiside of pre-computed datasets. For fast implements, you can change the docking demo on Colab about reading residues for target pockets to select residues in bounding box with rewriting parser and Load_from_CASF functions. And for molecules/pocket embeddings just add a additional output of CLS embedding in unimol model, you can use rdkit to generate conformations as Uni-Mol inputs. More details you can refer to appendix in our paper. It will be great and much helpful if you can contribute to Uni-Mol together with us!

Best,

cmahervir commented 2 years ago

Thank you for your reply @Naplessss! I started with getting the example notebook to run locally, but ran into a couple issues:

1.) My python version wasn't 3.7 so the unicore wheel wouldn't install at first. For myself I added a snippet to check whether the python version was 3.7 and to link to https://github.com/dptech-corp/Uni-Core/releases if not. 2.) The docking weights are downloaded to the current working directory, but then expected in "/content" 3.) When I fix these issues I get the error that it can't find the "docking_pose" task in unicore: image

Do you have advice on what to do from here?

Thanks!

-Cyrus

Naplessss commented 2 years ago

Do you already set your use dir path with --use-dir? also you can check if unimol,unicore is installed successfully.

cmahervir commented 2 years ago

Yes, --use-dir is set in unimol_binding_pose_demo.ipynb. I install unicore from 'https://github.com/dptech-corp/Uni-Core/releases/download/0.0.1/unicore-0.0.1+cu113torch1.12.1-cp37-cp37m-linux_x86_64.whl'.

Below is the output when I import unicore and print the __version__. image

For UniMol, the notebook is downloading another copy of the repo into the working directory (Uni-Mol/notebooks). It does seem to be able to find this copy of unimol using --user-dir ./unimol.