Skip to content

Commit fa0a96d

Browse files
Integrate CellWhisperer functionality
* Use shared LLM-embedding model to describe/annotate cells * Deactivate github hooks etc. * Add BottomSideBar inculding necessary UI elements * Add installation notes and relevant starting pointer to readme * add editor config to adhere to repositories coding convention * LLMEmbeddings Reducer and API calls Already connected to UI elements * Implement server API endpoints with full boilerplate to enable immediate interaction with LLMs * Displaying continuous annotations queried via API * Implement LLM-embedding-based continuous cell visualization * Loading of pytorch lightning model for LLM embeddings * Adapted llm_obs_to_text() to use the single_cellm.validation.zero_shot.transcriptomes_to_scored_keywords implementation * Fix/Refactor `llm_obs_to_text` to fit to the single-cellm repo * Fix Cell->Text. With baseline unittest. Also don't load model (to save time debugging) * refactor imports * load_from_checkpoint with correct args * Adapt LLM calling to up to date single-cellm state * remove superfluous werkzeug dependency * rename llm_embeddings to single_cellm_wrapper * More renaming and refactoring of single-cellm functions into a class * Automatically show newly created annotation * Use 'best' model from our sweep * Run single-cellm model based on transient selection (rather than DEG selection1) * Render generated text (GO keywords) in a structured format * Provide scLLM model via appropriate config file * Improve formatting of LLM output (allowing error values) * Minifix with single ceLLM API and prepare for more performant dataloading (#14) * Use of precomputed CLIP embeddings to accelerate web UI - ... - replace `obs_cols` with `additional_text_dict` * Use full tabula_sapiens dataset by default * Use new 609 model * Update used model. Use correct dataset-preloading-file now * Move LLM-interface to the right (and more) - rename to chatsidebar - minifixing lack of model_processed_data - deactivate Undo - sorting of keyword groups * Refactor CellWhisperer wrapper for more flexible data input - use precomputed data from anndata object - includes 'terms' dict - pass model via CLI arg * Change placeholder in chat input * Hack/Easter egg to support subtraction of two prompts * Fix preprocessing (especially for keywords). Most importantly, cache storing was lacking before * rename to cellwhisperer * Rename and change API within cellxgene * Adopt single cellm wrapper to use API service to call model * Rename, fixes and implementation of llm_obs_to_text * Use cellwhisperer API to compute text embeddings, rather than the full scoring * Add CellWhisperer logo and fix wrong asset path in npm building * Fix broken call to CellWhisperer API * Extend API to allow JSON as return type * working implementation for LLM access (#4) * working implementation for LLM access * fix streaming from llava to frontend (by disabling http compression) * Full continuous chat support with improved style * Hallucination inializaiton method * Fix button and enter behavior in chat * Use the cellwhisperer icon * Provide gene names to LLM via conversation * fix missing f-string indicator * Revert breaking code * Interpretability call (#7) * Add gene score contribution method call to CXG * Remove deprecated chat code * Use raw transcriptome instead of embeddings for interpretation call * Switch to conditionally enable (only for testing runs) the gene score contribution * Bugfixing gene score contributions (now working) * UI loggings (#8) * Bugfixing gene score contributions (now working) * stylish thmubs up and down buttons * indicate that our model operates on pseudocells * simplify UI (only responses need thumbs) * Feedback feature on LLM output * Temperature support * Fix backed X indexing error, reduce max number of considered cells and service-wise logging * single-button slash command solution. and scroll down to new search continuous annotation (#9) * Support 'describe cells' button function (when no text was entered yet) * larger feedback buttons * New model and use var_names gene_name in testing * Preset filename for server-sided user-annotations Also takes into considertation file-size now, given that our dataset is always named /dataset.h5ad * Bugfix: CXG index modification needs to also account for obsm/varm * Efficient computation of pseudo-cell's top-genes by top-gene "counting" Previously, we computed it from the read counts directly. However, given that we are obliged to use CSC matrices (previously CSR) this takes prohibitively long. Therefore, this switch of strategy to provide top gene names and counting them * Refine the welcome text * Fixed color domain * Revert "Fixed color domain" This reverts commit daaa41d. * Implement divergent colorscale for cellwhisperer searches * Disable clipping because it leads to weird errors * Revert "Disable clipping because it leads to weird errors" This reverts commit 74045ed. * Fix divergent coloring - move the remembered name field to for searches to the LLMEmbeddings reducer (there i works) - fix color mapping if there are more negative than positive bins * Fix label formatting in histogram and color legend * Support serving with gunicorn webserver * Small style improvements * adopt logging strategy from cellxgene * Fix different color style and hide dataset name * Have the thumbs up-down buttons at the top * By default use API CLIP model * rename and api change * refactoring cellwhisperer_wrapper * Give top_1 genes more weight than top_100 genes, * Fix opacity of centroid labels and add transparency dependent on number of labels * Fix warning message for DEG with large datasets * Show cluster labels on startup by default * Fix width dimensions of histograms * Replace '/search' with a natural language regex --------- Co-authored-by: Peter Peneder <[email protected]>
1 parent 74fbec3 commit fa0a96d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+2745
-95
lines changed

.editorconfig

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
root = true
2+
3+
[*.js]
4+
indent_style = space
5+
indent_size = 2
File renamed without changes.
File renamed without changes.

.github/ISSUE_TEMPLATE/---question-clarification.md renamed to .github_deactivated/ISSUE_TEMPLATE/---question-clarification.md

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)