Vermeer
Generate microscopy images showing how
proteins localize inside of human cells
This is a web application implementing our Vermeer model, as described in our NeurIPS paper. Vermeer accepts as input, landmark stain microscopy images showing a human cell and a protein sequence, and generates an image predicting how the protein will localize inside the cells.
Note that Vermeer is trained on wild-type human proteins, and may not always be accurate on proteins too different. In our testing, Vermeer can do a good job with larger mutagenesis (e.g. deletions of >10 residues), but is relatively insensitive to point mutations. Synthetic sequences are also hit-or-miss.
All sequences and images are stored on your local device, and are not visible to us or any external party. If you find this web app useful, we'd appreciate a citation - or better yet, email us to share your experience!
Note that this web application only supports Chrome and Edge browsers.
Source code and checkpoints are available in the Vermeer repository.
Step 1: Set up the model
This will download all model components and 10 landmark stain images per cell line in the Human Protein Atlas to your local device. You will be asked to supply a local folder - since you'll need to download more than >3.00 GB of data to run this model, this will store persistent components you can re-use every visit.
We've done the most extensive testing with XL, but B is the quickest way to try the tool. Larger models offer more capacity, but cost more time and memory; they do not guarantee a better prediction for every protein. Note that these models are run locally on your device, so if it's running slow or you don't have enough memory, try using a smaller model.
| Model | Vermeer weights | Total download |
|---|---|---|
| B | 0.45 GB | 3.00 GB |
| L | 1.38 GB | 3.93 GB |
| XL | 3.11 GB | 5.66 GB |
Choose an empty folder for a new download, or your existing local data folder.
Once local paths are specified, set up the model with the below button. This needs to be run both on initial download, and whenever you reload the page.
Model setup has not started.
Model and device details
No device checked yet.
Step 2: Enter a protein sequence and select a landmark stain image
Paste a single amino-acid sequence, or one FASTA record.
Sends the accession or entry name to rest.uniprot.org.
Choose a cell line, then which one of ten fields to generate protein localization for. Blue shows the nucleus, red shows the microtubules, and yellow shows the ER.
Landmark image credit: Human Protein Atlas, Thul et al., Science (2017). Adapted under CC BY 4.0.
(Advanced) Sampling settings for reproducibility/variability testing
Use the same random seed if you want to reproduce your previous prediction, or different ones if you want to assess how variable the generation is over seeds. The temperature setting controls how stochastic the generation is, with higher temperatures increasing stochasticity.
Set up the model before making a prediction.
Results
You can download a ZIP file that contains all three landmark channels, their color composite, and the predicted protein channel in green and grayscale. PNGs are 256 × 256 and contrast-normalized for visualization (intensity should not be taken as correlated with expression).
Frequently asked questions
Who can I contact with questions?
This tool is maintained by Alex Lu. Send any questions, feedback, rants, praise, or requests for collaboration to lualex [at] microsoft.com.
How can I cite the results of this web application?
The best way is to cite our forthcoming NeurIPS paper, currently hosted on bioRxiv.
How accurate is Vermeer with human proteins?
Based upon benchmarks we ran in our paper, when scored with SubCell Portable, an oracle that predicts the localization of proteins inside of microscopy images, Vermeer achieves a Spearman correlation of 0.921 for proteins seen during training (but in unseen cell lines) and of 0.870 for proteins unseen during training, when compared to real ground-truth antibody stains of these proteins.
How accurate is Vermeer with variants of human proteins or synthetic proteins?
We're still figuring all of this out ourselves - look forward to a forthcoming paper - but in our testing so far, Vermeer does a reasonable job with larger mutations to proteins (e.g. deletions of >10 residues). It doesn't do well with point mutations, which barely alter its predictions in most cases. Synthetic proteins are hit-and-miss - we tried on synthetic IDRs, and while it can sometimes capture general localization patterns (e.g. localization to the nucleus), it often misses more specific hierarchies of localization (e.g. localization to the nucleolus). Look forward to fine-tuned models that may address these issues.
Can I get higher resolution images?
Not with the current model! But we are working on a model that should have 4x higher resolution, and look forward to that in a current release.
Why is sequence length limited?
This prototype accepts 3–1,022 residues to reduce memory usage, since it's all processed locally. If you need longer sequences, run using our codebase.
Why is this application so slow?
All computation happens locally in your own browser, so run time is constrained by your hardware! If you need something you can run in bulk, we recommend downloading the Github code to run on your own server. The intention of this web app is to give biologists without a lot of experience in neural networks an accessible interface, so it's necessarily lightweight and low-throughput. We're also planning on releasing large databases of pre-computed results, so look forward to that in future work.
Why are you making me download >3 GBs of files?
That's just how big the model and its associated data are! We're making you store this locally because otherwise your browser would have to cache this, and that means you might have to download it every single time you reload the web page. Having you store it locally means you can use the same download every time you visit.