{"id":31805722,"url":"https://github.com/theislab/prophet","last_synced_at":"2025-11-10T15:04:18.633Z","repository":{"id":252163950,"uuid":"839617355","full_name":"theislab/prophet","owner":"theislab","description":null,"archived":false,"fork":false,"pushed_at":"2025-09-18T21:23:48.000Z","size":3937,"stargazers_count":36,"open_issues_count":3,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-09-22T22:55:35.349Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theislab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-08-08T01:40:11.000Z","updated_at":"2025-09-18T21:23:51.000Z","dependencies_parsed_at":"2024-08-08T03:57:55.604Z","dependency_job_id":"8bd0286c-c85a-4d1b-8992-6394381c39fe","html_url":"https://github.com/theislab/prophet","commit_stats":null,"previous_names":["theislab/prophet"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/theislab/prophet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theislab%2Fprophet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theislab%2Fprophet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theislab%2Fprophet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theislab%2Fprophet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theislab","download_url":"https://codeload.github.com/theislab/prophet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theislab%2Fprophet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279005953,"owners_count":26084009,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-11T02:57:40.676Z","updated_at":"2025-11-10T15:04:18.627Z","avatar_url":"https://github.com/theislab.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![License: MIT][mit-shield]][mit]\n# Prophet\n\nProphet is a transformer-based regression model that predicts cellular responses by decomposing experiments into cell state, treatment, and functional readout, leveraging extensive screening datasets and scalability to significantly reduce the number of required experiments and identify effective treatments.\n\n## Model Overview\n\nProphet decomposes biological experiments into three key components:\n1. **Cell state** - represented by cell line embeddings derived from gene expression profiles\n2. **Treatment** - represented by intervention embeddings (e.g., small molecules, genetic perturbations)\n3. **Functional readout** - the phenotypic measurement being predicted (e.g., viability, IC50)\n\nThe model uses a transformer architecture to learn complex interactions between these components and predict experimental outcomes without requiring the experiments to be performed.\n\n### Embeddings\n\nProphet uses three types of embeddings:\n- **Cell line embeddings**: 300-dimensional vectors derived from CCLE gene expression data\n- **Intervention embeddings**: 500-dimensional vectors representing small molecules or genetic perturbations\n- **Phenotype embeddings**: Representations of different readout types (optional)\n\nThese embeddings capture the biological properties of each component and allow the model to generalize across different experimental conditions.\n\n## Training\n\nProphet was trained on a large dataset of cellular response measurements, including:\n- Drug sensitivity screens (GDSC, PRISM, CTRP)\n- Genetic perturbation screens (DepMap, Achilles)\n- Combinatorial perturbation experiments\n\nThe model was trained using a masked attention mechanism to handle variable numbers of perturbations and a cosine learning rate schedule with warmup. Training was performed on NVIDIA A100 GPUs with early stopping based on validation loss.\n\n## Installation\n```\nmamba create -n prophet_env python=3.10\nmamba activate prophet_env\n\ngit clone https://github.com/theislab/prophet.git\ncd prophet\npip install -e .\n```\n\n## Quick Start\n\n```python\nfrom prophet import Prophet\n\n# Load a pretrained model (automatically downloads everything)\nmodel = Prophet.from_pretrained(\"base\")\n\n# Ready to predict!\npredictions = model.predict(your_data)\n```\n\n### Available Models\n\nSee all available models and configurations:\n```python\nProphet.list_models()\n```\n\nProphet provides pretrained models for various datasets including:\n- **base**: General purpose pretrained model (recommended for most users)\n- **GDSC, CTRP, PRISM**: Drug sensitivity datasets\n- **LINCS, JUMP**: Gene expression perturbation datasets\n- **Horlbeck**: CRISPR screening data\n- And more...\n\nEach model can be loaded with different configurations (split type, fold, seed):\n```python\n# Load with specific configuration\nmodel = Prophet.from_pretrained(\n    model_name=\"GDSC\",\n    split=\"perturbations\",  # or \"cell_lines\"\n    fold=0,  # 0-4\n    seed=110  # 110, 1995, or 2024\n)\n```\n\n### Tutorials and Examples\n\nFor detailed examples and workflows, check out:\n- [Getting Started Tutorial](tutorials/getting_started.ipynb) - Complete walkthrough\n- [Fine-tuning Guide](tutorials/finetuning.ipynb) - Adapt models to your data\n\n### Advanced: Manual Download\n\nFor advanced users who need direct file access, model checkpoints and embeddings are available at:\n- [HuggingFace Hub](https://huggingface.co/datasets/theislab/Prophet)\n- [Mendeley Data](https://data.mendeley.com/datasets/g7z3pw3bfw)\n\n## Citation\n\nIf you have used our work in your research, please cite our [preprint](https://www.biorxiv.org/content/10.1101/2024.08.12.607533v2).\n\n[mit]: https://opensource.org/licenses/MIT\n[mit-image]: https://img.shields.io/badge/License-MIT-yellow.svg\n[mit-shield]: https://img.shields.io/badge/License-MIT-yellow.svg\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheislab%2Fprophet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheislab%2Fprophet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheislab%2Fprophet/lists"}