protspace 2.2.0__tar.gz → 2.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {protspace-2.2.0 → protspace-2.3.0}/CHANGELOG.md +50 -0
- {protspace-2.2.0 → protspace-2.3.0}/PKG-INFO +25 -17
- {protspace-2.2.0 → protspace-2.3.0}/README.md +24 -16
- {protspace-2.2.0 → protspace-2.3.0}/examples/image_creation.py +3 -1
- protspace-2.3.0/examples/out/automatic_projections/PCA_3_annotation_score.html +3885 -0
- protspace-2.3.0/examples/out/automatic_projections/PCA_3_protein_existence.html +3885 -0
- {protspace-2.2.0 → protspace-2.3.0}/pyproject.toml +1 -1
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/__init__.py +1 -1
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/cli/local_data.py +14 -1
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/cli/uniprot_query.py +13 -1
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/data/base_data_processor.py +72 -47
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/data/feature_manager.py +24 -16
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/data/taxonomy_feature_retriever.py +88 -24
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/server/app.py +6 -2
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/server/callbacks.py +11 -11
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/utils/reducers.py +4 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/visualization/plotting.py +15 -8
- {protspace-2.2.0 → protspace-2.3.0}/uv.lock +1 -1
- {protspace-2.2.0 → protspace-2.3.0}/.dockerignore +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/.env.example +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/.github/SEMANTIC_RELEASE_SETUP.md +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/.github/workflows/docker.yml +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/.github/workflows/jekyll-gh-pages.yml +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/.github/workflows/python.yml +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/.github/workflows/release.yml +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/.gitignore +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/.python-version +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/Dockerfile +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/LICENSE +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/3FTx/3FTx.csv +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/3FTx/3FTx.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/3FTx/3FTx_colored_hex.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/3FTx/3FTx_colored_rbga.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/3FTx/3FTx_customized.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/3FTx/3FTx_pdb.zip +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/3FTx/3FTx_prott5.h5 +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/3FTx/costumize_colors_hex.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/3FTx/costumize_colors_rbga.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/Pla2g2/Pla2g2.csv +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/Pla2g2/Pla2g2.fasta +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/Pla2g2/Pla2g2_pdb.zip +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/Pla2g2/embs/esm2_3b.h5 +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/Pla2g2/embs/prott5.h5 +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/Pla2g2/protspace_files/Pla2g2.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/Pla2g2/protspace_files/Pla2g2_customized.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/Pla2g2/style.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/gfp/processed_data/gfp_features.csv +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/gfp/processed_data/mutated_sequences.fasta +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/gfp/processed_data/prott5_subset_1000.h5 +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/gfp/processed_data/sequence_fident_matrix.csv +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/gfp/processed_data/structure_alntmscore_matrix.csv +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/gfp/processed_data/structure_bits_matrix.csv +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/gfp/processed_data/structure_evalue_matrix.csv +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/gfp/processed_data/structure_fident_matrix.csv +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/gfp/processed_data/structure_lddt_matrix.csv +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/gfp/processed_data/structure_rmsd_matrix.csv +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/gfp/processed_data/structure_similarity_matrix.csv +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/gfp/processed_data/subset_1000.fasta +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/gfp/protspace/gfp.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/gfp/protspace/gfp_str_sim.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/gfp/protspace/gfp_style.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/gfp/protspace/out/prott5_umap2.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/gfp/protspace/style.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/phages/phages_prep.ipynb +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/phages/processed/all_members.csv +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/phages/processed/all_members_7k_function_500_hyp.fasta +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/phages/processed/foldseek.csv +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/phages/processed/foldseek_clusterreps_7k_function_500_hyp.fasta +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/phages/processed/foldseek_new.csv +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/phages/processed/foldseek_new2.csv +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/phages/protspace/all_members_phages.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/phages/protspace/all_members_style.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/phages/protspace/foldseek.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/phages/protspace/foldseek_phages.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/phages/protspace/foldseek_style.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/phages/raw/all_members_7k_function_500_hyp.csv +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/phages/raw/foldseek_clusterreps_7k_function_500_hyp.csv +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/phages/raw/foldseek_clusterreps_7k_function_500_hyp.fasta +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/phages/raw/foldseek_clusterreps_7k_function_500_hyp_with_ids.csv +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/phages/style.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/phages/style2.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/toxins/processed_data/alluvial_plot.png +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/toxins/processed_data/analysis.ipynb +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/toxins/processed_data/toxins.csv +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/toxins/processed_data/toxins.h5 +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/toxins/processed_data/toxins_all.csv +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/toxins/processed_data/toxins_query_new_zstd/projections_data.parquet +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/toxins/processed_data/toxins_query_new_zstd/projections_metadata.parquet +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/toxins/processed_data/toxins_query_new_zstd/selected_features.parquet +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/toxins/protspace/hymenoptera.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/toxins/protspace/style.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/toxins/protspace/style.md +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/toxins/protspace/style.txt +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/toxins/protspace/tmp.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/toxins/protspace/tmp_style.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/toxins/protspace/toxins.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/toxins/protspace/toxins_seq_sim.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/toxins/protspace/toxins_seq_sim_style.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/data/toxins/protspace/toxins_style.json +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/Workflow.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/cli/protspace_local.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/cli/protspace_query.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/notebook/2024_ClickThrough_GenerateEmbeddings.ipynb +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/notebook/ClickThrough_GenerateEmbeddings.ipynb +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/notebook/Explore_ProtSpace.ipynb +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/notebook/PfamExplorer_ProtSpace.ipynb +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/notebook/Run_ProtSpace.ipynb +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/3FTx/PCA2_group.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/3FTx/PCA2_major_group.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/3FTx/PCA3_group.html +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/3FTx/PCA3_major_group.html +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/3FTx/UMAP2_group.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/3FTx/UMAP2_major_group.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/3FTx/UMAP3_group.html +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/3FTx/UMAP3_major_group.html +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/Pla2g2/Pla2g2_dashboard.png +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/Pla2g2/Pla2g2_group.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/Pla2g2/group.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/automatic_projections/PCA_2_annotation_score.png +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/automatic_projections/PCA_2_protein_existence.png +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/gfp/prott5_umap2_brightness_category.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/gfp/prott5_umap2_nr_mutations.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/gfp/seq_sim_mds2_brightness_category.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/gfp/seq_sim_mds2_nr_mutations.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/gfp/seq_sim_umap2_brightness_category.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/gfp/seq_sim_umap2_nr_mutations.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/gfp/struct_sim_mds2_brightness_category.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/gfp/struct_sim_mds2_nr_mutations.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/phages/function_umap.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/phages/product_category_umap.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/phages/sub_all_members.html +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/phages/sub_all_members.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/phages/sub_clusterrep.html +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/phages/sub_clusterrep.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/toxins/family_bitmap_umap.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/toxins/family_evalue_umap.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/toxins/order_bits_umap.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/toxins/order_evalue_umap.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/toxins/order_umap.png +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/toxins/order_umap.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/toxins/protein_category_bits_umap.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/toxins/protein_category_evalue_umap.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/toxins/protein_category_umap.png +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/out/toxins/protein_category_umap.svg +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/examples/run_interactive_mode.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/out/images/marker_gallery.png +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/poster/index.html +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/requirements-py310.txt +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/requirements-py311.txt +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/requirements-py312.txt +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/assets/__init__.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/assets/annotated_image.png +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/assets/custom.css +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/assets/help_content/__init__.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/assets/help_content/help_faq.md +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/assets/help_content/help_how_it_works.md +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/assets/help_content/help_json.md +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/assets/help_content/help_overview.md +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/assets/rostlab_logo.png +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/cli/__init__.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/config.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/data/__init__.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/data/interpro_feature_retriever.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/data/local_data_processor.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/data/uniprot_feature_retriever.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/data/uniprot_query_processor.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/helpers.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/main.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/molstar_helper.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/server/__init__.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/styles.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/ui/__init__.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/ui/layout.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/utils/__init__.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/utils/add_feature_style.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/utils/analyse_json.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/utils/arrow_reader.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/utils/json_reader.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/visualization/__init__.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/src/protspace/wsgi.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/tests/__init__.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/tests/test_base_data_processor.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/tests/test_feature_manager.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/tests/test_interpro_feature_retriever.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/tests/test_local_data_processor.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/tests/test_taxonomy_feature_retriever.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/tests/test_uniprot_feature_retriever.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/tests/test_uniprot_query_processor.py +0 -0
- {protspace-2.2.0 → protspace-2.3.0}/update_deps.sh +0 -0
|
@@ -1,6 +1,56 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
## v2.3.0 (2025-09-30)
|
|
5
|
+
|
|
6
|
+
### Documentation
|
|
7
|
+
|
|
8
|
+
* docs: Update README and CLI help to enhance feature extraction guidance
|
|
9
|
+
|
|
10
|
+
- Added a new section in README for the JavaScript frontend
|
|
11
|
+
- Revised the "Quick Start" section for clarity and updated usage examples for querying UniProt and processing local data.
|
|
12
|
+
- Expanded help text in CLI for feature extraction to include available UniProt, InterPro, and Taxonomy features. ([`56e17b2`](https://github.com/tsenoner/protspace/commit/56e17b28b60827be2cf4f63f083a52a85f2ac166))
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* feat(umap): add random_state parameter for reproducibility
|
|
17
|
+
|
|
18
|
+
Add random_state parameter with default value of 42 to ensure
|
|
19
|
+
reproducible UMAP results across runs.
|
|
20
|
+
|
|
21
|
+
- Add random_state field to DimensionReductionConfig (default: 42)
|
|
22
|
+
- Update UMAPReducer to pass random_state to UMAP constructor
|
|
23
|
+
- Add --random_state CLI argument to protspace-local and protspace-query
|
|
24
|
+
- Update base_data_processor to include random_state in valid config keys
|
|
25
|
+
- All 53 tests passing
|
|
26
|
+
|
|
27
|
+
Fixes #16 ([`63b7df8`](https://github.com/tsenoner/protspace/commit/63b7df80ea480e661e73052c3f2e395f93976a6c))
|
|
28
|
+
|
|
29
|
+
* feat: enhance taxonomy feature retrieval with error handling and cache management
|
|
30
|
+
|
|
31
|
+
- Added error handling in get_taxonomy_features to log and return an empty mapping on fetch errors.
|
|
32
|
+
- Improved _initialize_taxdb to support environment variable for cache directory and implemented a safe refresh strategy for the taxonomy database.
|
|
33
|
+
- Updated logic to handle first-time setup and cache refresh without losing existing data. ([`47826e9`](https://github.com/tsenoner/protspace/commit/47826e9b796e840282d1263d3ae85a31a56c5d18))
|
|
34
|
+
|
|
35
|
+
### Refactoring
|
|
36
|
+
|
|
37
|
+
* refactor: simplify download_plot and save_plot functions
|
|
38
|
+
|
|
39
|
+
- Remove strict width/height requirements for 2D plots
|
|
40
|
+
- Eliminate unused parameters in download_plot callback
|
|
41
|
+
- Add proper HTML file handling in generate_plot
|
|
42
|
+
- Improve code maintainability and compatibility ([`8c3f3e9`](https://github.com/tsenoner/protspace/commit/8c3f3e9df07a98a2ee0a85d91d592f001feb9139))
|
|
43
|
+
|
|
44
|
+
### Unknown
|
|
45
|
+
|
|
46
|
+
* Merge branch 'stage' ([`5716992`](https://github.com/tsenoner/protspace/commit/57169922e79968b7c5257f8841185de113982197))
|
|
47
|
+
|
|
48
|
+
* chor: update image generation to include PCA_3 projection
|
|
49
|
+
|
|
50
|
+
- Changed the projection list to use only "PCA_3" for image generation.
|
|
51
|
+
- Added support for HTML file format in the image output. ([`36551f3`](https://github.com/tsenoner/protspace/commit/36551f3748ca0e74447c91db98a5c24c9d845dd4))
|
|
52
|
+
|
|
53
|
+
|
|
4
54
|
## v2.2.0 (2025-08-07)
|
|
5
55
|
|
|
6
56
|
### Documentation
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: protspace
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3.0
|
|
4
4
|
Summary: A visualisation tool for protein embeddings from pLMs
|
|
5
5
|
Author-email: Tobias Senoner <tobias.senoner@tum.de>
|
|
6
6
|
License-Expression: GPL-3.0
|
|
@@ -45,6 +45,8 @@ ProtSpace is a visualization tool for exploring **protein embeddings** or **simi
|
|
|
45
45
|
|
|
46
46
|
**Web Interface**: https://protspace.rostlab.org/
|
|
47
47
|
|
|
48
|
+
**New JavaScript Frontend** _(in development)_: https://tsenoner.github.io/protspace_d3/ -> Drag & drop `.parquetbundle` files
|
|
49
|
+
|
|
48
50
|
## 🚀 Quick Start with Google Colab
|
|
49
51
|
|
|
50
52
|
**Note**: Use Chrome or Firefox for best experience.
|
|
@@ -67,41 +69,30 @@ pip install protspace
|
|
|
67
69
|
pip install "protspace[frontend]"
|
|
68
70
|
```
|
|
69
71
|
|
|
70
|
-
## 🎯
|
|
72
|
+
## 🎯 Quick Start
|
|
71
73
|
|
|
72
74
|
### 1. Query UniProt directly
|
|
73
75
|
|
|
74
76
|
```bash
|
|
75
|
-
#
|
|
76
|
-
protspace-query -q "
|
|
77
|
+
# Retrieve and analyze proteins from UniProt using sequence similarity (mmmseqs2)
|
|
78
|
+
protspace-query -q "(ft_domain:phosphatase) AND (reviewed:true)" -o output_dir -m pca2,pca3,umap2 -f "protein_families,fragment,kingdom,superfamily" --n_neighbors 30 --min_dist 0.4
|
|
77
79
|
```
|
|
78
80
|
|
|
79
81
|
### 2. Process local data
|
|
80
82
|
|
|
81
83
|
```bash
|
|
82
|
-
#
|
|
83
|
-
protspace-local -i embeddings.h5 -
|
|
84
|
+
# Analyse and vizualise your locally stored embeddings
|
|
85
|
+
protspace-local -i embeddings.h5 -o output_dir -m pca2,umap2
|
|
84
86
|
```
|
|
85
87
|
|
|
86
88
|
### 3. Launch visualization
|
|
87
89
|
|
|
88
90
|
```bash
|
|
89
|
-
# Auto-detects JSON files or Arrow directories
|
|
90
91
|
protspace output_dir
|
|
91
|
-
protspace output.json
|
|
92
92
|
```
|
|
93
93
|
|
|
94
94
|
Access at `http://localhost:8050`
|
|
95
95
|
|
|
96
|
-
## ✨ Features
|
|
97
|
-
|
|
98
|
-
- **Interactive visualization**: 2D/3D plots with multiple dimensionality reduction methods (PCA, UMAP, t-SNE, MDS, PaCMAP)
|
|
99
|
-
- **Feature-based styling**: Color-code and shape proteins by various features
|
|
100
|
-
- **Structure integration**: View 3D protein structures alongside embeddings
|
|
101
|
-
- **Search & highlight**: Find and highlight specific proteins
|
|
102
|
-
- **Export options**: High-quality SVG (2D) and interactive HTML (3D)
|
|
103
|
-
- **Responsive interface**: Works on desktop and mobile
|
|
104
|
-
|
|
105
96
|
## 📊 Example Outputs
|
|
106
97
|
|
|
107
98
|
### 2D Scatter Plot
|
|
@@ -112,6 +103,23 @@ Access at `http://localhost:8050`
|
|
|
112
103
|
|
|
113
104
|
[View 3D Example](https://tsenoner.github.io/protspace/examples/out/3FTx/UMAP3_major_group.html)
|
|
114
105
|
|
|
106
|
+
## ✨ Features
|
|
107
|
+
|
|
108
|
+
- **Multiple projections**: PCA, UMAP, t-SNE, MDS, PaCMAP in 2D/3D
|
|
109
|
+
- **Automatic feature extraction**: Use `-f` to color-code proteins by UniProt, InterPro, or Taxonomy features
|
|
110
|
+
- **3D structure viewer**: Integrated protein structure visualization
|
|
111
|
+
- **Export**: SVG (2D) and HTML (3D) formats
|
|
112
|
+
|
|
113
|
+
### Available Features (use with `-f`)
|
|
114
|
+
|
|
115
|
+
**UniProt**: `annotation_score`, `fragment`, `length_fixed`, `length_quantile`, `protein_existence`, `protein_families`, `reviewed`
|
|
116
|
+
|
|
117
|
+
**InterPro**: `cath`, `superfamily`, `signal_peptide`
|
|
118
|
+
|
|
119
|
+
**Taxonomy**: `kingdom`, `phylum`, `class`, `order`, `family`, `genus`, `species`
|
|
120
|
+
|
|
121
|
+
_Note: Some taxonomy parsing may have minor issues. Additional features in development._
|
|
122
|
+
|
|
115
123
|
## 🔧 Advanced Usage
|
|
116
124
|
|
|
117
125
|
### Command Options
|
|
@@ -12,6 +12,8 @@ ProtSpace is a visualization tool for exploring **protein embeddings** or **simi
|
|
|
12
12
|
|
|
13
13
|
**Web Interface**: https://protspace.rostlab.org/
|
|
14
14
|
|
|
15
|
+
**New JavaScript Frontend** _(in development)_: https://tsenoner.github.io/protspace_d3/ -> Drag & drop `.parquetbundle` files
|
|
16
|
+
|
|
15
17
|
## 🚀 Quick Start with Google Colab
|
|
16
18
|
|
|
17
19
|
**Note**: Use Chrome or Firefox for best experience.
|
|
@@ -34,41 +36,30 @@ pip install protspace
|
|
|
34
36
|
pip install "protspace[frontend]"
|
|
35
37
|
```
|
|
36
38
|
|
|
37
|
-
## 🎯
|
|
39
|
+
## 🎯 Quick Start
|
|
38
40
|
|
|
39
41
|
### 1. Query UniProt directly
|
|
40
42
|
|
|
41
43
|
```bash
|
|
42
|
-
#
|
|
43
|
-
protspace-query -q "
|
|
44
|
+
# Retrieve and analyze proteins from UniProt using sequence similarity (mmmseqs2)
|
|
45
|
+
protspace-query -q "(ft_domain:phosphatase) AND (reviewed:true)" -o output_dir -m pca2,pca3,umap2 -f "protein_families,fragment,kingdom,superfamily" --n_neighbors 30 --min_dist 0.4
|
|
44
46
|
```
|
|
45
47
|
|
|
46
48
|
### 2. Process local data
|
|
47
49
|
|
|
48
50
|
```bash
|
|
49
|
-
#
|
|
50
|
-
protspace-local -i embeddings.h5 -
|
|
51
|
+
# Analyse and vizualise your locally stored embeddings
|
|
52
|
+
protspace-local -i embeddings.h5 -o output_dir -m pca2,umap2
|
|
51
53
|
```
|
|
52
54
|
|
|
53
55
|
### 3. Launch visualization
|
|
54
56
|
|
|
55
57
|
```bash
|
|
56
|
-
# Auto-detects JSON files or Arrow directories
|
|
57
58
|
protspace output_dir
|
|
58
|
-
protspace output.json
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
Access at `http://localhost:8050`
|
|
62
62
|
|
|
63
|
-
## ✨ Features
|
|
64
|
-
|
|
65
|
-
- **Interactive visualization**: 2D/3D plots with multiple dimensionality reduction methods (PCA, UMAP, t-SNE, MDS, PaCMAP)
|
|
66
|
-
- **Feature-based styling**: Color-code and shape proteins by various features
|
|
67
|
-
- **Structure integration**: View 3D protein structures alongside embeddings
|
|
68
|
-
- **Search & highlight**: Find and highlight specific proteins
|
|
69
|
-
- **Export options**: High-quality SVG (2D) and interactive HTML (3D)
|
|
70
|
-
- **Responsive interface**: Works on desktop and mobile
|
|
71
|
-
|
|
72
63
|
## 📊 Example Outputs
|
|
73
64
|
|
|
74
65
|
### 2D Scatter Plot
|
|
@@ -79,6 +70,23 @@ Access at `http://localhost:8050`
|
|
|
79
70
|
|
|
80
71
|
[View 3D Example](https://tsenoner.github.io/protspace/examples/out/3FTx/UMAP3_major_group.html)
|
|
81
72
|
|
|
73
|
+
## ✨ Features
|
|
74
|
+
|
|
75
|
+
- **Multiple projections**: PCA, UMAP, t-SNE, MDS, PaCMAP in 2D/3D
|
|
76
|
+
- **Automatic feature extraction**: Use `-f` to color-code proteins by UniProt, InterPro, or Taxonomy features
|
|
77
|
+
- **3D structure viewer**: Integrated protein structure visualization
|
|
78
|
+
- **Export**: SVG (2D) and HTML (3D) formats
|
|
79
|
+
|
|
80
|
+
### Available Features (use with `-f`)
|
|
81
|
+
|
|
82
|
+
**UniProt**: `annotation_score`, `fragment`, `length_fixed`, `length_quantile`, `protein_existence`, `protein_families`, `reviewed`
|
|
83
|
+
|
|
84
|
+
**InterPro**: `cath`, `superfamily`, `signal_peptide`
|
|
85
|
+
|
|
86
|
+
**Taxonomy**: `kingdom`, `phylum`, `class`, `order`, `family`, `genus`, `species`
|
|
87
|
+
|
|
88
|
+
_Note: Some taxonomy parsing may have minor issues. Additional features in development._
|
|
89
|
+
|
|
82
90
|
## 🔧 Advanced Usage
|
|
83
91
|
|
|
84
92
|
### Command Options
|
|
@@ -19,7 +19,8 @@ def main():
|
|
|
19
19
|
# print("Available projection names:", reader.get_projection_names())
|
|
20
20
|
|
|
21
21
|
# Generate images for specific projections and features
|
|
22
|
-
projections = ["PCA_2"]
|
|
22
|
+
# projections = ["PCA_2", "PCA_3"]
|
|
23
|
+
projections = ["PCA_3"]
|
|
23
24
|
features = ["protein_existence", "annotation_score"]
|
|
24
25
|
|
|
25
26
|
# Create the output directory if it doesn't exist
|
|
@@ -34,6 +35,7 @@ def main():
|
|
|
34
35
|
filename=output_dir / f"{projection}_{feature}",
|
|
35
36
|
width=1600,
|
|
36
37
|
height=1000,
|
|
38
|
+
file_format="html",
|
|
37
39
|
)
|
|
38
40
|
print(f"Generated image for {projection} - {feature}")
|
|
39
41
|
|