Inspiration
The inspiration for this project directly comes down from my wife who at least once a day talks or looks into PubChem (https://pubchem.ncbi.nlm.nih.gov/) , and RCSB (https://www.rcsb.org/), and then start working on how things actually work in-silico. I simply wanted to build something for the computation biology community with using popular docking engine (https://github.com/ccsb-scripps/AutoDock-Vina).
What it does
It takes two parameter one being Receptor (PDB) either from file upload, or PDB ID (In this case it fetches directly from RCSB), and another Ligand (SDF / mol2) either from file upload or CID (In this case it directly fetches from PubChem). It then goes on to calculate values, and provide a formatted PDF along with references. Result consists of values such as RMSD Validation (Pocket Distance), along with parameters such as PIC50, IC50, and deltaG (Binding affinity parameters). It also shows multiple docking poses in 3D view. User can also view the results of previous run experiments for up to 24 hours.
How we built it
I am using a AutoDock Vina docking engine as the core components (https://github.com/ccsb-scripps/AutoDock-Vina). I have used FastAPI to create a API endpoints which does the major lifting. And on the frontend side, I am using a nextjs hosted in vercel. For storing a larger files such user upload or fetched from PubChem, or RCSB and computed PDB files i am using S3 bucket. Also for the caching of the data for upto 24 hours i am using a dynamo db.
Challenges we ran into
One of the major challenges i faced during the build phase was validation of the test results as compared to experimental values. I had to dig in into alot of per-reviewed journal to benchmark the test.
Accomplishments that we're proud of
I am proud of the collaboration between the two of us. My wife knows her computational biology stuff, but hasn't really worked with web apps, and vice versa for me. We collaborated, created something she actually can use on a smaller scale (at least for now).
What we learned
We have learned multiple of things such as how to tune vina to work in low-resources env (We were using a smaller instances to test APIs) along 3D viewer in web app.
What's next for Receptor-Mapper
Next step will be to create a job based deployment. Rest API receives the parameters form UI, and have some sort of queuing mechanism (SQS), and have ECS tasks run those computation. This way i can use a smaller instances for API endpoints, and use actual heavy workloads for the actual computation task. This provides flexibility to use bigger and better instance, and just be in budget. Also from the user prospective integrate newer ML Models for Drug Discovery.
Built With
- amazon-dynamodb
- amazon-web-services
- autodock
- fastapi
- nextjs
- python
- s3
- v0
- vercel
- vina
Log in or sign up for Devpost to join the conversation.