recursionaut commited on
Commit
8fad42c
·
verified ·
1 Parent(s): 6ded986

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +120 -34
README.md CHANGED
@@ -1,42 +1,128 @@
1
- # Masked Autoencoders are Scalable Learners of Cellular Morphology
2
- Official repo for Recursion's two recently accepted papers:
3
- - Spotlight full-length paper at [CVPR 2024](https://cvpr.thecvf.com/Conferences/2024/AcceptedPapers) -- Masked Autoencoders for Microscopy are Scalable Learners of Cellular Biology
4
- - Paper: https://arxiv.org/abs/2404.10242
5
- - CVPR poster page with video: https://cvpr.thecvf.com/virtual/2024/poster/31565
6
- - Spotlight workshop paper at [NeurIPS 2023 Generative AI & Biology workshop](https://openreview.net/group?id=NeurIPS.cc/2023/Workshop/GenBio)
7
- - Paper: https://arxiv.org/abs/2309.16064
8
 
9
- ![vit_diff_mask_ratios](https://github.com/recursionpharma/maes_microscopy/assets/109550980/c15f46b1-cdb9-41a7-a4af-bdc9684a971d)
10
 
 
 
11
 
12
- ## Provided code
13
- See the repo for ingredients required for defining our MAEs. Users seeking to re-implement training will need to stitch together the Encoder and Decoder modules according to their usecase.
14
 
15
- Furthermore the baseline Vision Transformer architecture backbone used in this work can be built with the following code snippet from Timm:
16
- ```
17
- import timm.models.vision_transformer as vit
18
-
19
- def vit_base_patch16_256(**kwargs):
20
- default_kwargs = dict(
21
- img_size=256,
22
- in_chans=6,
23
- num_classes=0,
24
- fc_norm=None,
25
- class_token=True,
26
- drop_path_rate=0.1,
27
- init_values=0.0001,
28
- block_fn=vit.ParallelScalingBlock,
29
- qkv_bias=False,
30
- qk_norm=True,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  )
32
- for k, v in kwargs.items():
33
- default_kwargs[k] = v
34
- return vit.vit_base_patch16_224(**default_kwargs)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  ```
36
 
37
- ## Provided models
38
- A publicly available model for research can be found via Nvidia's BioNemo platform, which handles inference and auto-scaling: https://www.rxrx.ai/phenom
39
 
40
- We have partnered with Nvidia to host a publicly-available smaller and more flexible version of the MAE phenomics foundation model, called Phenom-Beta. Interested parties can access it directly through the Nvidia BioNemo API:
41
- - https://blogs.nvidia.com/blog/drug-discovery-bionemo-generative-ai/
42
- - https://www.youtube.com/watch?v=Gch6bX1toB0
 
1
+ ---
2
+ library_name: transformers
3
+ tags: []
4
+ ---
 
 
 
5
 
6
+ # Model Card for Phenom CA-MAE-S/16
7
 
8
+ Channel-agnostic image encoding model designed for microscopy image featurization.
9
+ The model uses a vision transformer backbone with channelwise cross-attention over patch tokens to create contextualized representations separately for each channel.
10
 
 
 
11
 
12
+ ## Model Details
13
+
14
+ ### Model Description
15
+
16
+ This model is a [channel-agnostic masked autoencoder](https://openaccess.thecvf.com/content/CVPR2024/html/Kraus_Masked_Autoencoders_for_Microscopy_are_Scalable_Learners_of_Cellular_Biology_CVPR_2024_paper.html) trained to reconstruct microscopy images over three datasets:
17
+ 1. RxRx3
18
+ 2. JUMP-CP overexpression
19
+ 3. JUMP-CP gene-knockouts
20
+
21
+ - **Developed, funded, and shared by:** Recursion
22
+ - **Model type:** Vision transformer CA-MAE
23
+ - **Image modality:** Optimized for microscopy images from the CellPainting assay
24
+ - **License:**
25
+
26
+
27
+ ### Model Sources
28
+
29
+ - **Repository:** [https://github.com/recursionpharma/maes_microscopy](https://github.com/recursionpharma/maes_microscopy)
30
+ - **Paper:** [Masked Autoencoders for Microscopy are Scalable Learners of Cellular Biology](https://openaccess.thecvf.com/content/CVPR2024/html/Kraus_Masked_Autoencoders_for_Microscopy_are_Scalable_Learners_of_Cellular_Biology_CVPR_2024_paper.html)
31
+
32
+
33
+ ## Uses
34
+
35
+ NOTE: model embeddings tend to extract features only after using standard batch correction post-processing techniques. **We recommend**, at a *minimum*, after inferencing the model over your images, to do the standard `PCA-CenterScale` pattern or better yet Typical Variation Normalization:
36
+
37
+ 1. Fit a PCA kernel on all the *control images* (or all images if no controls) from across all experimental batches (e.g. the plates of wells from your assay),
38
+ 2. Transform all the embeddings with that PCA kernel,
39
+ 3. For each experimental batch, fit a separate StandardScaler on the transformed embeddings of the controls from step 2, then transform the rest of the embeddings from that batch with that StandardScaler.
40
+
41
+ ### Direct Use
42
+
43
+ - Create biologically useful embeddings of microscopy images
44
+ - Create contextualized embeddings of each channel of a microscopy image (set `return_channelwise_embeddings=True`)
45
+ - Leverage the full MAE encoder + decoder to predict new channels / stains for images without all 6 CellPainting channels
46
+
47
+ ### Downstream Use
48
+
49
+ - A determined ML expert could fine-tune the encoder for downstream tasks such as classification
50
+
51
+ ### Out-of-Scope Use
52
+
53
+ - Unlikely to be especially performant on brightfield microscopy images
54
+ - Out-of-domain medical images, such as H&E (maybe it would be a decent baseline though)
55
+
56
+ ## Bias, Risks, and Limitations
57
+
58
+ - Primary limitation is that the embeddings tend to be more useful at scale. For example, if you only have 1 plate of microscopy images, the embeddings might underperform compared to a supervised bespoke model.
59
+
60
+ ## How to Get Started with the Model
61
+
62
+ You should be able to successfully run the below tests, which demonstrate how to use the model at inference time.
63
+
64
+ ```python
65
+ import pytest
66
+ import torch
67
+
68
+ from huggingface_mae import MAEModel
69
+
70
+ huggingface_phenombeta_model_dir = "."
71
+ # huggingface_modelpath = "recursionpharma/test-pb-model"
72
+
73
+
74
+ @pytest.fixture
75
+ def huggingface_model():
76
+ # Make sure you have the model/config downloaded from https://huggingface.co/recursionpharma/test-pb-model to this directory
77
+ # huggingface-cli download recursionpharma/test-pb-model --local-dir=.
78
+ huggingface_model = MAEModel.from_pretrained(huggingface_phenombeta_model_dir)
79
+ huggingface_model.eval()
80
+ return huggingface_model
81
+
82
+
83
+ @pytest.mark.parametrize("C", [1, 4, 6, 11])
84
+ @pytest.mark.parametrize("return_channelwise_embeddings", [True, False])
85
+ def test_model_predict(huggingface_model, C, return_channelwise_embeddings):
86
+ example_input_array = torch.randint(
87
+ low=0,
88
+ high=255,
89
+ size=(2, C, 256, 256),
90
+ dtype=torch.uint8,
91
+ device=huggingface_model.device,
92
  )
93
+ huggingface_model.return_channelwise_embeddings = return_channelwise_embeddings
94
+ embeddings = huggingface_model.predict(example_input_array)
95
+ expected_output_dim = 384 * C if return_channelwise_embeddings else 384
96
+ assert embeddings.shape == (2, expected_output_dim)
97
+ ```
98
+
99
+
100
+ ## Training, evaluation and testing details
101
+
102
+ See paper linked above for details on model training and evaluation. Primary hyperparameters are included in the repo linked above.
103
+
104
+
105
+ ## Environmental Impact
106
+
107
+ - **Hardware Type:** Nvidia H100 Hopper nodes
108
+ - **Hours used:** 400
109
+ - **Cloud Provider:** private cloud
110
+ - **Carbon Emitted:** 138.24 kg co2 (roughly the equivalent of one car driving from Toronto to Montreal)
111
+
112
+ **BibTeX:**
113
+
114
+ ```TeX
115
+ @inproceedings{kraus2024masked,
116
+ title={Masked Autoencoders for Microscopy are Scalable Learners of Cellular Biology},
117
+ author={Kraus, Oren and Kenyon-Dean, Kian and Saberian, Saber and Fallah, Maryam and McLean, Peter and Leung, Jess and Sharma, Vasudev and Khan, Ayla and Balakrishnan, Jia and Celik, Safiye and others},
118
+ booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
119
+ pages={11757--11768},
120
+ year={2024}
121
+ }
122
  ```
123
 
124
+ ## Model Card Contact
 
125
 
126
+ - Kian Kenyon-Dean: kian.kd@recursion.com
127
+ - Oren Kraus: oren.kraus@recursion.com
128
+ - Or, email: info@rxrx.ai