PDAnalysis


NamePDAnalysis JSON
Version 0.0.4 PyPI version JSON
download
home_pagehttps://github.com/mirabdi/PDAnalysis
SummarySoftware for analysing deformation between protein structures.
upload_time2023-11-20 13:02:18
maintainer
docs_urlNone
authorJohn M. McBride
requires_python>=3.7
license
keywords science biology biophysics molecular structural
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Protein Deformation Analysis (PDAnalysis)

Python package for calculating deformation between protein structures.  
  
Code is still actively being developed, but should work for most cases. If you encounter any problems, either post an [Issue](https://github.com/mirabdi/af2-analysis-code/issues) or send an email to [John McBride](mailto:jmmcbride@protonmail.com).


Documentation for PDAnalysis can be found [here](https://pdanalysis.readthedocs.io/en/latest/)

## Description

Calculates local similarity:
* Local Distance Difference Test (LDDT)

Calculates local deformation:
* Local Distance Difference (LDD)
* Neighborhood Distance
* Effective Strain
* Shear Strain
* Non-affine Strain

Calculates global deformation:
* Root-mean-squared-deviation (RMSD)


## Getting Started

### Dependencies

* python>=3.7
* numpy
* scipy
* pandas
* Biopython


### Installing

Using PDAnalysis as a module
* pip install PDAnalysis

Using PDAnalysis from the command line
* Clone this repository <code>git clone https://github.com/mirabdi/PDAnalysis.git</code>
* Run  <code>python setup.py install</code>
* From inside the cloned repository run <code>python main.py</code>

### Executing program

```
python main.py --protA [path(s) to protein A] --protB [path(s) to protein B]
```

Protein Input Types:
* "--protA"         :: Path to a single protein, or multiple paths separated by spaces. Allowed input types: .pdb, .cif, .npy, .txt.
* "--protB"         :: Path to a single protein, or multiple paths separated by spaces. Allowed input types: .pdb, .cif, .npy, .txt.
* "--prot\_listA"   :: Path to a simple text file with a list of paths to proteins.
* "--prot\_listB"   :: Path to a simple text file with a list of paths to proteins.

Optional Arguments:
* "--method"        :: Deformation method to use. Default is "strain". "all" calculates everything. Multiple methods can be used if separated by spaces. Allowed methods: "mut\_dist", "strain", "shear", "non_affine", "ldd", "lddt", "rmsd". Note that "rmsd" only works for comparisons between single structures (no averaging); running "rmsd" with multple input structures will only use one protein from A and one protein from B.
* "--min\_plddt"    :: Minimum pLDDT cutoff: exclude from calculations any atoms with pLDDT lower than the cutoff. Recommended value = 70.
* "--max\_bfactor"  :: Maximum bfactor cutoff: exclude from calculations any atoms with B-factor higher than the cutoff.
* "--neigh\_cut"    :: Neighbor cutoff distance in Angstroms.
* "--lddt\_cutoffs" :: Specify the distance cutoffs used in LDDT calculation. Default = (0.5, 1, 2, 4).


Examples:  
Calculates "Effective Strain" between two PDB conformations, and ignore residues with pLDDT < 70:
```
python main.py --protA test_data/Lysozyme/AF-P61626-F1-model_v4.pdb --protB test_data/Lysozyme/AF-P79180-F1-model_v4.pdb --min_plddt 70
```

Calculates "LDDT" using one PDB file and two PDB files (an averaged configuration) and use a neighbor cutoff distance of 10 Angstroms:
```
python main.py --protA test_data/GFP/GFP_mutant.pdb --protB test_data/GFP/GFP_WT.pdb test_data/GFP/GFP_WT_ver2.pdb --neigh_cut 10 --method lddt
```

Calculates "Effective Strain" and "Shear Strain" using two lists of PDB files (averaging over all proteins in each list), use a neighbor cutoff distance of 12 Angstroms, and ignore residues with pLDDT < 70:
```
python main.py --prot_listA test_data/GFP/mut_all.txt --prot_listB test_data/GFP/wt_all.txt --neigh_cut 12 --min_plddt 70 --method strain shear
```

Calculates all measures between two PDB conformations, and uses alternative LDDT cutoff values:
```
python main.py --protA test_data/Lysozyme/AF-P61626-F1-model_v4.pdb --protB test_data/Lysozyme/AF-P79180-F1-model_v4.pdb --method all --lddt_cutoffs 0.125 0.25 0.5 1
```

## Help

For more detailed help on running code:
```
python main.py --help
```

## Authors

* [John M. McBride](https://github.com/jomimc)
* [Amirbek Abdirasulov](https://github.com/amirbek)
* [Tsvi Tlusty](http://www.sns.ias.edu/~tlusty/index.html)

## Version History

* 0.0.0
    * Pre-release
* 0.0.1
    * First working release

## License

This project is licensed under the MIT License - see the LICENSE.md file for details

## Acknowledgments

* If you use PDAnalysis in your work, please cite [McBride, J. M., Polev, K., Abdirasulov, A., Reinharz, V., Grzybowski, B. A., & Tlusty, T. AlphaFold2 can predict single-mutation effects](https://www.biorxiv.org/content/10.1101/2022.04.14.488301v5).
* If using LDDT, please cite [Mariani, Valerio, Marco Biasini, Alessandro Barbato, and
Torsten Schwede (2013), lDDT: a local superposition-free score for comparing protein structures and models using distance difference tests, Bioinformatics 29 (21), 2722–2728](https://arxiv.org/abs/https://academic.oup.com/bioinformatics/article-pdf/29/21/2722/18533347/btt473.pdf).
* The code for Shear Strain was provided by Jacques Rougemont. If using this method, please cite [Eckmann, J P, J. Rougemont, and T. Tlusty (2019), Colloquium: Proteins: The physics of amorphous evolving matter, Rev. Mod. Phys. 91, 031001](https://journals.aps.org/rmp/abstract/10.1103/RevModPhys.91.031001).
* If using Non-affine Strain, please cite [Falk, M L, and J. S. Langer (1998), Dynamics of viscoplastic deformation in amorphous solids, Phys. Rev. E 57, 7192–7205](https://journals.aps.org/pre/abstract/10.1103/PhysRevE.57.7192). We also give credit to [matscipy](https://github.com/libAtoms/matscipy) for an earlier implementation.




            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/mirabdi/PDAnalysis",
    "name": "PDAnalysis",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "science biology biophysics molecular structural",
    "author": "John M. McBride",
    "author_email": "jmmcbride@protonmail.com",
    "download_url": "https://files.pythonhosted.org/packages/80/eb/b0c8b9b6372a66b2389cc76840e8fab7625b2f53b06eb0b9eada5545ed83/PDAnalysis-0.0.4.tar.gz",
    "platform": null,
    "description": "# Protein Deformation Analysis (PDAnalysis)\n\nPython package for calculating deformation between protein structures.  \n  \nCode is still actively being developed, but should work for most cases. If you encounter any problems, either post an [Issue](https://github.com/mirabdi/af2-analysis-code/issues) or send an email to [John McBride](mailto:jmmcbride@protonmail.com).\n\n\nDocumentation for PDAnalysis can be found [here](https://pdanalysis.readthedocs.io/en/latest/)\n\n## Description\n\nCalculates local similarity:\n* Local Distance Difference Test (LDDT)\n\nCalculates local deformation:\n* Local Distance Difference (LDD)\n* Neighborhood Distance\n* Effective Strain\n* Shear Strain\n* Non-affine Strain\n\nCalculates global deformation:\n* Root-mean-squared-deviation (RMSD)\n\n\n## Getting Started\n\n### Dependencies\n\n* python>=3.7\n* numpy\n* scipy\n* pandas\n* Biopython\n\n\n### Installing\n\nUsing PDAnalysis as a module\n* pip install PDAnalysis\n\nUsing PDAnalysis from the command line\n* Clone this repository <code>git clone https://github.com/mirabdi/PDAnalysis.git</code>\n* Run  <code>python setup.py install</code>\n* From inside the cloned repository run <code>python main.py</code>\n\n### Executing program\n\n```\npython main.py --protA [path(s) to protein A] --protB [path(s) to protein B]\n```\n\nProtein Input Types:\n* \"--protA\"         :: Path to a single protein, or multiple paths separated by spaces. Allowed input types: .pdb, .cif, .npy, .txt.\n* \"--protB\"         :: Path to a single protein, or multiple paths separated by spaces. Allowed input types: .pdb, .cif, .npy, .txt.\n* \"--prot\\_listA\"   :: Path to a simple text file with a list of paths to proteins.\n* \"--prot\\_listB\"   :: Path to a simple text file with a list of paths to proteins.\n\nOptional Arguments:\n* \"--method\"        :: Deformation method to use. Default is \"strain\". \"all\" calculates everything. Multiple methods can be used if separated by spaces. Allowed methods: \"mut\\_dist\", \"strain\", \"shear\", \"non_affine\", \"ldd\", \"lddt\", \"rmsd\". Note that \"rmsd\" only works for comparisons between single structures (no averaging); running \"rmsd\" with multple input structures will only use one protein from A and one protein from B.\n* \"--min\\_plddt\"    :: Minimum pLDDT cutoff: exclude from calculations any atoms with pLDDT lower than the cutoff. Recommended value = 70.\n* \"--max\\_bfactor\"  :: Maximum bfactor cutoff: exclude from calculations any atoms with B-factor higher than the cutoff.\n* \"--neigh\\_cut\"    :: Neighbor cutoff distance in Angstroms.\n* \"--lddt\\_cutoffs\" :: Specify the distance cutoffs used in LDDT calculation. Default = (0.5, 1, 2, 4).\n\n\nExamples:  \nCalculates \"Effective Strain\" between two PDB conformations, and ignore residues with pLDDT < 70:\n```\npython main.py --protA test_data/Lysozyme/AF-P61626-F1-model_v4.pdb --protB test_data/Lysozyme/AF-P79180-F1-model_v4.pdb --min_plddt 70\n```\n\nCalculates \"LDDT\" using one PDB file and two PDB files (an averaged configuration) and use a neighbor cutoff distance of 10 Angstroms:\n```\npython main.py --protA test_data/GFP/GFP_mutant.pdb --protB test_data/GFP/GFP_WT.pdb test_data/GFP/GFP_WT_ver2.pdb --neigh_cut 10 --method lddt\n```\n\nCalculates \"Effective Strain\" and \"Shear Strain\" using two lists of PDB files (averaging over all proteins in each list), use a neighbor cutoff distance of 12 Angstroms, and ignore residues with pLDDT < 70:\n```\npython main.py --prot_listA test_data/GFP/mut_all.txt --prot_listB test_data/GFP/wt_all.txt --neigh_cut 12 --min_plddt 70 --method strain shear\n```\n\nCalculates all measures between two PDB conformations, and uses alternative LDDT cutoff values:\n```\npython main.py --protA test_data/Lysozyme/AF-P61626-F1-model_v4.pdb --protB test_data/Lysozyme/AF-P79180-F1-model_v4.pdb --method all --lddt_cutoffs 0.125 0.25 0.5 1\n```\n\n## Help\n\nFor more detailed help on running code:\n```\npython main.py --help\n```\n\n## Authors\n\n* [John M. McBride](https://github.com/jomimc)\n* [Amirbek Abdirasulov](https://github.com/amirbek)\n* [Tsvi Tlusty](http://www.sns.ias.edu/~tlusty/index.html)\n\n## Version History\n\n* 0.0.0\n    * Pre-release\n* 0.0.1\n    * First working release\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE.md file for details\n\n## Acknowledgments\n\n* If you use PDAnalysis in your work, please cite [McBride, J. M., Polev, K., Abdirasulov, A., Reinharz, V., Grzybowski, B. A., & Tlusty, T. AlphaFold2 can predict single-mutation effects](https://www.biorxiv.org/content/10.1101/2022.04.14.488301v5).\n* If using LDDT, please cite [Mariani, Valerio, Marco Biasini, Alessandro Barbato, and\nTorsten Schwede (2013), lDDT: a local superposition-free score for comparing protein structures and models using distance difference tests, Bioinformatics 29 (21), 2722\u20132728](https://arxiv.org/abs/https://academic.oup.com/bioinformatics/article-pdf/29/21/2722/18533347/btt473.pdf).\n* The code for Shear Strain was provided by Jacques Rougemont. If using this method, please cite [Eckmann, J P, J. Rougemont, and T. Tlusty (2019), Colloquium: Proteins: The physics of amorphous evolving matter, Rev. Mod. Phys. 91, 031001](https://journals.aps.org/rmp/abstract/10.1103/RevModPhys.91.031001).\n* If using Non-affine Strain, please cite [Falk, M L, and J. S. Langer (1998), Dynamics of viscoplastic deformation in amorphous solids, Phys. Rev. E 57, 7192\u20137205](https://journals.aps.org/pre/abstract/10.1103/PhysRevE.57.7192). We also give credit to [matscipy](https://github.com/libAtoms/matscipy) for an earlier implementation.\n\n\n\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Software for analysing deformation between protein structures.",
    "version": "0.0.4",
    "project_urls": {
        "Homepage": "https://github.com/mirabdi/PDAnalysis"
    },
    "split_keywords": [
        "science",
        "biology",
        "biophysics",
        "molecular",
        "structural"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f7a03ffe19799e3f7632f7807e65d975d88fd201173a1931cf243f84c7fbccdc",
                "md5": "015b36d7c659a71628c4d4578f79a227",
                "sha256": "c9f1b016048ad77c4160f902d9e1843c17b91f551e7917bcf09375dd704e150c"
            },
            "downloads": -1,
            "filename": "PDAnalysis-0.0.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "015b36d7c659a71628c4d4578f79a227",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 19691,
            "upload_time": "2023-11-20T13:02:16",
            "upload_time_iso_8601": "2023-11-20T13:02:16.502657Z",
            "url": "https://files.pythonhosted.org/packages/f7/a0/3ffe19799e3f7632f7807e65d975d88fd201173a1931cf243f84c7fbccdc/PDAnalysis-0.0.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "80ebb0c8b9b6372a66b2389cc76840e8fab7625b2f53b06eb0b9eada5545ed83",
                "md5": "bd90a48d699d341c2aef708633584d87",
                "sha256": "ba49ef4e66fb0063846340b6450b0373cffd8de3f77f55dcd5ccc1260ccd3768"
            },
            "downloads": -1,
            "filename": "PDAnalysis-0.0.4.tar.gz",
            "has_sig": false,
            "md5_digest": "bd90a48d699d341c2aef708633584d87",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 18499,
            "upload_time": "2023-11-20T13:02:18",
            "upload_time_iso_8601": "2023-11-20T13:02:18.625220Z",
            "url": "https://files.pythonhosted.org/packages/80/eb/b0c8b9b6372a66b2389cc76840e8fab7625b2f53b06eb0b9eada5545ed83/PDAnalysis-0.0.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-11-20 13:02:18",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "mirabdi",
    "github_project": "PDAnalysis",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "pdanalysis"
}
        
Elapsed time: 0.14648s