{"library":"propka","title":"PROPKA: Heuristic pKa calculations with ligands","description":"PROPKA 3 is a Python library and command-line tool for predicting the pKa values of ionizable groups in proteins and protein-ligand complexes based on their 3D structure. It is actively maintained by the Jensen Group, with regular updates addressing bug fixes, performance improvements, and new features. The current version is 3.5.1.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install propka"],"cli":{"name":"propka","version":"sh: 1: propka: not found"}},"imports":["from propka import run","import propka"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nimport propka.run\n\n# Example: Create a dummy PDB file for demonstration\n# In a real scenario, you would load an existing PDB file.\nexample_pdb_content = \"\"\"\nATOM      1  N   ALA A   1       0.000   0.000   0.000  1.00 20.00           N\nATOM      2  CA  ALA A   1       1.458   0.000   0.000  1.00 20.00           C\nATOM      3  C   ALA A   1       2.155   1.234   0.000  1.00 20.00           C\nATOM      4  O   ALA A   1       1.614   2.352   0.000  1.00 20.00           O\nATOM      5  CB  ALA A   1       2.000  -1.200   0.000  1.00 20.00           C\n\"\"\"\n\nwith open(\"dummy.pdb\", \"w\") as f:\n    f.write(example_pdb_content)\n\n# Run PROPKA programmatically\n# The output will typically be written to a .pka file\n# and potentially to standard output.\n\ntry:\n    # propka.run.run_propka expects a list of filenames\n    pka_results = propka.run.run_propka([\"dummy.pdb\"])\n\n    # The 'pka_results' object contains detailed pKa information.\n    # For a simple print of the summary (similar to command line output):\n    print(\"\\nPROPKA Calculation Summary (dummy.pdb):\")\n    # Note: Accessing results directly from the returned object might require\n    # traversing its internal structure, e.g., MolecularContainer.\n    # The exact structure depends on the PROPKA version and options.\n    # For demonstration, we'll indicate successful execution and refer to the .pka file.\n    print(\"Results written to dummy.pka and available in the returned object.\")\n\n    # You can read the generated .pka file for detailed results\n    # with open(\"dummy.pka\", \"r\") as f:\n    #     print(f.read())\n\nexcept Exception as e:\n    print(f\"An error occurred during PROPKA calculation: {e}\")\nfinally:\n    # Clean up the dummy PDB file and output if they exist\n    if os.path.exists(\"dummy.pdb\"):\n        os.remove(\"dummy.pdb\")\n    if os.path.exists(\"dummy.pka\"):\n        os.remove(\"dummy.pka\")","lang":"python","description":"This quickstart demonstrates how to use PROPKA as a Python module to calculate pKa values for a protein structure. It creates a minimal dummy PDB file, runs the `propka.run.run_propka` function, and prints a success message, indicating that detailed results are written to a `.pka` file.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":"3.5.1","pypi_latest":"3.5.1","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":1.6,"avg_import_s":0.13,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"propka","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.1,"mem_mb":4.6,"disk_size":"18.6M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"propka","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.08,"mem_mb":4.6,"disk_size":"19M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"propka","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.17,"mem_mb":5.6,"disk_size":"20.6M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"propka","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.16,"mem_mb":5.6,"disk_size":"21M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"propka","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.15,"mem_mb":5.3,"disk_size":"12.4M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"propka","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0.16,"mem_mb":5.3,"disk_size":"13M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"propka","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.14,"mem_mb":5.5,"disk_size":"12.2M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"propka","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0.15,"mem_mb":5.5,"disk_size":"13M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"propka","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.09,"mem_mb":4.4,"disk_size":"18.1M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"propka","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.8,"import_time_s":0.08,"mem_mb":4.4,"disk_size":"19M"}]}}