Protein Tinder
The easy way to annotate proteins
A mobile-friendly, web-based platform for visualizing and annotating 3D protein structures using 3Dmol.js and NGL.js. Built with Django, this app supports protein annotation through intuitive gestures and interactive tools.
π Use Cases
1. Swipe Annotations
To start with swipe annotations upload your compressed pdb folder (zip) and click on the folder name in the folder list.
- π Swipe right β Mark as Correct
- π Swipe left β Mark as Wrong
- π Swipe down β Mark as Unsure
Annotations are saved to a MySQL database and can be exported as CSV from the web interface.
2. Domain Annotation
The upload process is the same for swipe/domain annotations. In the folder list click on `βοΈDomains`.
- π― Drag across the domain bar to define regions
- π·οΈ Name domains using the text field below
- π±οΈ Adjust domain boundaries by dragging
πΎ Export zip:
- CSV: One file per protein
- FASTA: Each domain as a sequence
- PDB: Each domain as a separate PDB
To download this zip: 1) Go to πRecap 2) make sure you are on the Domain Overview 3) Download using the download button in red: π¦ Download
Domain Number,Start Residue,End Residue,Predicted Domain
1,1,181,XD2
2,182,294,XD3
3. Domain Correction
To start with domain correction annotations upload your compressed pdb folder (zip) together with you domain annotations in csv format. The pdb filename and csv filename have to be identical except for the extension. After succesfull uploading, click on the folder name in the folder list to start domain correction annotations.
- β Mark incorrect domain entries
- π¦ Upload
.ziparchives with.pdband.csvfiles - βοΈ Enable "Include architecture data?" during upload
π Each .csv must match its .pdb filename (e.g., protein_id.pdb and protein_id.csv).
π§ͺ How to Use
- π Create an account
- π€ Upload a
.zipcontaining your.pdbfiles - βοΈ Add an annotation title and description
- βοΈ Annotate proteins using swipe or domain modes
- π₯ Export your annotations as
.csvor.fasta
Note: The filename of each.pdbserves as itsprotein_id.
β¨ Features
- 𧬠Interactive 3D protein viewer
- π± Mobile and desktop support
- π Overview dashboard
- π User login & registration
- π₯ User-to-user interaction
- πΎ Export to CSV, FASTA, and PDB
π οΈ Tech Stack
- Backend: Python, Django
- Database: MySQL
- Frontend: HTML, JavaScript, 3Dmol.js, NGL.js
- Deployment: Docker
βοΈ Run Locally
git clone https://github.com/victornemeth/ProteinTinder.git
cd ProteinTinder
docker compose up -d --build
MYSQL_DATABASE=annotate_db
MYSQL_USER=annotate_user
MYSQL_PASSWORD=very_secure_password
MYSQL_ROOT_PASSWORD=another_very_secure_password
DJANGO_SECRET_KEY=another_another_very_secure_password
DJANGO_DEBUG=True # For local use debug mode is recommended.
Visit localhost:8000 in your browser.
π Note
The official website is deployed via NPM. This repository is for local development.