{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/systematic-analysis-of-biomolecular","title":"Systematic Analysis of Biomolecular Conformational Ensembles with PENSA","arxiv_id":"2212.02714","date":"2022-12-06","proceeding":null,"authors":["Martin Vögele","Neil J. Thomson","Sang T. Truong","Jasper McAvity","Ulrich Zachariae","Ron O. Dror"],"abstract":"Atomic-level simulations are widely used to study biomolecules and their dynamics. A common goal in such studies is to compare simulations of a molecular system under several conditions -- for example, with various mutations or bound ligands -- in order to identify differences between the molecular conformations adopted under these conditions. However, the large amount of data produced by simulations of ever larger and more complex systems often renders it difficult to identify the structural features that are relevant for a particular biochemical phenomenon. We present a flexible software package named PENSA that enables a comprehensive and thorough investigation into biomolecular conformational ensembles. It provides featurizations and feature transformations that allow for a complete representation of biomolecules like proteins and nucleic acids, including water and ion binding sites, thus avoiding bias that would come with manual feature selection. PENSA implements methods to systematically compare the distributions of molecular features across ensembles to find the significant differences between them and identify regions of interest. It also includes a novel approach to quantify the state-specific information between two regions of a biomolecule, which allows, e.g., tracing information flow to identify allosteric pathways. PENSA also comes with convenient tools for loading data and visualizing results, making them quick to process and easy to interpret. PENSA is an open-source Python library maintained at https://github.com/drorlab/pensa along with an example workflow and a tutorial. We demonstrate its usefulness in real-world examples by showing how it helps to determine molecular mechanisms efficiently.","url_abs":"https://arxiv.org/abs/2212.02714v4","url_pdf":"https://arxiv.org/pdf/2212.02714v4.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"systematic-analysis-of-biomolecular","repo_url":"https://github.com/drorlab/pensa","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"feature-selection","task_name":"feature selection"}],"methods":[{"method_slug":null,"method_name":"Library"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2212.02714","atlas_url":"https://app.syntology.ai/?focus=2212.02714","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2212.02714"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/drorlab/pensa","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":11,"unverified":1},"by_repo_kind":{"official":{"samples":12,"ran":11,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"603b5774c3863f43","entry":"calculate_pca","repo":"drorlab/pensa","repo_kind":"official","path":"pensa/dimensionality/pca.py","file_url":"https://github.com/drorlab/pensa/blob/HEAD/pensa/dimensionality/pca.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"603b5774c3863f43"}},{"code_sha256_prefix":"bbb10ad602da2935","entry":"feature_correlation","repo":"drorlab/pensa","repo_kind":"official","path":"pensa/comparison/statistics.py","file_url":"https://github.com/drorlab/pensa/blob/HEAD/pensa/comparison/statistics.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bbb10ad602da2935"}},{"code_sha256_prefix":"c3a73a27e09438d0","entry":"kolmogorov_smirnov_analysis","repo":"drorlab/pensa","repo_kind":"official","path":"pensa/comparison/statistics.py","file_url":"https://github.com/drorlab/pensa/blob/HEAD/pensa/comparison/statistics.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c3a73a27e09438d0"}},{"code_sha256_prefix":"70d68f4c31c51cad","entry":"mean_difference_analysis","repo":"drorlab/pensa","repo_kind":"official","path":"pensa/comparison/statistics.py","file_url":"https://github.com/drorlab/pensa/blob/HEAD/pensa/comparison/statistics.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"70d68f4c31c51cad"}},{"code_sha256_prefix":"d861400b58e997b2","entry":"pair_features_heatmap","repo":"drorlab/pensa","repo_kind":"official","path":"pensa/comparison/visualization.py","file_url":"https://github.com/drorlab/pensa/blob/HEAD/pensa/comparison/visualization.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d861400b58e997b2"}},{"code_sha256_prefix":"d2f6fdbed4b2fc19","entry":"pca_eigenvalues_plot","repo":"drorlab/pensa","repo_kind":"official","path":"pensa/dimensionality/pca.py","file_url":"https://github.com/drorlab/pensa/blob/HEAD/pensa/dimensionality/pca.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d2f6fdbed4b2fc19"}},{"code_sha256_prefix":"0757cc46884494ce","entry":"relative_entropy_analysis","repo":"drorlab/pensa","repo_kind":"official","path":"pensa/comparison/relative_entropy.py","file_url":"https://github.com/drorlab/pensa/blob/HEAD/pensa/comparison/relative_entropy.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0757cc46884494ce"}},{"code_sha256_prefix":"ee64bca4342a3444","entry":"resnum_heatmap","repo":"drorlab/pensa","repo_kind":"official","path":"pensa/comparison/visualization.py","file_url":"https://github.com/drorlab/pensa/blob/HEAD/pensa/comparison/visualization.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ee64bca4342a3444"}},{"code_sha256_prefix":"926fb0df5c224883","entry":"ssi_sem_analysis","repo":"drorlab/pensa","repo_kind":"official","path":"pensa/comparison/uncertainty_analysis.py","file_url":"https://github.com/drorlab/pensa/blob/HEAD/pensa/comparison/uncertainty_analysis.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"926fb0df5c224883"}},{"code_sha256_prefix":"adff94d4501f2fe0","entry":"tica_eigenvalues_plot","repo":"drorlab/pensa","repo_kind":"official","path":"pensa/dimensionality/tica.py","file_url":"https://github.com/drorlab/pensa/blob/HEAD/pensa/dimensionality/tica.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"adff94d4501f2fe0"}},{"code_sha256_prefix":"a9148ce57a03835c","entry":"tica_feature_correlation","repo":"drorlab/pensa","repo_kind":"official","path":"pensa/comparison/projections.py","file_url":"https://github.com/drorlab/pensa/blob/HEAD/pensa/comparison/projections.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a9148ce57a03835c"}},{"code_sha256_prefix":"f2655f2476b7ad0f","entry":"project_on_pc","repo":"drorlab/pensa","repo_kind":"official","path":"pensa/dimensionality/pca.py","file_url":"https://github.com/drorlab/pensa/blob/HEAD/pensa/dimensionality/pca.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f2655f2476b7ad0f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}