graph LR
Training_Orchestration["Training Orchestration"]
Metric_Learning_Core["Metric Learning Core"]
Data_Management["Data Management"]
Ontology_Service["Ontology Service"]
Cell_Embedding_Search["Cell Embedding & Search"]
Cell_Annotation_Query["Cell Annotation & Query"]
General_Utilities["General Utilities"]
Visualization_Interpretation["Visualization & Interpretation"]
Training_Orchestration -- "initiates" --> Metric_Learning_Core
Training_Orchestration -- "manages" --> Data_Management
Metric_Learning_Core -- "consumes data from" --> Data_Management
Metric_Learning_Core -- "consults" --> Ontology_Service
Data_Management -- "interacts with" --> Ontology_Service
Data_Management -- "leverages" --> General_Utilities
Cell_Embedding_Search -- "utilizes" --> Metric_Learning_Core
Cell_Embedding_Search -- "employs" --> General_Utilities
Cell_Annotation_Query -- "performs search via" --> Cell_Embedding_Search
Cell_Annotation_Query -- "references" --> Ontology_Service
Cell_Annotation_Query -- "uses" --> General_Utilities
Visualization_Interpretation -- "processes data from" --> Ontology_Service
click Training_Orchestration href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/scimilarity/Training Orchestration.md" "Details"
click Metric_Learning_Core href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/scimilarity/Metric Learning Core.md" "Details"
click Data_Management href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/scimilarity/Data Management.md" "Details"
click Ontology_Service href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/scimilarity/Ontology Service.md" "Details"
click Cell_Embedding_Search href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/scimilarity/Cell Embedding & Search.md" "Details"
click Cell_Annotation_Query href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/scimilarity/Cell Annotation & Query.md" "Details"
click General_Utilities href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/scimilarity/General Utilities.md" "Details"
click Visualization_Interpretation href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/scimilarity/Visualization & Interpretation.md" "Details"
The scimilarity project is designed for single-cell data analysis, primarily focusing on metric learning to generate meaningful cell embeddings. The main flow involves training a metric learning model using various data sources, generating cell embeddings, and then utilizing these embeddings for tasks such as cell annotation and querying. It leverages ontology information for data preparation and analysis, and provides utilities for data management and visualization.
This component manages the high-level execution flow for training the metric learning model, including initiating the training process, coordinating with data modules, and handling model saving and result logging.
Related Classes/Methods:
This component encapsulates the core metric learning model, including its neural network architectures (Encoder and Decoder) for embedding and reconstruction, and the triplet selection and loss mechanisms crucial for learning meaningful cell representations.
Related Classes/Methods:
scimilarity.training_models.MetricLearning(15:686)scimilarity.src.scimilarity.training_models.MetricLearning:__init__(73:169)scimilarity.src.scimilarity.training_models.MetricLearning:forward(187:205)scimilarity.src.scimilarity.training_models.MetricLearning:get_losses(207:289)scimilarity.src.scimilarity.training_models.MetricLearning:training_step(315:392)scimilarity.src.scimilarity.training_models.MetricLearning:validation_step(399:412)scimilarity.src.scimilarity.training_models.MetricLearning:on_validation_epoch_end(414:419)scimilarity.src.scimilarity.training_models.MetricLearning:test_step(426:439)scimilarity.src.scimilarity.training_models.MetricLearning:on_test_epoch_end(441:446)scimilarity.src.scimilarity.training_models.MetricLearning:_eval_step(448:497)scimilarity.src.scimilarity.training_models.MetricLearning:save_all(566:638)scimilarity.src.scimilarity.training_models.MetricLearning:load_state(640:686)scimilarity.nn_models.Encoder(12:110)scimilarity.nn_models.Decoder(113:206)scimilarity.src.scimilarity.nn_models.Encoder.save_state(82:91)scimilarity.src.scimilarity.nn_models.Decoder.save_state(178:187)scimilarity.src.scimilarity.nn_models.Encoder.load_state(93:110)scimilarity.src.scimilarity.nn_models.Decoder.load_state(189:206)scimilarity.triplet_selector.TripletSelector(17:354)scimilarity.src.scimilarity.triplet_selector.TripletSelector:__init__(36:51)scimilarity.src.scimilarity.triplet_selector.TripletSelector:get_triplets_idx(53:199)scimilarity.src.scimilarity.triplet_selector.TripletSelector:get_asw(280:354)scimilarity.src.scimilarity.triplet_selector.TripletSelector.pdist(201:221)scimilarity.src.scimilarity.triplet_selector.TripletSelector.semihard_negative(257:278)scimilarity.src.scimilarity.triplet_selector.TripletSelector.hardest_negative(223:238)scimilarity.src.scimilarity.triplet_selector.TripletSelector.random_negative(240:255)scimilarity.triplet_selector.TripletLoss(357:436)scimilarity.src.scimilarity.triplet_selector.TripletLoss:__init__(381:397)scimilarity.src.scimilarity.triplet_selector.TripletLoss:forward(399:436)
This component is responsible for loading, preprocessing, and providing single-cell data from various storage formats (TileDB, Zarr, AnnData). It handles data harmonization, filtering, and prepares data for consumption by the Metric Learning Core.
Related Classes/Methods:
scimilarity.tiledb_data_models.CellMultisetDataModule(121:631)scimilarity.src.scimilarity.tiledb_data_models.CellMultisetDataModule:__init__(186:363)scimilarity.src.scimilarity.tiledb_data_models.CellMultisetDataModule:get_data(368:382)scimilarity.src.scimilarity.tiledb_data_models.CellMultisetDataModule:harmonize_cell_types(496:525)scimilarity.src.scimilarity.tiledb_data_models.CellMultisetDataModule:remove_singleton_label_ids(399:447)scimilarity.src.scimilarity.tiledb_data_models.CellMultisetDataModule:map_cell_type_id2name(384:397)scimilarity.src.scimilarity.tiledb_data_models.CellMultisetDataModule:train_dataloader(572:594)scimilarity.src.scimilarity.tiledb_data_models.CellMultisetDataModule:val_dataloader(596:620)scimilarity.src.scimilarity.tiledb_data_models.CellMultisetDataModule:test_dataloader(622:631)scimilarity.src.scimilarity.tiledb_data_models.CellSampler(61:118)scimilarity.src.scimilarity.tiledb_data_models.scDataset(39:58)scimilarity.zarr_data_models.MetricLearningDataModule(54:284)scimilarity.src.scimilarity.zarr_data_models.MetricLearningDataModule:__init__(88:173)scimilarity.src.scimilarity.zarr_data_models.MetricLearningDataModule:train_dataloader(235:252)scimilarity.src.scimilarity.zarr_data_models.MetricLearningDataModule:val_dataloader(254:273)scimilarity.src.scimilarity.zarr_data_models.MetricLearningDataModule:test_dataloader(275:284)scimilarity.src.scimilarity.zarr_data_models.MetricLearningDataModule.get_sampler_weights(175:209)scimilarity.src.scimilarity.zarr_data_models.scDataset(13:51)scimilarity.anndata_data_models.MetricLearningDataModule(39:262)scimilarity.src.scimilarity.anndata_data_models.MetricLearningDataModule:__init__(68:131)scimilarity.src.scimilarity.anndata_data_models.MetricLearningDataModule:train_dataloader(213:230)scimilarity.src.scimilarity.anndata_data_models.MetricLearningDataModule:val_dataloader(232:251)scimilarity.src.scimilarity.anndata_data_models.MetricLearningDataModule:test_dataloader(253:262)scimilarity.src.scimilarity.anndata_data_models.MetricLearningDataModule.subset_valid_terms(133:151)scimilarity.src.scimilarity.anndata_data_models.MetricLearningDataModule.get_sampler_weights(153:187)scimilarity.src.scimilarity.anndata_data_models.scDataset(13:36)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset(12:999)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset:var_index(83:98)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset:var(101:122)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset:obs_index(125:140)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset:obs(143:164)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset:get_X(166:187)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset:get_counts(189:212)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset:set_X(214:229)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset:append_X(231:251)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset:get_var(253:273)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset:get_obs(275:295)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset:get_row(321:349)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset:get_col(351:379)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset:get_cell(381:401)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset:get_layer_cell(403:424)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset:get_gene(426:446)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset:get_layer_gene(448:471)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset:row_slice_csr(555:577)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset:col_slice_csc(579:601)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset:append_annotation(976:999)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset.get_annotation_index(830:854)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset.get_annotation_column(856:908)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset.set_annotation(910:974)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset.get_matrix(645:689)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset.set_matrix(691:723)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset.append_matrix(725:828)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset.slice_with(473:508)scimilarity.src.scimilarity.zarr_dataset.ZarrDataset.slice_coo(603:643)
This component handles the loading, mapping, and querying of cell ontology data, providing functionalities to retrieve hierarchical relationships and calculate ontology similarities, which are vital for data preparation and triplet selection.
Related Classes/Methods:
scimilarity.ontologies.import_cell_ontology(30:51)scimilarity.ontologies.get_id_mapper(126:144)scimilarity.src.scimilarity.ontologies:get_children(147:172)scimilarity.src.scimilarity.ontologies:get_parents(175:200)scimilarity.src.scimilarity.ontologies:get_siblings(203:231)scimilarity.src.scimilarity.ontologies:get_all_ancestors(234:264)scimilarity.src.scimilarity.ontologies:get_all_descendants(267:301)scimilarity.src.scimilarity.ontologies:find_most_viable_parent(331:369)scimilarity.src.scimilarity.ontologies:ontology_similarity(372:401)scimilarity.src.scimilarity.ontologies:all_pair_similarities(404:436)scimilarity.src.scimilarity.ontologies:ontology_silhouette_width(439:517)scimilarity.src.scimilarity.ontologies.subset_nodes_to_set(7:27)
This component is responsible for generating numerical representations (embeddings) of cells using a trained neural network encoder and provides K-Nearest Neighbors (KNN) search capabilities for efficient retrieval of similar cells.
Related Classes/Methods:
scimilarity.cell_embedding.CellEmbedding(4:156)scimilarity.src.scimilarity.cell_embedding.CellEmbedding:__init__(19:70)scimilarity.src.scimilarity.cell_embedding.CellEmbedding:get_embeddings(72:156)scimilarity.scripts.build_embeddings:main(41:119)scimilarity.scripts.build_embeddings.get_expression(19:39)scimilarity.cell_search_knn.CellSearchKNN(6:103)scimilarity.src.scimilarity.cell_search_knn.CellSearchKNN:__init__(23:38)scimilarity.src.scimilarity.cell_search_knn.CellSearchKNN.load_knn_index(40:62)scimilarity.src.scimilarity.cell_search_knn.CellSearchKNN.get_nearest_neighbors(64:103)
This component offers high-level functionalities for annotating cells by leveraging cell embeddings and KNN search to predict cell types, and provides various methods for querying cells based on their embeddings.
Related Classes/Methods:
scimilarity.cell_annotation.CellAnnotation(6:319)scimilarity.src.scimilarity.cell_annotation.CellAnnotation:__init__(23:66)scimilarity.src.scimilarity.cell_annotation.CellAnnotation:safelist_celltypes(118:146)scimilarity.src.scimilarity.cell_annotation.CellAnnotation:blocklist_celltypes(92:116)scimilarity.src.scimilarity.cell_annotation.CellAnnotation:get_predictions_knn(148:279)scimilarity.src.scimilarity.cell_annotation.CellAnnotation:annotate_dataset(281:319)scimilarity.src.scimilarity.cell_annotation.CellAnnotation.reset_knn(74:90)scimilarity.scripts.build_cellsearch_metadata:main(15:118)scimilarity.cell_query.CellQuery(6:743)scimilarity.src.scimilarity.cell_query.CellQuery:__init__(31:91)scimilarity.src.scimilarity.cell_query.CellQuery:get_precomputed_embeddings(93:115)scimilarity.src.scimilarity.cell_query.CellQuery:search_nearest(206:275)scimilarity.src.scimilarity.cell_query.CellQuery:search_centroid_nearest(277:375)scimilarity.src.scimilarity.cell_query.CellQuery:search_cluster_centroids_nearest(377:473)scimilarity.src.scimilarity.cell_query.CellQuery:search_exhaustive(475:559)scimilarity.src.scimilarity.cell_query.CellQuery:search_centroid_exhaustive(561:652)scimilarity.src.scimilarity.cell_query.CellQuery:search_cluster_centroids_exhaustive(654:743)
This component provides a collection of general-purpose utility functions that support various operations across the scimilarity project, such as optimizing TileDB arrays, querying dataframes, aligning datasets, and calculating centroids.
Related Classes/Methods:
scimilarity.utils.optimize_tiledb_array(full file reference)scimilarity.src.scimilarity.utils.query_tiledb_df(full file reference)scimilarity.src.scimilarity.utils.align_dataset(full file reference)scimilarity.src.scimilarity.utils.embedding_from_tiledb(full file reference)scimilarity.src.scimilarity.utils.get_centroid(full file reference)scimilarity.src.scimilarity.utils.get_cluster_centroids(full file reference)
This component offers functionalities for visualizing single-cell data, particularly focusing on hierarchical and count-based visualizations, and provides tools for interpreting relationships within the learned embedding space, including simple distance calculations.
Related Classes/Methods:
scimilarity.src.scimilarity.visualizations:get_children_data(196:221)scimilarity.src.scimilarity.visualizations:circ_dict2data(224:249)scimilarity.src.scimilarity.visualizations:hits_circles(401:432)scimilarity.src.scimilarity.visualizations.aggregate_counts(4:53)scimilarity.src.scimilarity.visualizations.assign_size(56:105)scimilarity.src.scimilarity.visualizations.draw_circles(252:398)scimilarity.interpreter.Interpreter(43:213)scimilarity.src.scimilarity.interpreter.Interpreter:__init__(58:67)scimilarity.src.scimilarity.interpreter.SimpleDist(5:40)