diff --git a/.gitignore b/.gitignore index da18743e87cee2eec8c60431c40fa70563d79927..0838ab626bce9b7fb4937f85e584d22e01270e76 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ examples/dev/ +examples*dev/ examples/tmp/ docs/olds/ *.simg diff --git a/CHANGELOG b/CHANGELOG index c6df0aa8ba771b0b903e11b332116cbe191841f7..8bde8a12e94f93dd8cf9bf15ac654980d71df09f 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,32 +1,32 @@ -1. What's new in version 2.4 ? +What's new in version 2.4 ? -------------------------------- - 1.1 Potential of Mean Forces for dihedral angles () and H-bonds () - 1.2 Clustering step during the iterative process - 1.3 Extended scoring function including PMF, coulombic and full Lennard Jones functions - 1.4 Restraints generation from evolutionary couplings and secondary structure prediction + * Potential of Mean Forces for dihedral angles () and H-bonds () + * Clustering step during the iterative process + * Extended scoring function including PMF, coulombic and full Lennard Jones functions + * Restraints generation from evolutionary couplings and secondary structure prediction -1. What's new in version 2.3? +What's new in version 2.3? ---------------------------------- -- bug fixes - -- support of CCPN version 2 (instead of CCPN v1) - -- extension of symmetric oligomers support (C3, C5 and D2) - (in the GUI, go to "Data > Symmetry") - -- introduction of the log-harmonic potential for distance restraints (Nilges et al. Structure, 2008) - (go to "Structure Generation > CNS > Annealing Parameters > Log-Hamonic potential") - -- import of CCPN Models/Structure ensembles as initial structure for the minimization protocol or - as template structures for the initial assignment/calibration step. - -- addition of Zinc ions coordination (through covalent bonds) - (go to "Add > Zinc Coordination") - -- Automated Molprobilty (clashlist) analysis - (go to "Analyses > Molprobity Clashlist") - -- addition of old aria1.x features (keep_structures, only fully assigned peaks) + * bug fixes + + * support of CCPN version 2 (instead of CCPN v1) + + * extension of symmetric oligomers support (C3, C5 and D2) + (in the GUI, go to "Data > Symmetry") + + * introduction of the log-harmonic potential for distance restraints (Nilges et al. Structure, 2008) + (go to "Structure Generation > CNS > Annealing Parameters > Log-Hamonic potential") + + * import of CCPN Models/Structure ensembles as initial structure for the minimization protocol or + as template structures for the initial assignment/calibration step. + + * addition of Zinc ions coordination (through covalent bonds) + (go to "Add > Zinc Coordination") + + * Automated Molprobilty (clashlist) analysis + (go to "Analyses > Molprobity Clashlist") + + * addition of old aria1.x features (keep_structures, only fully assigned peaks) diff --git a/README.rst b/README.rst index c552de7690a66c9d0301bf0e06c7809af29ec3db..394dc0eb2455a411796a3f2c24605085acb54151 100644 --- a/README.rst +++ b/README.rst @@ -1,50 +1,48 @@ +===================================================== de Novo Ambiguous Restraints for Iterative Assignment ===================================================== **A pipeline for automated de novo contact map assignment** -|Pipeline status| |Coverage report| +.. image:: https://gitlab.pasteur.fr/bis-aria/ariaec/badges/master/pipeline.svg + :target: https://gitlab.pasteur.fr/bis-aria/ariaec/commits/master + :alt: Pipeline status + +.. image:: https://gitlab.pasteur.fr/bis-aria/ariaec/badges/master/coverage.svg + :target: https://gitlab.pasteur.fr/bis-aria/ariaec/commits/master + :alt: Coverage report + ``ariaec`` is a Python_ library that provides *de novo* structure prediction based on ARIA_ pipeline and evolutionary restraints inferred from co-evolution. -The package add several command line interfaces aside the usual ARIA commands in - order to convert data, setup an ARIA project with evolutionary restraints, - analyze contact maps or protein structures and generate statistics from a culled - list of PDB files. An exhaustive list of the commands is available in the - section -``nbsphinx`` is a Sphinx_ extension that provides a source parser for -``*.ipynb`` files. -Custom Sphinx directives are used to show `Jupyter `_ code cells (and of -course their results) in both HTML and LaTeX output. -Un-evaluated notebooks -- i.e. notebooks without stored output cells -- will be -automatically executed during the Sphinx build process. -Quick Start: ------------- - #. Be sure to check if ``pip`` (>= 9.0), ``setuptools`` (>= 18.0), ``numpy`` -(>= 1.11) and ``matplotlib`` are actually instaled in your personnal python -installation or virtual environment. +The package add a new command line interface aside the usual ARIA commands in +order to convert data, setup an ARIA project with evolutionary restraints, +analyze contact maps or protein structures and generate statistics from a culled +list of PDB files. + + +Quick Start +----------- + 1. Be sure to check if the following packages are correctly installed with + your python installation or virtual environment. - #. Download the ``zip`` or ``tar`` version at https://gitlab.pasteur.fr/bis-aria/ariaec + * ``pip`` (>= 9.0) + * ``setuptools`` (>= 18.0) + * ``numpy`` (>= 1.11) + * ``matplotlib`` - #. Edit your ``index.rst`` and add the names of your ``*.ipynb`` files - to the ``toctree``. + 2. Download the ``zip`` or ``tar`` version at Gitlab_ - #. Run Sphinx! + 3. Extract the files and run ``pip install .`` inside the new directory -Online documentation (and example of use): - http://nbsphinx.readthedocs.io/ +More explanation about the ``pip`` installation can be found in the +:doc: `installation` section -Source code repository (and issue tracker): - https://github.com/spatialaudio/nbsphinx/ -License: --------- -.. MIT -- see the file ``LICENSE`` for details. .. Hyperlinks +.. _Gitlab: https://gitlab.pasteur.fr/bis-aria/ariaec .. _ARIA: http://aria.pasteur.fr .. _Python: https://www.python.org -.. _Sphinx: http://sphinx-doc.org/ -.. _Jupyter Notebook: http://jupyter.org/ diff --git a/aria/conbox/commands.py b/aria/conbox/commands.py index eb19a88698e11b1f16cb83a8a568df0cd5e819cd..bcac5fe5b0c1faf855b2a577c62657bf57919056 100644 --- a/aria/conbox/commands.py +++ b/aria/conbox/commands.py @@ -212,8 +212,8 @@ class AriaEcCommands(object): help="secondary structure prediction file") group.add_argument("-p", "--ariaproject", dest="ariaproject", action=ReadableFile, - help="ARIA project file. This file will be used as" - "an initialization file if") + help="ARIA project file used to initialize a new " + "project with contact map data.") group.add_argument("-t", "--type", nargs="*", dest="contact_types", choices=self.contact_types, help="Infile(s) contact " @@ -231,7 +231,7 @@ class AriaEcCommands(object): group.add_argument("--no-filter", dest="no_filter", action="store_true", default=False, help="Do not filter contact map.") group.add_argument("--extract-all", dest="extractall", action="store_true", - default=False, help="Extract data or all data and" + default=False, help="Extract data or all data and " "parameters if an ARIA project" "is defined with -p option") return parser diff --git a/docs/_build/doctrees/contents.doctree b/docs/_build/doctrees/contents.doctree deleted file mode 100644 index c39c4a1e2446bb870a62dbfad8f1b40746c1cb8d..0000000000000000000000000000000000000000 Binary files a/docs/_build/doctrees/contents.doctree and /dev/null differ diff --git a/docs/_build/doctrees/copyright.doctree b/docs/_build/doctrees/copyright.doctree deleted file mode 100644 index 7d110a629d68205ab19ea27b4cc6013fd99b7f3a..0000000000000000000000000000000000000000 Binary files a/docs/_build/doctrees/copyright.doctree and /dev/null differ diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle deleted file mode 100644 index d33247210ef006896462da1635f694de75dfde1e..0000000000000000000000000000000000000000 Binary files a/docs/_build/doctrees/environment.pickle and /dev/null differ diff --git a/docs/_build/doctrees/glossary.doctree b/docs/_build/doctrees/glossary.doctree deleted file mode 100644 index b71bf39c0b2dc6a05a67a769854dae2901bb2684..0000000000000000000000000000000000000000 Binary files a/docs/_build/doctrees/glossary.doctree and /dev/null differ diff --git a/docs/_build/doctrees/installation.doctree b/docs/_build/doctrees/installation.doctree deleted file mode 100644 index 2422faaa0e3e29c6bfbd99c493f38fa19f8d123d..0000000000000000000000000000000000000000 Binary files a/docs/_build/doctrees/installation.doctree and /dev/null differ diff --git a/docs/_build/doctrees/tutorial.doctree b/docs/_build/doctrees/tutorial.doctree deleted file mode 100644 index a167d75d120d104283ae96bca3f8e5a398a8a42a..0000000000000000000000000000000000000000 Binary files a/docs/_build/doctrees/tutorial.doctree and /dev/null differ diff --git a/docs/_build/html/_sources/contents.rst.txt b/docs/_build/html/_sources/contents.rst.txt deleted file mode 100644 index d34d8cf2d0e26f91c4253bf5186d43280bf19aee..0000000000000000000000000000000000000000 --- a/docs/_build/html/_sources/contents.rst.txt +++ /dev/null @@ -1,29 +0,0 @@ -.. _contents: - -Sphinx documentation contents -============================= - -.. toctree:: - :maxdepth: 2 - - installation - tutorial - modules - - copyright - - -Indices and tables -================== - -.. only:: builder_html - - * :ref:`genindex` - * :ref:`modindex` - * :ref:`search` - * :ref:`glossary` - -.. only:: not builder_html - - * :ref:`modindex` - * :ref:`glossary` \ No newline at end of file diff --git a/docs/_build/html/_sources/copyright.rst.txt b/docs/_build/html/_sources/copyright.rst.txt deleted file mode 100644 index 6a3311cee021bc5f238d0380c5ef9650d863bf22..0000000000000000000000000000000000000000 --- a/docs/_build/html/_sources/copyright.rst.txt +++ /dev/null @@ -1,9 +0,0 @@ -:tocdepth: 2 - -.. _copyright: - -Sphinx authors -============== - -.. include:: ../COPYRIGHT - diff --git a/docs/_build/html/_sources/glossary.rst.txt b/docs/_build/html/_sources/glossary.rst.txt deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/docs/_build/html/_sources/installation.rst.txt b/docs/_build/html/_sources/installation.rst.txt deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/docs/_build/html/_sources/tutorial.rst.txt b/docs/_build/html/_sources/tutorial.rst.txt deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/docs/_build/html/_static/alabaster.css b/docs/_build/html/_static/alabaster.css deleted file mode 100644 index be65b13746c7033a612b3de3c75c6750f5479134..0000000000000000000000000000000000000000 --- a/docs/_build/html/_static/alabaster.css +++ /dev/null @@ -1,693 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -@import url("basic.css"); - -/* -- page layout ----------------------------------------------------------- */ - -body { - font-family: 'goudy old style', 'minion pro', 'bell mt', Georgia, 'Hiragino Mincho Pro', serif; - font-size: 17px; - background-color: #fff; - color: #000; - margin: 0; - padding: 0; -} - - -div.document { - width: 940px; - margin: 30px auto 0 auto; -} - -div.documentwrapper { - float: left; - width: 100%; -} - -div.bodywrapper { - margin: 0 0 0 220px; -} - -div.sphinxsidebar { - width: 220px; - font-size: 14px; - line-height: 1.5; -} - -hr { - border: 1px solid #B1B4B6; -} - -div.body { - background-color: #fff; - color: #3E4349; - padding: 0 30px 0 30px; -} - -div.body > .section { - text-align: left; -} - -div.footer { - width: 940px; - margin: 20px auto 30px auto; - font-size: 14px; - color: #888; - text-align: right; -} - -div.footer a { - color: #888; -} - -p.caption { - font-family: inherit; - font-size: inherit; -} - - -div.relations { - display: none; -} - - -div.sphinxsidebar a { - color: #444; - text-decoration: none; - border-bottom: 1px dotted #999; -} - -div.sphinxsidebar a:hover { - border-bottom: 1px solid #999; -} - -div.sphinxsidebarwrapper { - padding: 18px 10px; -} - -div.sphinxsidebarwrapper p.logo { - padding: 0; - margin: -10px 0 0 0px; - text-align: center; -} - -div.sphinxsidebarwrapper h1.logo { - margin-top: -10px; - text-align: center; - margin-bottom: 5px; - text-align: left; -} - -div.sphinxsidebarwrapper h1.logo-name { - margin-top: 0px; -} - -div.sphinxsidebarwrapper p.blurb { - margin-top: 0; - font-style: normal; -} - -div.sphinxsidebar h3, -div.sphinxsidebar h4 { - font-family: 'Garamond', 'Georgia', serif; - color: #444; - font-size: 24px; - font-weight: normal; - margin: 0 0 5px 0; - padding: 0; -} - -div.sphinxsidebar h4 { - font-size: 20px; -} - -div.sphinxsidebar h3 a { - color: #444; -} - -div.sphinxsidebar p.logo a, -div.sphinxsidebar h3 a, -div.sphinxsidebar p.logo a:hover, -div.sphinxsidebar h3 a:hover { - border: none; -} - -div.sphinxsidebar p { - color: #555; - margin: 10px 0; -} - -div.sphinxsidebar ul { - margin: 10px 0; - padding: 0; - color: #000; -} - -div.sphinxsidebar ul li.toctree-l1 > a { - font-size: 120%; -} - -div.sphinxsidebar ul li.toctree-l2 > a { - font-size: 110%; -} - -div.sphinxsidebar input { - border: 1px solid #CCC; - font-family: 'goudy old style', 'minion pro', 'bell mt', Georgia, 'Hiragino Mincho Pro', serif; - font-size: 1em; -} - -div.sphinxsidebar hr { - border: none; - height: 1px; - color: #AAA; - background: #AAA; - - text-align: left; - margin-left: 0; - width: 50%; -} - -/* -- body styles ----------------------------------------------------------- */ - -a { - color: #004B6B; - text-decoration: underline; -} - -a:hover { - color: #6D4100; - text-decoration: underline; -} - -div.body h1, -div.body h2, -div.body h3, -div.body h4, -div.body h5, -div.body h6 { - font-family: 'Garamond', 'Georgia', serif; - font-weight: normal; - margin: 30px 0px 10px 0px; - padding: 0; -} - -div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; } -div.body h2 { font-size: 180%; } -div.body h3 { font-size: 150%; } -div.body h4 { font-size: 130%; } -div.body h5 { font-size: 100%; } -div.body h6 { font-size: 100%; } - -a.headerlink { - color: #DDD; - padding: 0 4px; - text-decoration: none; -} - -a.headerlink:hover { - color: #444; - background: #EAEAEA; -} - -div.body p, div.body dd, div.body li { - line-height: 1.4em; -} - -div.admonition { - margin: 20px 0px; - padding: 10px 30px; - background-color: #EEE; - border: 1px solid #CCC; -} - -div.admonition tt.xref, div.admonition code.xref, div.admonition a tt { - background-color: #FBFBFB; - border-bottom: 1px solid #fafafa; -} - -div.admonition p.admonition-title { - font-family: 'Garamond', 'Georgia', serif; - font-weight: normal; - font-size: 24px; - margin: 0 0 10px 0; - padding: 0; - line-height: 1; -} - -div.admonition p.last { - margin-bottom: 0; -} - -div.highlight { - background-color: #fff; -} - -dt:target, .highlight { - background: #FAF3E8; -} - -div.warning { - background-color: #FCC; - border: 1px solid #FAA; -} - -div.danger { - background-color: #FCC; - border: 1px solid #FAA; - -moz-box-shadow: 2px 2px 4px #D52C2C; - -webkit-box-shadow: 2px 2px 4px #D52C2C; - box-shadow: 2px 2px 4px #D52C2C; -} - -div.error { - background-color: #FCC; - border: 1px solid #FAA; - -moz-box-shadow: 2px 2px 4px #D52C2C; - -webkit-box-shadow: 2px 2px 4px #D52C2C; - box-shadow: 2px 2px 4px #D52C2C; -} - -div.caution { - background-color: #FCC; - border: 1px solid #FAA; -} - -div.attention { - background-color: #FCC; - border: 1px solid #FAA; -} - -div.important { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.note { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.tip { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.hint { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.seealso { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.topic { - background-color: #EEE; -} - -p.admonition-title { - display: inline; -} - -p.admonition-title:after { - content: ":"; -} - -pre, tt, code { - font-family: 'Consolas', 'Menlo', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; - font-size: 0.9em; -} - -.hll { - background-color: #FFC; - margin: 0 -12px; - padding: 0 12px; - display: block; -} - -img.screenshot { -} - -tt.descname, tt.descclassname, code.descname, code.descclassname { - font-size: 0.95em; -} - -tt.descname, code.descname { - padding-right: 0.08em; -} - -img.screenshot { - -moz-box-shadow: 2px 2px 4px #EEE; - -webkit-box-shadow: 2px 2px 4px #EEE; - box-shadow: 2px 2px 4px #EEE; -} - -table.docutils { - border: 1px solid #888; - -moz-box-shadow: 2px 2px 4px #EEE; - -webkit-box-shadow: 2px 2px 4px #EEE; - box-shadow: 2px 2px 4px #EEE; -} - -table.docutils td, table.docutils th { - border: 1px solid #888; - padding: 0.25em 0.7em; -} - -table.field-list, table.footnote { - border: none; - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -table.footnote { - margin: 15px 0; - width: 100%; - border: 1px solid #EEE; - background: #FDFDFD; - font-size: 0.9em; -} - -table.footnote + table.footnote { - margin-top: -15px; - border-top: none; -} - -table.field-list th { - padding: 0 0.8em 0 0; -} - -table.field-list td { - padding: 0; -} - -table.field-list p { - margin-bottom: 0.8em; -} - -/* Cloned from - * https://github.com/sphinx-doc/sphinx/commit/ef60dbfce09286b20b7385333d63a60321784e68 - */ -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -table.footnote td.label { - width: .1px; - padding: 0.3em 0 0.3em 0.5em; -} - -table.footnote td { - padding: 0.3em 0.5em; -} - -dl { - margin: 0; - padding: 0; -} - -dl dd { - margin-left: 30px; -} - -blockquote { - margin: 0 0 0 30px; - padding: 0; -} - -ul, ol { - /* Matches the 30px from the narrow-screen "li > ul" selector below */ - margin: 10px 0 10px 30px; - padding: 0; -} - -pre { - background: #EEE; - padding: 7px 30px; - margin: 15px 0px; - line-height: 1.3em; -} - -div.viewcode-block:target { - background: #ffd; -} - -dl pre, blockquote pre, li pre { - margin-left: 0; - padding-left: 30px; -} - -tt, code { - background-color: #ecf0f3; - color: #222; - /* padding: 1px 2px; */ -} - -tt.xref, code.xref, a tt { - background-color: #FBFBFB; - border-bottom: 1px solid #fff; -} - -a.reference { - text-decoration: none; - border-bottom: 1px dotted #004B6B; -} - -/* Don't put an underline on images */ -a.image-reference, a.image-reference:hover { - border-bottom: none; -} - -a.reference:hover { - border-bottom: 1px solid #6D4100; -} - -a.footnote-reference { - text-decoration: none; - font-size: 0.7em; - vertical-align: top; - border-bottom: 1px dotted #004B6B; -} - -a.footnote-reference:hover { - border-bottom: 1px solid #6D4100; -} - -a:hover tt, a:hover code { - background: #EEE; -} - - -@media screen and (max-width: 870px) { - - div.sphinxsidebar { - display: none; - } - - div.document { - width: 100%; - - } - - div.documentwrapper { - margin-left: 0; - margin-top: 0; - margin-right: 0; - margin-bottom: 0; - } - - div.bodywrapper { - margin-top: 0; - margin-right: 0; - margin-bottom: 0; - margin-left: 0; - } - - ul { - margin-left: 0; - } - - li > ul { - /* Matches the 30px from the "ul, ol" selector above */ - margin-left: 30px; - } - - .document { - width: auto; - } - - .footer { - width: auto; - } - - .bodywrapper { - margin: 0; - } - - .footer { - width: auto; - } - - .github { - display: none; - } - - - -} - - - -@media screen and (max-width: 875px) { - - body { - margin: 0; - padding: 20px 30px; - } - - div.documentwrapper { - float: none; - background: #fff; - } - - div.sphinxsidebar { - display: block; - float: none; - width: 102.5%; - margin: 50px -30px -20px -30px; - padding: 10px 20px; - background: #333; - color: #FFF; - } - - div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p, - div.sphinxsidebar h3 a { - color: #fff; - } - - div.sphinxsidebar a { - color: #AAA; - } - - div.sphinxsidebar p.logo { - display: none; - } - - div.document { - width: 100%; - margin: 0; - } - - div.footer { - display: none; - } - - div.bodywrapper { - margin: 0; - } - - div.body { - min-height: 0; - padding: 0; - } - - .rtd_doc_footer { - display: none; - } - - .document { - width: auto; - } - - .footer { - width: auto; - } - - .footer { - width: auto; - } - - .github { - display: none; - } -} - - -/* misc. */ - -.revsys-inline { - display: none!important; -} - -/* Make nested-list/multi-paragraph items look better in Releases changelog - * pages. Without this, docutils' magical list fuckery causes inconsistent - * formatting between different release sub-lists. - */ -div#changelog > div.section > ul > li > p:only-child { - margin-bottom: 0; -} - -/* Hide fugly table cell borders in ..bibliography:: directive output */ -table.docutils.citation, table.docutils.citation td, table.docutils.citation th { - border: none; - /* Below needed in some edge cases; if not applied, bottom shadows appear */ - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} \ No newline at end of file diff --git a/docs/_build/html/_static/custom.css b/docs/_build/html/_static/custom.css deleted file mode 100644 index 2a924f1d6a8bc930c5296bdb2d5c2d3e39b04a1c..0000000000000000000000000000000000000000 --- a/docs/_build/html/_static/custom.css +++ /dev/null @@ -1 +0,0 @@ -/* This file intentionally left blank. */ diff --git a/docs/_build/html/contents.html b/docs/_build/html/contents.html deleted file mode 100644 index 9bb303dd40c24326400e585d7d4bbe80c46f1223..0000000000000000000000000000000000000000 --- a/docs/_build/html/contents.html +++ /dev/null @@ -1,244 +0,0 @@ - - -<!DOCTYPE html> -<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> -<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> -<head> - <meta charset="utf-8"> - - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - - <title>Sphinx documentation contents — ARIA 4 documentation</title> - - - - - - - - - - - - - - - - - - <link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> - - - - - - <link rel="index" title="Index" - href="genindex.html"/> - <link rel="search" title="Search" href="search.html"/> - <link rel="copyright" title="Copyright" href="copyright.html"/> - <link rel="top" title="ARIA 4 documentation" href="index.html"/> - - - <script src="_static/js/modernizr.min.js"></script> - -</head> - -<body class="wy-body-for-nav" role="document"> - - - <div class="wy-grid-for-nav"> - - - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search"> - - - - <a href="index.html" class="icon icon-home"> ARIA - - - - </a> - - - - - <div class="version"> - 2 - </div> - - - - -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - - - </div> - - <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> - - - - - - - <!-- Local TOC --> - <div class="local-toc"><ul> -<li><a class="reference internal" href="#">Sphinx documentation contents</a></li> -<li><a class="reference internal" href="#indices-and-tables">Indices and tables</a></li> -</ul> -</div> - - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> - - - <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> - - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="index.html">ARIA</a> - - </nav> - - - - <div class="wy-nav-content"> - <div class="rst-content"> - - - - - - - - - - - - - - - - -<div role="navigation" aria-label="breadcrumbs navigation"> - - <ul class="wy-breadcrumbs"> - - <li><a href="index.html">Docs</a> »</li> - - <li>Sphinx documentation contents</li> - - - <li class="wy-breadcrumbs-aside"> - - - <a href="_sources/contents.rst.txt" rel="nofollow"> View page source</a> - - - </li> - - </ul> - - - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - <div class="section" id="sphinx-documentation-contents"> -<span id="contents"></span><h1>Sphinx documentation contents<a class="headerlink" href="#sphinx-documentation-contents" title="Permalink to this headline">¶</a></h1> -<div class="toctree-wrapper compound"> -<ul> -<li class="toctree-l1"><a class="reference internal" href="modules.html">ariaec</a><ul class="simple"> -</ul> -</li> -<li class="toctree-l1"><a class="reference internal" href="copyright.html">Sphinx authors</a></li> -</ul> -</div> -</div> -<div class="section" id="indices-and-tables"> -<h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline">¶</a></h1> -<ul class="simple"> -<li><a class="reference internal" href="genindex.html"><span class="std std-ref">Index</span></a></li> -<li><a class="reference internal" href="py-modindex.html"><span class="std std-ref">Module Index</span></a></li> -<li><a class="reference internal" href="search.html"><span class="std std-ref">Search Page</span></a></li> -<li><span class="xref std std-ref">glossary</span></li> -</ul> -</div> - - - </div> - <div class="articleComments"> - - </div> - </div> - <footer> - - - <hr/> - - <div role="contentinfo"> - <p> - © <a href="copyright.html">Copyright</a> 2017, Benjamin Bardiaux, Michael Habeck, Therese Malliavin, Wolfgang Rieping, and Michael Nilges. - - </p> - </div> - Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. - -</footer> - - </div> - </div> - - </section> - - </div> - - - - - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT:'./', - VERSION:'4', - COLLAPSE_INDEX:false, - FILE_SUFFIX:'.html', - HAS_SOURCE: true, - SOURCELINK_SUFFIX: '.txt' - }; - </script> - <script type="text/javascript" src="_static/jquery.js"></script> - <script type="text/javascript" src="_static/underscore.js"></script> - <script type="text/javascript" src="_static/doctools.js"></script> - <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> - - - - - - <script type="text/javascript" src="_static/js/theme.js"></script> - - - - - <script type="text/javascript"> - jQuery(function () { - SphinxRtdTheme.StickyNav.enable(); - }); - </script> - - -</body> -</html> \ No newline at end of file diff --git a/docs/_build/html/installation.html b/docs/_build/html/installation.html deleted file mode 100644 index bb49dbe3ff6f3af095ba8fa266209330ce4fb593..0000000000000000000000000000000000000000 --- a/docs/_build/html/installation.html +++ /dev/null @@ -1,222 +0,0 @@ - - -<!DOCTYPE html> -<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> -<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> -<head> - <meta charset="utf-8"> - - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - - <title><no title> — ARIA 4 documentation</title> - - - - - - - - - - - - - - - - - - <link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> - - - - - - <link rel="index" title="Index" - href="genindex.html"/> - <link rel="search" title="Search" href="search.html"/> - <link rel="copyright" title="Copyright" href="copyright.html"/> - <link rel="top" title="ARIA 4 documentation" href="index.html"/> - - - <script src="_static/js/modernizr.min.js"></script> - -</head> - -<body class="wy-body-for-nav" role="document"> - - - <div class="wy-grid-for-nav"> - - - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search"> - - - - <a href="index.html" class="icon icon-home"> ARIA - - - - </a> - - - - - <div class="version"> - 2 - </div> - - - - -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - - - </div> - - <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> - - - - - - - <!-- Local TOC --> - <div class="local-toc"><ul class="simple"> -</ul> -</div> - - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> - - - <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> - - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="index.html">ARIA</a> - - </nav> - - - - <div class="wy-nav-content"> - <div class="rst-content"> - - - - - - - - - - - - - - - - -<div role="navigation" aria-label="breadcrumbs navigation"> - - <ul class="wy-breadcrumbs"> - - <li><a href="index.html">Docs</a> »</li> - - <li><no title></li> - - - <li class="wy-breadcrumbs-aside"> - - - <a href="_sources/installation.rst.txt" rel="nofollow"> View page source</a> - - - </li> - - </ul> - - - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - - - </div> - <div class="articleComments"> - - </div> - </div> - <footer> - - - <hr/> - - <div role="contentinfo"> - <p> - © <a href="copyright.html">Copyright</a> 2017, Benjamin Bardiaux, Michael Habeck, Therese Malliavin, Wolfgang Rieping, and Michael Nilges. - - </p> - </div> - Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. - -</footer> - - </div> - </div> - - </section> - - </div> - - - - - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT:'./', - VERSION:'4', - COLLAPSE_INDEX:false, - FILE_SUFFIX:'.html', - HAS_SOURCE: true, - SOURCELINK_SUFFIX: '.txt' - }; - </script> - <script type="text/javascript" src="_static/jquery.js"></script> - <script type="text/javascript" src="_static/underscore.js"></script> - <script type="text/javascript" src="_static/doctools.js"></script> - <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> - - - - - - <script type="text/javascript" src="_static/js/theme.js"></script> - - - - - <script type="text/javascript"> - jQuery(function () { - SphinxRtdTheme.StickyNav.enable(); - }); - </script> - - -</body> -</html> \ No newline at end of file diff --git a/docs/_build/html/objects.inv b/docs/_build/html/objects.inv deleted file mode 100644 index bcf75841406bd471eb2d939d7016def94fd090f5..0000000000000000000000000000000000000000 Binary files a/docs/_build/html/objects.inv and /dev/null differ diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js deleted file mode 100644 index aa9f47f6ea97095fa684aa743771d2dffc898042..0000000000000000000000000000000000000000 --- a/docs/_build/html/searchindex.js +++ /dev/null @@ -1 +0,0 @@ -Search.setIndex({docnames:["contents","copyright","glossary","index","installation","modules","tutorial"],envversion:52,filenames:["contents.rst","copyright.rst","glossary.rst","index.rst","installation.rst","modules.rst","tutorial.rst"],objects:{},objnames:{},objtypes:{},terms:{all:1,ambigu:1,ani:1,aria:1,ariaec:0,assign:1,author:0,autom:1,bardiaux:1,benjamin:1,copyright:1,date:1,distribut:1,explicit:1,express:1,fit:1,glossari:0,habeck:1,holder:1,impli:1,includ:1,index:[0,3],infring:1,iter:1,kind:1,limit:1,malliavin:1,merchant:1,michael:1,modifi:1,modul:[0,1,3],nilg:1,noe:1,non:1,packag:1,page:[0,3],particular:1,permiss:1,prohibit:1,provid:1,purpos:1,reserv:1,restraint:1,revis:1,riep:1,right:1,search:[0,3],softwar:1,substant:1,theres:1,thi:1,version:1,warranti:1,without:1,wolfgang:1},titles:["Sphinx documentation contents","Sphinx authors","<no title>","Welcome to ARIAEC\u2019s documentation!","<no title>","ariaec","<no title>"],titleterms:{ariaec:[3,5],author:1,content:0,document:[0,3],indic:[0,3],sphinx:[0,1],tabl:[0,3],welcom:3}}) \ No newline at end of file diff --git a/docs/_build/html/tutorial.html b/docs/_build/html/tutorial.html deleted file mode 100644 index ab145b6ddec34147d5136c891f3dd890a654f21f..0000000000000000000000000000000000000000 --- a/docs/_build/html/tutorial.html +++ /dev/null @@ -1,222 +0,0 @@ - - -<!DOCTYPE html> -<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> -<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> -<head> - <meta charset="utf-8"> - - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - - <title><no title> — ARIA 4 documentation</title> - - - - - - - - - - - - - - - - - - <link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> - - - - - - <link rel="index" title="Index" - href="genindex.html"/> - <link rel="search" title="Search" href="search.html"/> - <link rel="copyright" title="Copyright" href="copyright.html"/> - <link rel="top" title="ARIA 4 documentation" href="index.html"/> - - - <script src="_static/js/modernizr.min.js"></script> - -</head> - -<body class="wy-body-for-nav" role="document"> - - - <div class="wy-grid-for-nav"> - - - <nav data-toggle="wy-nav-shift" class="wy-nav-side"> - <div class="wy-side-scroll"> - <div class="wy-side-nav-search"> - - - - <a href="index.html" class="icon icon-home"> ARIA - - - - </a> - - - - - <div class="version"> - 2 - </div> - - - - -<div role="search"> - <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> - <input type="text" name="q" placeholder="Search docs" /> - <input type="hidden" name="check_keywords" value="yes" /> - <input type="hidden" name="area" value="default" /> - </form> -</div> - - - </div> - - <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> - - - - - - - <!-- Local TOC --> - <div class="local-toc"><ul class="simple"> -</ul> -</div> - - - </div> - </div> - </nav> - - <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> - - - <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> - - <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="index.html">ARIA</a> - - </nav> - - - - <div class="wy-nav-content"> - <div class="rst-content"> - - - - - - - - - - - - - - - - -<div role="navigation" aria-label="breadcrumbs navigation"> - - <ul class="wy-breadcrumbs"> - - <li><a href="index.html">Docs</a> »</li> - - <li><no title></li> - - - <li class="wy-breadcrumbs-aside"> - - - <a href="_sources/tutorial.rst.txt" rel="nofollow"> View page source</a> - - - </li> - - </ul> - - - <hr/> -</div> - <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> - <div itemprop="articleBody"> - - - - </div> - <div class="articleComments"> - - </div> - </div> - <footer> - - - <hr/> - - <div role="contentinfo"> - <p> - © <a href="copyright.html">Copyright</a> 2017, Benjamin Bardiaux, Michael Habeck, Therese Malliavin, Wolfgang Rieping, and Michael Nilges. - - </p> - </div> - Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. - -</footer> - - </div> - </div> - - </section> - - </div> - - - - - - <script type="text/javascript"> - var DOCUMENTATION_OPTIONS = { - URL_ROOT:'./', - VERSION:'4', - COLLAPSE_INDEX:false, - FILE_SUFFIX:'.html', - HAS_SOURCE: true, - SOURCELINK_SUFFIX: '.txt' - }; - </script> - <script type="text/javascript" src="_static/jquery.js"></script> - <script type="text/javascript" src="_static/underscore.js"></script> - <script type="text/javascript" src="_static/doctools.js"></script> - <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> - - - - - - <script type="text/javascript" src="_static/js/theme.js"></script> - - - - - <script type="text/javascript"> - jQuery(function () { - SphinxRtdTheme.StickyNav.enable(); - }); - </script> - - -</body> -</html> \ No newline at end of file diff --git a/docs/api/conbox.rst b/docs/api/conbox.rst new file mode 100644 index 0000000000000000000000000000000000000000..8ba7229ed8b561046f4ce5f136a9b72e8ec13c8c --- /dev/null +++ b/docs/api/conbox.rst @@ -0,0 +1,122 @@ +Conbox +====== + +.. automodule:: aria.conbox + :members: + :undoc-members: + :show-inheritance: + +Analysis +-------- + +.. automodule:: aria.conbox.analysis + :members: + :undoc-members: + :show-inheritance: + + + +Commands +-------- + +.. automodule:: aria.conbox.commands + :members: + :undoc-members: + :show-inheritance: + +Common +------ + +.. automodule:: aria.conbox.common + :members: + :undoc-members: + :show-inheritance: + +Converter +--------- + +.. automodule:: aria.conbox.converter + :members: + :undoc-members: + :show-inheritance: + +Maplot +------ + +.. automodule:: aria.conbox.maplot + :members: + :undoc-members: + :show-inheritance: + +NDConv +------ + +.. automodule:: aria.conbox.ndconv + :members: + :undoc-members: + :show-inheritance: + +PDBDist +------- + +.. automodule:: aria.conbox.pdbdist + :members: + :undoc-members: + :show-inheritance: + +PDBQual +------- + +.. automodule:: aria.conbox.pdbqual + :members: + :undoc-members: + :show-inheritance: + +PDBStat +------- + +.. automodule:: aria.conbox.pdbqual + :members: + :undoc-members: + :show-inheritance: + +Protein +-------- + +.. automodule:: aria.conbox.protein + :members: + :undoc-members: + :show-inheritance: + +ProtMap +------- + +.. automodule:: aria.conbox.protmap + :members: + :undoc-members: + :show-inheritance: + +Reader +------ + +.. automodule:: aria.conbox.reader + :members: + :undoc-members: + :show-inheritance: + +Settings +--------- + +.. automodule:: aria.conbox.settings + :members: + :undoc-members: + :show-inheritance: + +Setup +------ + +.. automodule:: aria.conbox.setup + :members: + :undoc-members: + :show-inheritance: + diff --git a/docs/api/core.rst b/docs/api/core.rst new file mode 100644 index 0000000000000000000000000000000000000000..14ae33fc6f8ac77ed7417cc1c212bdb995fd945b --- /dev/null +++ b/docs/api/core.rst @@ -0,0 +1,7 @@ +Core +==== + +.. automodule:: aria.core + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/changelog.rst b/docs/changelog.rst new file mode 100644 index 0000000000000000000000000000000000000000..4ccd5096370565eb279899ef8f2fc8a9671ef913 --- /dev/null +++ b/docs/changelog.rst @@ -0,0 +1,4 @@ +Changelog +========= + +.. include:: ../CHANGELOG diff --git a/docs/conf.py b/docs/conf.py index 9524adead624494b5b48a5c6430a53c069a1390f..ad64ddb849fb214e216514ce527b8492ccd16280 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -19,7 +19,10 @@ # import os # import sys # sys.path.insert(0, os.path.abspath('.')) +import time import sphinx_rtd_theme +import sphinx_bootstrap_theme +from setup import get_version # -- General configuration ------------------------------------------------ @@ -38,7 +41,7 @@ extensions = [ 'sphinx.ext.mathjax', 'sphinx.ext.viewcode', 'sphinx.ext.napoleon', - 'sphinx.ext.nbsphinx' + # 'sphinx.ext.nbsphinx' ] # Add any paths that contain templates here, relative to this directory. @@ -51,11 +54,10 @@ templates_path = ['_templates'] source_suffix = '.rst' # The master toctree document. -master_doc = 'index' +master_doc = 'introduction' # General information about the project. project = u'ARIAEC' -import time author = u'Benjamin Bardiaux, Michael Habeck, Therese Malliavin, ' \ u'Wolfgang Rieping, and Michael Nilges' copyright = u'{}, {}'.format( @@ -66,10 +68,9 @@ copyright = u'{}, {}'.format( # built documents. # # The short X.Y version. -import setup -version = setup.get_version() +version = get_version(full=False) # The full version, including alpha/beta/rc tags. -release = setup.get_version() +release = get_version(full=True) # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. @@ -96,20 +97,35 @@ todo_include_todos = False # a list of builtin themes. # html_theme = "sphinx_rtd_theme" +# html_theme = "bootstrap" html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] +# html_theme_path = sphinx_bootstrap_theme.get_html_theme_path() # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. # -# html_theme_options = {} +html_theme_options = { + 'logo_only': True +} + +html_logo = "_static/logo.jpg" # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] + +html_context = { + 'css_files': [ + '_static/theme_overrides.css', # override wide tables in RTD theme + ], + } + +html_favicon = "_static/favicon.ico" + # Custom sidebar templates, must be a dictionary that maps document names # to template names. # diff --git a/docs/configuration.rst b/docs/configuration.rst new file mode 100644 index 0000000000000000000000000000000000000000..960825888e02841a22906ef430b6193bc4ca2dca --- /dev/null +++ b/docs/configuration.rst @@ -0,0 +1,85 @@ +Configuration +============= + +The following tables list the available parameters with the corresponding +sections. In order to change default parameters, the tool can accept a +configuration file with the ``-c`` option in the :doc:`usage`. This +configuration file should follow the `INI <https://en.wikipedia.org/wiki/INI_file>`_ format. + +**Example:** + +.. code-block:: guess + + [section] + ; comment + parameter: value + + +main +---- + +.. rst-class:: table-hover + ++--------------------------+------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Name | Type | Default | Description | ++--------------------------+------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ss_dist_file | path | `ss_dist.txt`_ | Distances between stable secondary structures. Those distances are used to make supplementary distance restraints related to secondary structure predictions. | ++--------------------------+------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| scsc_min_file | path | | | ++--------------------------+------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| interlowerbounds_pdbstat | path | | | ++--------------------------+------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| intertarget_pdbstat | path | | | ++--------------------------+------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| interupperbounds_pdbstat | path | | | ++--------------------------+------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| intralowerbounds_pdbstat | path | | | ++--------------------------+------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| intratarget_pdbstat | path | | | ++--------------------------+------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| intraupperbounds_pdbstat | path | | | ++--------------------------+------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ariaproject_template | str | `2.3.6`_ | | ++--------------------------+------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| procheck_executable | path | | | ++--------------------------+------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| prosa_executable | | | | ++--------------------------+------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| whatif_executable | | | | ++--------------------------+------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| clashlist_executable | | | | ++--------------------------+------+----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + +ss_dist.txt ++++++++++++ +.. _ss_dist.txt: + +.. literalinclude:: ../aria/conbox/data/ss_dist.txt + +A ++++++++++++ + +contactdef +---------- + +setup +----- + +maplot +------ + +bbconv +------ + +pdbqual +------- + +pdbdist +------- + +pdbstat +------- + +analysis +-------- diff --git a/docs/contents.rst b/docs/contents.rst new file mode 100644 index 0000000000000000000000000000000000000000..706adb8980527bff2a916488c0d4fb50e2d395d0 --- /dev/null +++ b/docs/contents.rst @@ -0,0 +1,21 @@ +.. toctree:: + :maxdepth: 2 + :caption: Documentation + + changelog + installation + usage + configuration + +.. toctree:: + :maxdepth: 2 + :caption: API + + api/core + api/conbox + +.. toctree:: + :maxdepth: 2 + :caption: Examples + + examples/index diff --git a/docs/copyright.rst b/docs/copyright.rst deleted file mode 100644 index 6a3311cee021bc5f238d0380c5ef9650d863bf22..0000000000000000000000000000000000000000 --- a/docs/copyright.rst +++ /dev/null @@ -1,9 +0,0 @@ -:tocdepth: 2 - -.. _copyright: - -Sphinx authors -============== - -.. include:: ../COPYRIGHT - diff --git a/docs/examples/index.rst b/docs/examples/index.rst index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..d975cbf3387d50c7c5774e499bec8f0e3f9ebb62 100644 --- a/docs/examples/index.rst +++ b/docs/examples/index.rst @@ -0,0 +1,4 @@ +.. _examples: + +Examples +======== diff --git a/docs/glossary.rst b/docs/glossary.rst deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/docs/installation.rst b/docs/installation.rst index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..9eb2c73e025579ce01003f9a560602e5ca62a1f4 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -0,0 +1,18 @@ +Installation +============ + +.. note:: + + Installation procedure may change in the future + +Dependencies +------------ + + +Basic installation +------------------ + + +Singularity +----------- + diff --git a/docs/index.rst b/docs/introduction.rst similarity index 68% rename from docs/index.rst rename to docs/introduction.rst index 746aac6c4c6c149b75e76bc89c0e30d32cb843a7..fe448a97b8795d230c924fa7994124cedb443f54 100644 --- a/docs/index.rst +++ b/docs/introduction.rst @@ -6,16 +6,11 @@ .. include:: ../README.rst -.. toctree:: - :maxdepth: 1 - :caption: Contents +License +------- +.. include:: ../COPYRIGHT - introduction - changelog - installation - tutorial - examples/index - api +.. include:: contents.rst Indices and tables @@ -23,4 +18,4 @@ Indices and tables * :ref:`genindex` * :ref:`modindex` -* :ref:`search` +* :ref:`search` \ No newline at end of file diff --git a/docs/tutorial.rst b/docs/tutorial.rst deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/docs/usage.rst b/docs/usage.rst new file mode 100644 index 0000000000000000000000000000000000000000..ed54d2636daafeb15e1efb2e215547dd450a1603 --- /dev/null +++ b/docs/usage.rst @@ -0,0 +1,156 @@ +Command Line Interface +====================== + +The command line interface is accessible by calling ``ariaec`` (or ``ec2aria`` +for older versions) within the terminal at the end of the installation process. + +.. code-block:: bash + + $ ariaec [-h] -o OUTPUT_DIRECTORY [-c CONF_FILE] [--nolog] [-d] COMMAND + + +**Commands** + +.. rst-class:: table-hover + + ++-------------------------+-----------------------------------------------------+ +| Name | Short description | ++-------------------------+-----------------------------------------------------+ +| `setup <Setup_>`_ | Setup ARIA project with EC data | ++-------------------------+-----------------------------------------------------+ +| `bbconv <BBconv_>`_ | Translate BBcontacts as distance restraints | ++-------------------------+-----------------------------------------------------+ +| `maplot <Maplot_>`_ | Contact map visualisation tool | ++-------------------------+-----------------------------------------------------+ +| `pdbqual <PDBQual_>`_ | Call PDB quality tools | ++-------------------------+-----------------------------------------------------+ +| `analysis <Analysis_>`_ | Analyze results from an ARIA project | ++-------------------------+-----------------------------------------------------+ +| `tbl2xml <TBL2XML_>`_ | Convert TBL restraints in ARIA XML format | ++-------------------------+-----------------------------------------------------+ +| `pdbdist <PDBDist_>`_ | Extract distance from a culled list of PDBs | ++-------------------------+-----------------------------------------------------+ +| `pdbstat <PDBStat_>`_ | Statistical analysis of ``pdbdist`` results | ++-------------------------+-----------------------------------------------------+ +| `iniconv <Iniconv_>`_ | Convert a INI file as csv for easy readability | ++-------------------------+-----------------------------------------------------+ + + +**Options** + + +.. rst-class:: table-hover + + ++--------------------------------------------------------+-----------------------------------------------------+ +| Name | Description | ++--------------------------------------------------------+-----------------------------------------------------+ +| ``-h``, ``--help`` | show help message and exit | ++--------------------------------------------------------+-----------------------------------------------------+ +| ``-o OUTPUT_DIRECTORY``, ``--output OUTPUT_DIRECTORY`` | Output directory (default: None) | ++--------------------------------------------------------+-----------------------------------------------------+ +| ``-c CONF_FILE``, ``--conf CONF_FILE`` | configuration file (default: None) | ++--------------------------------------------------------+-----------------------------------------------------+ +| ``--nolog`` | Don't generate log files (default: False) | ++--------------------------------------------------------+-----------------------------------------------------+ +| ``-d``, ``--debug`` | Increase output verbosity (default: False) | ++--------------------------------------------------------+-----------------------------------------------------+ + + +Setup +-------------- +Translate contact maps as distance restraints and setup ARIA infrastructure. + +.. code-block:: bash + + $ ariaec setup [-options] seq infile [infile ...] -t intype [intype ...] + + + +**Arguments** + +.. rst-class:: table-hover + + ++-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Name | Short description | ++-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``seq`` | Sequence file [``FASTA``] | ++-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``infile`` | Contact or pdb file(s) used to build aria distance restraints | ++-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``intype`` | Contact Map file format:sup:`*` | ++-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| :sup:`*` Accepted contact map formats combining formats supported by ConKit_ with few supplementary formats: ``gremlin``, ``pconsc1``, ``pconsc3``, ``pconsc2``, ``bbcontacts``, ``metapsicov_stg1``, ``membrain``, ``metapsicovhb``, ``comsat``, ``casprr``, ``ccmpred``, ``plm``, ``bclcontact``, ``epcmap``, ``evfold``, ``native``, ``pconsc``, ``psicov``, ``freecontact``, ``genericstructure``, ``ncont``, ``plmc``, ``plmdca``, ``metapsicov_stg2``, ``native_full``, ``metapsicov``, ``evcoupling``, ``contactlist``, ``plmev``, ``mmcif``, ``casp``, ``pdb``, ``flib`` | ++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +.. _ConKit: http://www.conkit.org/en/latest/ + + +**Options** + + +.. rst-class:: table-hover + + ++--------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+ +| Name | Description | ++--------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``-d DISTFILE``, ``--distfile DISTFILE`` | Pdb or distance matrix iif distance_type set to distfile in conf file, use distances in the given file as target distance to build distance restraints | ++--------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``-s SSPRED``, ``--ssfile SSPRED`` | Secondary structure prediction file | ++--------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``-p ARIAPROJECT``, ``--ariaproject ARIAPROJECT`` | ARIA project file. This project will be updated with data generated during the ``ariaec setup`` call | ++--------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``-r SEQRANGE``, ``--range SEQRANGE`` | Index range if we don't want tu use the whole sequence and map | ++--------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``-n REF``, ``--native REF`` | Native pdb. Allow TP/FP detection | ++--------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``--hb HB`` | H-bonds contact file (eg: metapsicov.hb) | ++--------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``--ssidx`` | Use secondary structure index | ++--------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``--no-filter`` | Do not filter contact map | ++--------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+ +| ``--extract-all`` | Extract data or all data and parameters if an ARIA project is defined with ``-p`` option | ++--------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------+ + + +Bbconv +-------------- +Translate BBcontacts as distance restraints which can be used during +`setup <Setup_>`_. + + +Maplot +-------------- +Contactmap analysis and visualisation tool. + + +Analysis +-------------- +Analyze results from an ARIA project. + + +PDBQual +-------------- +Call PDB quality tools. + + +TBL2XML +-------------- +Convert TBL restraints in ARIA XML format. + + +PDBDist +-------------- +Extract distance from a culled list of PDBs. + +PDBStat +-------------- +Statistical analysis of ``pdbdist`` results. + +IniConv +-------------- +Convert a INI file as csv for easy readability. diff --git a/examples-dev/olds/Makefile b/examples-dev/olds/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..5146caba7730eaa0c27c8746ef95bfe8acf7f6b6 --- /dev/null +++ b/examples-dev/olds/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +SPHINXPROJ = AriaEc +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file diff --git a/examples-dev/olds/_build/doctrees/ariaec.doctree b/examples-dev/olds/_build/doctrees/ariaec.doctree new file mode 100644 index 0000000000000000000000000000000000000000..873ef5ec80ab1638d3d206ad59d8ac749e5f2ed5 Binary files /dev/null and b/examples-dev/olds/_build/doctrees/ariaec.doctree differ diff --git a/examples-dev/olds/_build/doctrees/ariaec.test.doctree b/examples-dev/olds/_build/doctrees/ariaec.test.doctree new file mode 100644 index 0000000000000000000000000000000000000000..79196e96c42406483073a8221518dff844321ccc Binary files /dev/null and b/examples-dev/olds/_build/doctrees/ariaec.test.doctree differ diff --git a/examples-dev/olds/_build/doctrees/environment.pickle b/examples-dev/olds/_build/doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..61fbb12e5da8e22a339e9dd4d80b005f6b5551e9 Binary files /dev/null and b/examples-dev/olds/_build/doctrees/environment.pickle differ diff --git a/docs/_build/doctrees/index.doctree b/examples-dev/olds/_build/doctrees/index.doctree similarity index 78% rename from docs/_build/doctrees/index.doctree rename to examples-dev/olds/_build/doctrees/index.doctree index 35d9479b9c171bcec89bfaa738a62daf4279a8c4..7418f750a0ccf7476bd3785a4573aa1e8c31c6e1 100644 Binary files a/docs/_build/doctrees/index.doctree and b/examples-dev/olds/_build/doctrees/index.doctree differ diff --git a/docs/_build/doctrees/modules.doctree b/examples-dev/olds/_build/doctrees/modules.doctree similarity index 92% rename from docs/_build/doctrees/modules.doctree rename to examples-dev/olds/_build/doctrees/modules.doctree index d0ad5fd7c140f844f56a5fa75dac6569a2f7b02a..ec92b93586bb0a0c21ccfea1e77eff648e441d22 100644 Binary files a/docs/_build/doctrees/modules.doctree and b/examples-dev/olds/_build/doctrees/modules.doctree differ diff --git a/docs/_build/html/.buildinfo b/examples-dev/olds/_build/html/.buildinfo similarity index 82% rename from docs/_build/html/.buildinfo rename to examples-dev/olds/_build/html/.buildinfo index a74d88eb5f9bfd2bd0479b43d3800aff49234441..eaba7c828628918b200b6e94bafcb3ae8dea753f 100644 --- a/docs/_build/html/.buildinfo +++ b/examples-dev/olds/_build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 4da5904f1f9b1887d948b51687bdfaa0 +config: cbf8f1a8c4c0d68994ae9bd4f214590d tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/examples-dev/olds/_build/html/_modules/ariaec/analysis.html b/examples-dev/olds/_build/html/_modules/ariaec/analysis.html new file mode 100644 index 0000000000000000000000000000000000000000..23be1773aec7f242e42281db56e9c900886bfccd --- /dev/null +++ b/examples-dev/olds/_build/html/_modules/ariaec/analysis.html @@ -0,0 +1,729 @@ + + +<!DOCTYPE html> +<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> +<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> +<head> + <meta charset="utf-8"> + + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <title>ariaec.analysis — AriaEc 0.2 documentation</title> + + + + + + + + + + + + + + + + + + <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> + + + + + + <link rel="index" title="Index" + href="../../genindex.html"/> + <link rel="search" title="Search" href="../../search.html"/> + <link rel="top" title="AriaEc 0.2 documentation" href="../../index.html"/> + <link rel="up" title="Module code" href="../index.html"/> + + + <script src="../../_static/js/modernizr.min.js"></script> + +</head> + +<body class="wy-body-for-nav" role="document"> + + + <div class="wy-grid-for-nav"> + + + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search"> + + + + <a href="../../index.html" class="icon icon-home"> AriaEc + + + + </a> + + + + + <div class="version"> + 0.2 + </div> + + + + +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + + + </div> + + <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> + + + + + + + <!-- Local TOC --> + <div class="local-toc"></div> + + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> + + + <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> + + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">AriaEc</a> + + </nav> + + + + <div class="wy-nav-content"> + <div class="rst-content"> + + + + + + + + + + + + + + + + +<div role="navigation" aria-label="breadcrumbs navigation"> + + <ul class="wy-breadcrumbs"> + + <li><a href="../../index.html">Docs</a> »</li> + + <li><a href="../index.html">Module code</a> »</li> + + <li>ariaec.analysis</li> + + + <li class="wy-breadcrumbs-aside"> + + + + </li> + + </ul> + + + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <h1>Source code for ariaec.analysis</h1><div class="highlight"><pre> +<span></span><span class="c1"># coding=utf-8</span> +<span class="sd">"""</span> +<span class="sd">Created on 4/7/17</span> + +<span class="sd">@author: fallain</span> +<span class="sd">"""</span> +<span class="kn">import</span> <span class="nn">re</span> +<span class="kn">import</span> <span class="nn">os</span> +<span class="kn">import</span> <span class="nn">logging</span> +<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> +<span class="kn">import</span> <span class="nn">seaborn</span> <span class="k">as</span> <span class="nn">sns</span> +<span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span> +<span class="kn">from</span> <span class="nn">glob</span> <span class="k">import</span> <span class="n">glob</span> +<span class="kn">from</span> <span class="nn">collections</span> <span class="k">import</span> <span class="n">OrderedDict</span> +<span class="kn">from</span> <span class="nn">Bio.PDB</span> <span class="k">import</span> <span class="n">PDBParser</span><span class="p">,</span> <span class="n">PDBIO</span> +<span class="kn">from</span> <span class="nn">sklearn.decomposition</span> <span class="k">import</span> <span class="n">PCA</span> +<span class="kn">from</span> <span class="nn">aria.AriaXML</span> <span class="k">import</span> <span class="n">AriaXMLPickler</span> +<span class="kn">from</span> <span class="nn">matplotlib.lines</span> <span class="k">import</span> <span class="n">Line2D</span> +<span class="kn">from</span> <span class="nn">mpl_toolkits.mplot3d</span> <span class="k">import</span> <span class="n">Axes3D</span> +<span class="kn">from</span> <span class="nn">aria.SuperImposer</span> <span class="k">import</span> <span class="n">SuperImposer</span> +<span class="kn">from</span> <span class="nn">.converter</span> <span class="k">import</span> <span class="n">AriaEcXMLConverter</span> +<span class="kn">from</span> <span class="nn">.common</span> <span class="k">import</span> <span class="n">NotDisordered</span><span class="p">,</span> <span class="n">Capturing</span> +<span class="kn">from</span> <span class="nn">matplotlib.colors</span> <span class="k">import</span> <span class="n">ListedColormap</span> +<span class="kn">from</span> <span class="nn">aria.DataContainer</span> <span class="k">import</span> <span class="n">DATA_SEQUENCE</span> +<span class="kn">from</span> <span class="nn">aria.StructureEnsemble</span> <span class="k">import</span> <span class="n">StructureEnsemble</span><span class="p">,</span> <span class="n">StructureEnsembleSettings</span> + + +<span class="n">LOG</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span> + + +<div class="viewcode-block" id="colscatter"><a class="viewcode-back" href="../../ariaec.html#ariaec.analysis.colscatter">[docs]</a><span class="k">def</span> <span class="nf">colscatter</span><span class="p">(</span><span class="n">X</span><span class="p">,</span> <span class="n">axe</span><span class="p">,</span> <span class="n">colors</span><span class="p">,</span> <span class="n">ndim</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">axtitle</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> <span class="n">xlabel</span><span class="o">=</span><span class="s2">"x"</span><span class="p">,</span> + <span class="n">ylabel</span><span class="o">=</span><span class="s2">"y"</span><span class="p">,</span> <span class="n">zlabel</span><span class="o">=</span><span class="s2">"z"</span><span class="p">,</span> <span class="n">legend_prefix</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> <span class="n">others</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Scatter plot with palette colors</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> X :</span> + +<span class="sd"> axe :</span> + +<span class="sd"> colors :</span> + +<span class="sd"> ndim :</span> +<span class="sd"> (Default value = 2)</span> +<span class="sd"> axtitle :</span> +<span class="sd"> (Default value = "")</span> +<span class="sd"> xlabel :</span> +<span class="sd"> (Default value = "x")</span> +<span class="sd"> ylabel :</span> +<span class="sd"> (Default value = "y")</span> +<span class="sd"> zlabel :</span> +<span class="sd"> (Default value = "z")</span> +<span class="sd"> legend_prefix :</span> +<span class="sd"> (Default value = "")</span> +<span class="sd"> others :</span> +<span class="sd"> (Default value = False)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> """</span> + <span class="n">palette</span> <span class="o">=</span> <span class="n">sns</span><span class="o">.</span><span class="n">color_palette</span><span class="p">(</span><span class="s2">"hls"</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">colors</span><span class="p">)))</span> + <span class="n">dims</span> <span class="o">=</span> <span class="p">[</span><span class="n">X</span><span class="p">[:,</span> <span class="n">i</span><span class="p">]</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">ndim</span><span class="p">)]</span> + <span class="n">axe</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="o">*</span><span class="n">dims</span><span class="p">,</span> <span class="n">c</span><span class="o">=</span><span class="n">colors</span><span class="p">,</span> + <span class="n">cmap</span><span class="o">=</span><span class="n">ListedColormap</span><span class="p">(</span><span class="n">palette</span><span class="p">))</span> + <span class="n">axe</span><span class="o">.</span><span class="n">invert_xaxis</span><span class="p">()</span> + + <span class="k">if</span> <span class="n">others</span><span class="p">:</span> + <span class="n">axe</span><span class="o">.</span><span class="n">legend</span><span class="p">([</span><span class="n">Line2D</span><span class="p">([</span><span class="mi">0</span><span class="p">],</span> <span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">"none"</span><span class="p">,</span> <span class="n">c</span><span class="o">=</span><span class="n">palette</span><span class="p">[</span><span class="n">colidx</span><span class="p">],</span> + <span class="n">marker</span><span class="o">=</span><span class="s2">"o"</span><span class="p">)</span> + <span class="k">for</span> <span class="n">colidx</span> <span class="ow">in</span> <span class="nb">set</span><span class="p">(</span><span class="n">colors</span><span class="p">)],</span> + <span class="p">[</span><span class="n">legend_prefix</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">colidx</span><span class="p">)</span> <span class="k">if</span> <span class="n">colidx</span> <span class="o">!=</span> <span class="nb">max</span><span class="p">(</span> + <span class="n">colors</span><span class="p">)</span> <span class="k">else</span> <span class="s2">"Others"</span> <span class="k">for</span> <span class="n">colidx</span> <span class="ow">in</span> <span class="nb">set</span><span class="p">(</span><span class="n">colors</span><span class="p">)],</span> + <span class="n">numpoints</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">axe</span><span class="o">.</span><span class="n">legend</span><span class="p">([</span><span class="n">Line2D</span><span class="p">([</span><span class="mi">0</span><span class="p">],</span> <span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">linestyle</span><span class="o">=</span><span class="s2">"none"</span><span class="p">,</span> <span class="n">c</span><span class="o">=</span><span class="n">palette</span><span class="p">[</span><span class="n">colidx</span><span class="p">],</span> + <span class="n">marker</span><span class="o">=</span><span class="s2">"o"</span><span class="p">)</span> + <span class="k">for</span> <span class="n">colidx</span> <span class="ow">in</span> <span class="nb">set</span><span class="p">(</span><span class="n">colors</span><span class="p">)],</span> + <span class="p">[</span><span class="n">legend_prefix</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">colidx</span><span class="p">)</span> <span class="k">for</span> <span class="n">colidx</span> <span class="ow">in</span> + <span class="nb">set</span><span class="p">(</span><span class="n">colors</span><span class="p">)],</span> <span class="n">numpoints</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> + + <span class="n">axe</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="n">axtitle</span><span class="p">)</span> + <span class="n">axe</span><span class="o">.</span><span class="n">set_xlabel</span><span class="p">(</span><span class="n">xlabel</span><span class="p">)</span> + <span class="n">axe</span><span class="o">.</span><span class="n">set_ylabel</span><span class="p">(</span><span class="n">ylabel</span><span class="p">)</span> + <span class="k">if</span> <span class="n">ndim</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span> + <span class="n">axe</span><span class="o">.</span><span class="n">set_zlabel</span><span class="p">(</span><span class="n">zlabel</span><span class="p">)</span></div> + + +<div class="viewcode-block" id="EnsembleAnalysis"><a class="viewcode-back" href="../../ariaec.html#ariaec.analysis.EnsembleAnalysis">[docs]</a><span class="k">class</span> <span class="nc">EnsembleAnalysis</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> + <span class="sd">"""ARIA extended ensemble analysis"""</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">settings</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span> <span class="o">=</span> <span class="n">settings</span> + + <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">_get_ensemble_paths</span><span class="p">(</span><span class="n">iteration_path</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Get list of pdb files related to aria ensemble(s)</span> +<span class="sd"> </span> +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> iteration_path : str</span> +<span class="sd"> ARIA iteration path where all pdb files are saved </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># Get the list of all the generated structures in iteration path if no</span> + <span class="c1"># clustering. Otherwise, get the list of all generated structures</span> + <span class="n">list_of_pdb</span> <span class="o">=</span> <span class="p">[]</span> + <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">iteration_path</span><span class="p">,</span> <span class="s2">"report.clustering"</span><span class="p">)):</span> + <span class="c1"># Get the list of pdb for each cluster</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Clusters found in this iteration, compute analysis for"</span> + <span class="s2">"each generated cluster ensemble"</span><span class="p">)</span> + <span class="k">for</span> <span class="n">clustlist</span> <span class="ow">in</span> <span class="n">glob</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">iteration_path</span><span class="p">,</span> <span class="s1">'*clust*.list'</span><span class="p">)):</span> + <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">clustlist</span><span class="p">)</span> <span class="k">as</span> <span class="n">cluster</span><span class="p">:</span> + <span class="n">list_of_pdb</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">cluster</span><span class="o">.</span><span class="n">read</span><span class="p">()</span><span class="o">.</span><span class="n">splitlines</span><span class="p">())</span> + <span class="k">else</span><span class="p">:</span> + <span class="c1"># no clustering, pdb list correspond to all generated structures</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"No cluster found in this iteration, compute analysis for"</span> + <span class="s2">" iteration ensemble"</span><span class="p">)</span> + <span class="n">list_of_pdb</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> + <span class="p">[</span><span class="n">foo</span> <span class="k">for</span> <span class="n">foo</span> <span class="ow">in</span> <span class="n">glob</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">iteration_path</span><span class="p">,</span> <span class="s2">"*.pdb"</span><span class="p">))</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">foo</span><span class="p">)</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">'fitted_'</span><span class="p">)])</span> + + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Lists of structures:</span><span class="se">\n</span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> + <span class="p">[</span><span class="nb">str</span><span class="p">(</span><span class="n">_</span><span class="p">)</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="n">list_of_pdb</span><span class="p">]))</span> + <span class="k">return</span> <span class="n">list_of_pdb</span> + +<div class="viewcode-block" id="EnsembleAnalysis.violation_analysis"><a class="viewcode-back" href="../../ariaec.html#ariaec.analysis.EnsembleAnalysis.violation_analysis">[docs]</a> <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">violation_analysis</span><span class="p">(</span><span class="n">project</span><span class="p">,</span> <span class="n">iteration_id</span><span class="p">,</span> <span class="n">restraints</span><span class="p">,</span> <span class="n">ensemble</span><span class="p">,</span> <span class="n">out_file</span><span class="p">,</span> + <span class="n">dists_ref</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">headerflag</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">clusteridx</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> clusteridx</span> +<span class="sd"> project : aria.Project.Project object</span> +<span class="sd"> iteration_id : </span> +<span class="sd"> restraints :</span> +<span class="sd"> </span> +<span class="sd"> ensemble :</span> +<span class="sd"> </span> +<span class="sd"> out_file :</span> +<span class="sd"> </span> +<span class="sd"> dists_ref : </span> +<span class="sd"> Reference distances (Default value = None)</span> +<span class="sd"> headerflag :</span> +<span class="sd"> (Default value = True)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">protein_id</span> <span class="o">=</span> <span class="n">project</span><span class="o">.</span><span class="n">getSettings</span><span class="p">()[</span><span class="s1">'name'</span><span class="p">]</span> + <span class="n">nbest</span> <span class="o">=</span> <span class="n">project</span><span class="o">.</span><span class="n">getProtocol</span><span class="p">()</span><span class="o">.</span><span class="n">getIterationSettings</span><span class="p">(</span><span class="n">iteration_id</span><span class="p">)[</span> + <span class="s2">"number_of_best_structures"</span><span class="p">]</span> + <span class="n">cutoff</span> <span class="o">=</span> <span class="n">project</span><span class="o">.</span><span class="n">getProtocol</span><span class="p">()</span><span class="o">.</span><span class="n">getIterationSettings</span><span class="p">(</span><span class="n">iteration_id</span><span class="p">)[</span> + <span class="s2">"violation_analyser_settings"</span><span class="p">][</span><span class="s2">"violation_tolerance"</span><span class="p">]</span> + <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">out_file</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">)</span> <span class="k">if</span> <span class="n">headerflag</span> <span class="k">else</span> <span class="nb">open</span><span class="p">(</span><span class="n">out_file</span><span class="p">,</span> <span class="s1">'a'</span><span class="p">)</span> <span class="k">as</span> <span class="n">out</span><span class="p">:</span> + + <span class="k">for</span> <span class="n">restraintlist</span> <span class="ow">in</span> <span class="n">restraints</span><span class="p">:</span> + + <span class="k">for</span> <span class="n">rest</span> <span class="ow">in</span> <span class="n">restraintlist</span><span class="p">:</span> + + <span class="n">output</span> <span class="o">=</span> <span class="p">[]</span> + <span class="n">dd</span> <span class="o">=</span> <span class="p">[]</span> + <span class="n">ddref</span> <span class="o">=</span> <span class="p">[]</span> + + <span class="k">for</span> <span class="n">contrib</span> <span class="ow">in</span> <span class="n">rest</span><span class="o">.</span><span class="n">getContributions</span><span class="p">():</span> + + <span class="n">dist</span> <span class="o">=</span> <span class="kc">None</span> + <span class="k">try</span><span class="p">:</span> + <span class="n">dist</span> <span class="o">=</span> <span class="p">[</span><span class="n">ensemble</span><span class="o">.</span><span class="n">getDistances</span><span class="p">(</span><span class="o">*</span><span class="n">sp</span><span class="o">.</span><span class="n">getAtoms</span><span class="p">())</span> + <span class="k">for</span> <span class="n">sp</span> <span class="ow">in</span> <span class="n">contrib</span><span class="p">]</span> + <span class="c1"># Liste des distances pour la contribution c pour</span> + <span class="c1"># chaque structure de l'ensemble (une ou plusieur</span> + <span class="c1"># distance(s) par structure de l'ensemble si contribution</span> + <span class="c1"># ambigue ou non)</span> + <span class="n">dist</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">power</span><span class="p">(</span> + <span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">power</span><span class="p">(</span><span class="n">dist</span><span class="p">,</span> <span class="o">-</span> <span class="mf">6.</span><span class="p">),</span> <span class="n">axis</span><span class="o">=</span><span class="mi">0</span><span class="p">),</span> <span class="o">-</span><span class="mf">1.</span> <span class="o">/</span> <span class="mi">6</span><span class="p">)</span> + <span class="c1"># Liste des distances pour chaque structure de l'ensemble</span> + <span class="c1"># (liste associant une distance par structure de l'ensemble).</span> + <span class="c1"># Si contrib non ambig (associee a une seule paire de spins),</span> + <span class="c1"># cette liste devrait etre identique a la precedente</span> + <span class="n">dd</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">dist</span><span class="p">)</span> + + <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">msg</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="ne">Exception</span><span class="p">,</span> <span class="n">msg</span><span class="p">))</span> + <span class="k">pass</span> + + <span class="n">dref</span> <span class="o">=</span> <span class="kc">None</span> + <span class="k">if</span> <span class="n">dists_ref</span><span class="p">:</span> + <span class="k">try</span><span class="p">:</span> + <span class="n">dref</span> <span class="o">=</span> <span class="p">[</span><span class="n">dists_ref</span><span class="p">(</span><span class="o">*</span><span class="n">sp</span><span class="o">.</span><span class="n">getAtoms</span><span class="p">())</span> <span class="k">for</span> <span class="n">sp</span> <span class="ow">in</span> <span class="n">contrib</span><span class="p">]</span> + <span class="n">dref</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">power</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">power</span><span class="p">(</span><span class="n">dref</span><span class="p">,</span> <span class="o">-</span><span class="mf">6.</span><span class="p">),</span> <span class="n">axis</span><span class="o">=</span><span class="mi">0</span><span class="p">),</span> + <span class="o">-</span><span class="mf">1.</span> <span class="o">/</span> <span class="mi">6</span><span class="p">)</span> + <span class="n">ddref</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">dref</span><span class="p">)</span> + + <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">msg</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="ne">Exception</span><span class="p">,</span> <span class="n">msg</span><span class="p">))</span> + <span class="k">pass</span> + + <span class="n">tmp</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">()</span> + <span class="n">tmp</span><span class="p">[</span><span class="s1">'protein'</span><span class="p">]</span> <span class="o">=</span> <span class="n">protein_id</span> + <span class="n">tmp</span><span class="p">[</span><span class="s1">'data'</span><span class="p">]</span> <span class="o">=</span> <span class="n">rest</span><span class="o">.</span><span class="n">getReferencePeak</span><span class="p">()</span><span class="o">.</span><span class="n">getSpectrum</span><span class="p">()</span><span class="o">.</span><span class="n">getName</span><span class="p">()</span> + <span class="n">tmp</span><span class="p">[</span><span class="s1">'iteration'</span><span class="p">]</span> <span class="o">=</span> <span class="n">iteration_id</span> + <span class="n">tmp</span><span class="p">[</span><span class="s1">'clust'</span><span class="p">]</span> <span class="o">=</span> <span class="n">clusteridx</span> + <span class="n">tmp</span><span class="p">[</span><span class="s1">'ens_size'</span><span class="p">]</span> <span class="o">=</span> <span class="n">nbest</span> + <span class="n">tmp</span><span class="p">[</span><span class="s1">'rest_no'</span><span class="p">]</span> <span class="o">=</span> <span class="n">rest</span><span class="o">.</span><span class="n">getId</span><span class="p">()</span> + <span class="n">tmp</span><span class="p">[</span><span class="s1">'contrib_no'</span><span class="p">]</span> <span class="o">=</span> <span class="n">contrib</span><span class="o">.</span><span class="n">getId</span><span class="p">()</span> + <span class="c1"># Assuming there is only one spin per contribution</span> + <span class="n">tmp</span><span class="p">[</span><span class="s1">'resid_1'</span><span class="p">]</span> <span class="o">=</span> <span class="n">contrib</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">getResidue</span><span class="p">()</span><span class="o">.</span><span class="n">getNumber</span><span class="p">()</span> + <span class="n">tmp</span><span class="p">[</span><span class="s1">'resid_2'</span><span class="p">]</span> <span class="o">=</span> <span class="n">contrib</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">getResidue</span><span class="p">()</span><span class="o">.</span><span class="n">getNumber</span><span class="p">()</span> + <span class="n">tmp</span><span class="p">[</span><span class="s1">'res_1'</span><span class="p">]</span> <span class="o">=</span> <span class="n">contrib</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">getResidue</span><span class="p">()</span><span class="o">.</span><span class="n">getName</span><span class="p">()[:</span><span class="mi">3</span><span class="p">]</span> + <span class="n">tmp</span><span class="p">[</span><span class="s1">'res_2'</span><span class="p">]</span> <span class="o">=</span> <span class="n">contrib</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">getResidue</span><span class="p">()</span><span class="o">.</span><span class="n">getName</span><span class="p">()[:</span><span class="mi">3</span><span class="p">]</span> + <span class="n">tmp</span><span class="p">[</span><span class="s1">'atm_1'</span><span class="p">]</span> <span class="o">=</span> <span class="n">contrib</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">getName</span><span class="p">()</span> + <span class="n">tmp</span><span class="p">[</span><span class="s1">'atm_2'</span><span class="p">]</span> <span class="o">=</span> <span class="n">contrib</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">getName</span><span class="p">()</span> + <span class="n">tmp</span><span class="p">[</span><span class="s1">'viol_cutoff'</span><span class="p">]</span> <span class="o">=</span> <span class="n">cutoff</span> + <span class="n">tmp</span><span class="p">[</span><span class="s1">'d_target'</span><span class="p">]</span> <span class="o">=</span> <span class="n">rest</span><span class="o">.</span><span class="n">getDistance</span><span class="p">()</span> + <span class="n">tmp</span><span class="p">[</span><span class="s1">'lower_bound'</span><span class="p">]</span> <span class="o">=</span> <span class="n">rest</span><span class="o">.</span><span class="n">getLowerBound</span><span class="p">()</span> <span class="o">-</span> <span class="n">cutoff</span> + <span class="n">tmp</span><span class="p">[</span><span class="s1">'upper_bound'</span><span class="p">]</span> <span class="o">=</span> <span class="n">rest</span><span class="o">.</span><span class="n">getUpperBound</span><span class="p">()</span> <span class="o">+</span> <span class="n">cutoff</span> + <span class="n">tmp</span><span class="p">[</span><span class="s1">'rest_weight'</span><span class="p">]</span> <span class="o">=</span> <span class="n">rest</span><span class="o">.</span><span class="n">getWeight</span><span class="p">()</span> + <span class="n">tmp</span><span class="p">[</span><span class="s1">'dc_min'</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">dist</span><span class="p">)</span> <span class="k">if</span> <span class="n">dist</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="s1">''</span> + <span class="n">tmp</span><span class="p">[</span><span class="s1">'dc_avg'</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">dist</span><span class="p">)</span> <span class="k">if</span> <span class="n">dist</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="s1">''</span> <span class="c1"># Moyenne des distances associes a la contrib c dans l'ensemble</span> + <span class="n">tmp</span><span class="p">[</span><span class="s1">'dc_med'</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">median</span><span class="p">(</span><span class="n">dist</span><span class="p">)</span> <span class="k">if</span> <span class="n">dist</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="s1">''</span> + <span class="n">tmp</span><span class="p">[</span><span class="s1">'dc_ref'</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">dref</span><span class="p">)</span> <span class="k">if</span> <span class="n">dref</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="s1">''</span> + + <span class="n">output</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">tmp</span><span class="p">)</span> + + <span class="c1"># Liste des distances (effective si plusieurs spin par</span> + <span class="c1"># contribution) associe aux contraintes</span> + <span class="n">dd</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">dd</span><span class="p">)</span> + <span class="n">ddref</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="n">ddref</span><span class="p">)</span> <span class="c1"># Idem pour natif</span> + + <span class="n">dd_eff</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">power</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">power</span><span class="p">(</span><span class="n">dd</span><span class="p">,</span> <span class="o">-</span><span class="mi">6</span><span class="p">),</span> <span class="n">axis</span><span class="o">=</span><span class="mi">0</span><span class="p">),</span> <span class="o">-</span><span class="mf">1.</span> <span class="o">/</span> <span class="mi">6</span><span class="p">)</span> + <span class="n">ddref_eff</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">power</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">power</span><span class="p">(</span><span class="n">ddref</span><span class="p">,</span> <span class="o">-</span><span class="mi">6</span><span class="p">),</span> <span class="n">axis</span><span class="o">=</span><span class="mi">0</span><span class="p">),</span> <span class="o">-</span><span class="mf">1.</span> <span class="o">/</span> <span class="mi">6</span><span class="p">)</span> + + <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">output</span><span class="p">)):</span> + <span class="c1"># Moyenne des distances effectives dans l'ensemble de</span> + <span class="c1"># structure. Peut etre biaisee si on a des structures qui</span> + <span class="c1"># ont une distance anormalement elevee. Dans ce cas, on ne</span> + <span class="c1"># peut evaluer si la contrainte a ete correctement supprimee</span> + <span class="c1"># dans l'ensemble etudie.</span> + <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'Deff_min'</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">dd_eff</span><span class="p">)</span> + <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'Deff_avg'</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">dd_eff</span><span class="p">)</span> + <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'Deff_med'</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">median</span><span class="p">(</span><span class="n">dd_eff</span><span class="p">)</span> + <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'Deff_sdev'</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">std</span><span class="p">(</span><span class="n">dd_eff</span><span class="p">)</span> + <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'Deff_ref'</span><span class="p">]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">ddref_eff</span><span class="p">)</span> + <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'pc_viol'</span><span class="p">]</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span> + <span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">greater</span><span class="p">(</span><span class="n">dd_eff</span><span class="p">,</span> <span class="n">rest</span><span class="o">.</span><span class="n">getUpperBound</span><span class="p">()</span> <span class="o">+</span> <span class="n">cutoff</span><span class="p">)))</span> <span class="o">/</span> <span class="n">nbest</span> + <span class="c1"># Normalement d_ref ne contient qu'un seul elt puisqu'il y a</span> + <span class="c1"># qu'une seule structure ( a verifier )</span> + <span class="c1"># distance effective native</span> + <span class="c1"># Distance effective minimum dans l'ensemble</span> + <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'viol'</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span> <span class="k">if</span> \ + <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'pc_viol'</span><span class="p">]</span> <span class="o">>=</span> <span class="mf">0.5</span> <span class="k">else</span> <span class="kc">False</span> + <span class="c1"># Contrainte consideree comme valide si la distance effective</span> + <span class="c1"># dans la structure de reference est en dessous du seuil de</span> + <span class="c1"># violations.</span> + <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'valid'</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span> <span class="k">if</span> \ + <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'upper_bound'</span><span class="p">]</span> <span class="o">>=</span> <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'dc_ref'</span><span class="p">]</span> <span class="o">>=</span> <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'lower_bound'</span><span class="p">]</span> <span class="k">else</span> <span class="kc">False</span> + <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'contact_5'</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span> <span class="k">if</span> \ + <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'dc_ref'</span><span class="p">]</span> <span class="o"><=</span> <span class="mf">5.0</span> <span class="k">else</span> <span class="kc">False</span> + <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'contact_8'</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span> <span class="k">if</span> \ + <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'dc_ref'</span><span class="p">]</span> <span class="o"><=</span> <span class="mf">8.0</span> <span class="k">else</span> <span class="kc">False</span> + + <span class="k">if</span> <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'contact_8'</span><span class="p">]</span> <span class="ow">and</span> <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'viol'</span><span class="p">]:</span> + <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'group'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'VP viol'</span> + <span class="k">elif</span> <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'contact_8'</span><span class="p">]</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'viol'</span><span class="p">]:</span> + <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'group'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'VP'</span> + <span class="k">elif</span> <span class="ow">not</span> <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'contact_8'</span><span class="p">]</span> <span class="ow">and</span> <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'viol'</span><span class="p">]:</span> + <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'group'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'FP viol'</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">'group'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'FP'</span> + + <span class="k">if</span> <span class="n">headerflag</span><span class="p">:</span> + <span class="n">out</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">","</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">output</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">()))</span> + <span class="n">headerflag</span> <span class="o">=</span> <span class="kc">False</span> + + <span class="n">out</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> <span class="s2">","</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="s2">"</span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="n">k</span><span class="p">]</span> + <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">()]))</span> + + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Writing violation analysis of clust </span><span class="si">%s</span><span class="s2"> </span><span class="si">%s</span><span class="s2"> file"</span><span class="p">,</span> <span class="n">clusteridx</span><span class="p">,</span> + <span class="n">out_file</span><span class="p">)</span></div> + + <span class="c1"># def extract_ariaensemble_matrix(self):</span> + <span class="c1"># """</span> + <span class="c1">#</span> + <span class="c1"># Returns</span> + <span class="c1"># -------</span> + <span class="c1">#</span> + <span class="c1"># """</span> + <span class="c1"># pass</span> + + <span class="c1"># TODO: As described in Guillaume paper, clustering on aligned CA</span> + <span class="c1"># coordinates highly depends on the efficiency of the alignment method</span> +<div class="viewcode-block" id="EnsembleAnalysis.pca_projection"><a class="viewcode-back" href="../../ariaec.html#ariaec.analysis.EnsembleAnalysis.pca_projection">[docs]</a> <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">pca_projection</span><span class="p">(</span> + <span class="n">ensemble</span><span class="p">,</span> <span class="n">molecule</span><span class="p">,</span> <span class="n">infos</span><span class="p">,</span> <span class="n">atmask</span><span class="o">=</span><span class="s2">"CA"</span><span class="p">,</span> + <span class="n">title</span><span class="o">=</span><span class="s2">"3D PCA projection on backbone coordinates"</span><span class="p">,</span> <span class="n">outfile</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> PCA projection of ensemble coordinates</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> ensemble :</span> +<span class="sd"> molecule :</span> +<span class="sd"> infos</span> +<span class="sd"> atmask :</span> +<span class="sd"> (Default value = "CA")</span> +<span class="sd"> title</span> +<span class="sd"> outfile</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">sns</span><span class="o">.</span><span class="n">set_style</span><span class="p">(</span><span class="s1">'ticks'</span><span class="p">)</span> + <span class="n">pca</span> <span class="o">=</span> <span class="n">PCA</span><span class="p">(</span><span class="n">n_components</span><span class="o">=</span><span class="mi">3</span><span class="p">)</span> + <span class="n">mask</span> <span class="o">=</span> <span class="p">[</span><span class="n">a</span><span class="o">.</span><span class="n">getId</span><span class="p">()</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">molecule</span><span class="o">.</span><span class="n">get_chains</span><span class="p">()</span> <span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">c</span><span class="o">.</span><span class="n">getResidues</span><span class="p">()</span> + <span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">r</span><span class="o">.</span><span class="n">getAtoms</span><span class="p">()</span> <span class="k">if</span> <span class="n">a</span><span class="o">.</span><span class="n">getName</span><span class="p">()</span> <span class="o">==</span> <span class="n">atmask</span><span class="p">]</span> + + <span class="c1"># Align all structures on ca backbone</span> + <span class="n">si</span> <span class="o">=</span> <span class="n">SuperImposer</span><span class="p">(</span><span class="n">ensemble</span><span class="p">,</span> <span class="n">molecule</span><span class="p">)</span> + <span class="n">si</span><span class="o">.</span><span class="n">getSettings</span><span class="p">()[</span><span class="s1">'number_of_best_structures'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'all'</span> + <span class="n">si</span><span class="o">.</span><span class="n">_fit</span><span class="p">(</span><span class="n">mask</span><span class="p">)</span> + + <span class="c1"># Get matrix of coordinates</span> + <span class="n">fitcoords</span> <span class="o">=</span> <span class="n">si</span><span class="o">.</span><span class="n">getFittedCoordinates</span><span class="p">()</span> + <span class="n">fitcoords</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">take</span><span class="p">(</span><span class="n">fitcoords</span><span class="p">,</span> <span class="n">mask</span><span class="p">,</span> <span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> + <span class="n">ns</span><span class="p">,</span> <span class="n">na</span><span class="p">,</span> <span class="n">xyz</span> <span class="o">=</span> <span class="n">fitcoords</span><span class="o">.</span><span class="n">shape</span> + <span class="c1"># Change the shape of coords matrix in order to use pca, kmeans, ...</span> + <span class="n">fitcoords</span><span class="o">.</span><span class="n">shape</span> <span class="o">=</span> <span class="n">ns</span><span class="p">,</span> <span class="n">na</span> <span class="o">*</span> <span class="n">xyz</span> + + <span class="n">ensemble</span><span class="o">.</span><span class="n">getSettings</span><span class="p">()[</span><span class="s1">'number_of_best_structures'</span><span class="p">]</span> <span class="o">=</span> <span class="mi">15</span> + + <span class="n">fitcoords_reduced</span> <span class="o">=</span> <span class="n">pca</span><span class="o">.</span><span class="n">fit_transform</span><span class="p">(</span><span class="n">fitcoords</span><span class="p">)</span> + + <span class="c1">#</span> + <span class="n">fig</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span> + + <span class="n">ax</span> <span class="o">=</span> <span class="n">Axes3D</span><span class="p">(</span><span class="n">fig</span><span class="p">)</span> + + <span class="n">colscatter</span><span class="p">(</span> + <span class="n">fitcoords_reduced</span><span class="p">,</span> <span class="n">ax</span><span class="p">,</span> <span class="n">infos</span><span class="p">,</span> <span class="n">ndim</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">axtitle</span><span class="o">=</span><span class="n">title</span><span class="p">,</span> + <span class="n">xlabel</span><span class="o">=</span><span class="s2">"Principal component 1"</span><span class="p">,</span> <span class="n">ylabel</span><span class="o">=</span><span class="s2">"Principal component 2"</span><span class="p">,</span> + <span class="n">zlabel</span><span class="o">=</span><span class="s2">"Principal component 3"</span><span class="p">,</span> <span class="n">legend_prefix</span><span class="o">=</span><span class="s2">"Clust "</span><span class="p">)</span> + <span class="k">if</span> <span class="n">outfile</span><span class="p">:</span> + <span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="n">outfile</span><span class="p">)</span></div> + +<div class="viewcode-block" id="EnsembleAnalysis.run"><a class="viewcode-back" href="../../ariaec.html#ariaec.analysis.EnsembleAnalysis.run">[docs]</a> <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""Execute Ensemble analysis"""</span> + <span class="c1"># Args</span> + <span class="n">project_path</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">analysis</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"project"</span><span class="p">]</span> + <span class="c1"># restraints_path = self.settings.analysis.args["restraints"]</span> + <span class="n">native_path</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">analysis</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"ref"</span><span class="p">)</span> + <span class="n">out_path</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">analysis</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"output_directory"</span><span class="p">]</span> + <span class="n">list_name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">analysis</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"listname"</span><span class="p">]</span> + + <span class="c1"># Create Aria objects</span> + <span class="n">pickler</span> <span class="o">=</span> <span class="n">AriaXMLPickler</span><span class="p">()</span> + <span class="n">project</span> <span class="o">=</span> <span class="n">pickler</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">project_path</span><span class="p">)</span> + <span class="n">molecule_path</span> <span class="o">=</span> <span class="n">project</span><span class="o">.</span><span class="n">getData</span><span class="p">(</span><span class="n">DATA_SEQUENCE</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">getLocation</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span> + <span class="n">molecule</span> <span class="o">=</span> <span class="n">pickler</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">molecule_path</span><span class="p">)</span> + + <span class="c1"># If we are at the first iteration, we select the related ensemble and</span> + <span class="c1"># restraints, otherwise we take the ensemble from the previous iteration</span> + <span class="n">iteration_path</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">analysis</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"iteration"</span><span class="p">]</span> + <span class="n">iteration_id</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span> + <span class="s1">'[0-9]+'</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">iteration_path</span><span class="p">))</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">0</span><span class="p">))</span> + <span class="k">if</span> <span class="n">iteration_id</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span> + <span class="c1"># If we are not at the first iteration, we select analysis</span> + <span class="c1"># parameters related to user input iteration and update iteration</span> + <span class="c1"># path in order to get ensemble of structures from previous</span> + <span class="c1"># iteration</span> + <span class="n">iteration_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> + <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">iteration_path</span><span class="p">),</span> <span class="s2">"it</span><span class="si">%d</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">iteration_id</span> <span class="o">-</span> <span class="mi">1</span><span class="p">))</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Ensemble analysis will be done on restraints and "</span> + <span class="s2">"ensemble from it</span><span class="si">%d</span><span class="s2"> with violation criteria of it</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> + <span class="p">(</span><span class="n">iteration_id</span> <span class="o">-</span> <span class="mi">1</span><span class="p">),</span> <span class="n">iteration_id</span><span class="p">)</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">iteration_path</span><span class="p">):</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"Can not found previous iteration (</span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> + <span class="n">iteration_path</span><span class="p">)</span> + + <span class="c1"># Load restraints related to the actual iteration</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Reading distance restraints file(s)"</span><span class="p">)</span> + <span class="c1"># restraints = glob(os.path.join(iteration_path, '*restraints.xml')) if\</span> + <span class="c1"># not self.settings.analysis.args.get('restraint') else \</span> + <span class="c1"># [self.settings.analysis.args.get('restraint')]</span> + <span class="c1"># if not restraints:</span> + <span class="c1"># # Load tbl restraints and convert them into aria xml format</span> + <span class="n">restraints</span> <span class="o">=</span> <span class="n">glob</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">iteration_path</span><span class="p">,</span> <span class="s1">'*.tbl'</span><span class="p">))</span> + <span class="n">restraints</span> <span class="o">=</span> <span class="n">AriaEcXMLConverter</span><span class="o">.</span><span class="n">tbl2xml</span><span class="p">(</span> + <span class="n">iteration_path</span><span class="p">,</span> <span class="n">molecule_path</span><span class="p">,</span> <span class="n">restraints</span><span class="p">,</span> <span class="n">list_name</span><span class="p">)</span> + <span class="n">restraints</span> <span class="o">=</span> <span class="p">[</span><span class="n">pickler</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">restraint</span><span class="p">)</span><span class="o">.</span><span class="n">restraint</span> + <span class="k">for</span> <span class="n">restraint</span> <span class="ow">in</span> <span class="n">restraints</span><span class="p">]</span> + + <span class="c1"># Read structure ensembles</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Reading structure ensemble(s)"</span><span class="p">)</span> + + <span class="c1"># Load ensemble parameters</span> + <span class="n">protein_id</span> <span class="o">=</span> <span class="n">project</span><span class="o">.</span><span class="n">getSettings</span><span class="p">()[</span><span class="s1">'name'</span><span class="p">]</span> + <span class="n">nbest</span> <span class="o">=</span> <span class="n">project</span><span class="o">.</span><span class="n">getProtocol</span><span class="p">()</span><span class="o">.</span><span class="n">getIterationSettings</span><span class="p">(</span><span class="n">iteration_id</span><span class="p">)[</span> + <span class="s2">"number_of_best_structures"</span><span class="p">]</span> + <span class="n">sort_crit</span> <span class="o">=</span> <span class="n">project</span><span class="o">.</span><span class="n">getProtocol</span><span class="p">()</span><span class="o">.</span><span class="n">getIterationSettings</span><span class="p">(</span><span class="n">iteration_id</span><span class="p">)[</span> + <span class="s2">"sort_criterion"</span><span class="p">]</span> + <span class="n">se_settings</span> <span class="o">=</span> <span class="n">StructureEnsembleSettings</span><span class="p">()</span> + <span class="n">se_settings</span><span class="p">[</span><span class="s1">'sort_criterion'</span><span class="p">]</span> <span class="o">=</span> <span class="n">sort_crit</span> + <span class="n">se_settings</span><span class="p">[</span><span class="s1">'number_of_best_structures'</span><span class="p">]</span> <span class="o">=</span> <span class="n">nbest</span> + + <span class="c1"># Get list of pdb related to structure ensemble(s)</span> + <span class="n">ens_paths</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_ensemble_paths</span><span class="p">(</span><span class="n">iteration_path</span><span class="p">)</span> + + <span class="k">with</span> <span class="n">Capturing</span><span class="p">()</span> <span class="k">as</span> <span class="n">output</span><span class="p">:</span> + <span class="c1"># We define here as many structure ensemble object as number of</span> + <span class="c1"># list in ens_paths (if clustering used)</span> + <span class="n">clustensembles</span> <span class="o">=</span> <span class="p">[</span> + <span class="n">StructureEnsemble</span><span class="p">(</span><span class="n">se_settings</span><span class="p">)</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="n">ens_paths</span><span class="p">]</span> + <span class="p">[</span><span class="n">ensemble</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">ens_paths</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">molecule</span><span class="p">,</span> <span class="nb">format</span><span class="o">=</span><span class="s1">'cns'</span><span class="p">)</span> + <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">ensemble</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">clustensembles</span><span class="p">)]</span> + <span class="p">[</span><span class="n">ensemble</span><span class="o">.</span><span class="n">sort</span><span class="p">()</span> + <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">ensemble</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">clustensembles</span><span class="p">)]</span> + <span class="k">if</span> <span class="n">output</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">output</span><span class="p">)</span> + + <span class="c1"># Get the lowest energy ensemble</span> + <span class="c1"># LOG.info("Sorting structure ensemble(s) with %s criteria", sort_crit)</span> + <span class="c1"># energies = np.array([</span> + <span class="c1"># np.mean([d['total_energy'] for d in ens.getInfo()[:, 1]][:nbest])</span> + <span class="c1"># if len(ens) >= nbest else None for ens in clustensembles],</span> + <span class="c1"># dtype=np.float)</span> + + <span class="c1"># Get native structure</span> + <span class="c1"># Issue with several pdb files which have the same residue_number in</span> + <span class="c1"># atm and hetatm sections ... We remove them with bio pdb</span> + <span class="n">dists_ref</span> <span class="o">=</span> <span class="kc">None</span> + <span class="k">if</span> <span class="n">native_path</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Reading native structure"</span><span class="p">)</span> + <span class="n">logging</span><span class="o">.</span><span class="n">captureWarnings</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span> + <span class="n">native</span> <span class="o">=</span> <span class="n">PDBParser</span><span class="p">()</span><span class="o">.</span><span class="n">get_structure</span><span class="p">(</span><span class="n">protein_id</span><span class="p">,</span> <span class="n">native_path</span><span class="p">)</span> + <span class="n">native_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">out_path</span><span class="p">,</span> <span class="n">protein_id</span> <span class="o">+</span> <span class="s2">"_ordered.native.pdb"</span><span class="p">)</span> + <span class="n">io</span> <span class="o">=</span> <span class="n">PDBIO</span><span class="p">()</span> + <span class="n">io</span><span class="o">.</span><span class="n">set_structure</span><span class="p">(</span><span class="n">native</span><span class="p">)</span> + <span class="n">io</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">native_path</span><span class="p">,</span> <span class="n">select</span><span class="o">=</span><span class="n">NotDisordered</span><span class="p">())</span> + + <span class="n">native</span> <span class="o">=</span> <span class="n">StructureEnsemble</span><span class="p">(</span><span class="n">se_settings</span><span class="p">)</span> + <span class="n">native</span><span class="o">.</span><span class="n">display_warnings</span> <span class="o">=</span> <span class="mi">0</span> + <span class="n">native</span><span class="o">.</span><span class="n">read</span><span class="p">([</span><span class="n">native_path</span><span class="p">],</span> <span class="n">molecule</span><span class="p">,</span> <span class="nb">format</span><span class="o">=</span><span class="s1">'cns'</span><span class="p">)</span> + + <span class="n">dists_ref</span> <span class="o">=</span> <span class="n">native</span><span class="o">.</span><span class="n">getDistances</span> + + <span class="c1"># We get here the distance of 'number_of_best_structures' in the</span> + <span class="c1"># ensemble</span> + <span class="c1"># ens_getdists = ensemble.getDistances</span> + + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Violation analysis"</span><span class="p">)</span> + <span class="k">for</span> <span class="n">clustidx</span><span class="p">,</span> <span class="n">clustensemble</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">clustensembles</span><span class="p">):</span> + <span class="n">out_file</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">out_path</span><span class="p">,</span> <span class="s1">'violations.csv'</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">violation_analysis</span><span class="p">(</span><span class="n">project</span><span class="p">,</span> <span class="n">iteration_id</span><span class="p">,</span> <span class="n">restraints</span><span class="p">,</span> + <span class="n">clustensemble</span><span class="p">,</span> <span class="n">out_file</span><span class="p">,</span> + <span class="n">clusteridx</span><span class="o">=</span><span class="n">clustidx</span><span class="p">,</span> <span class="n">dists_ref</span><span class="o">=</span><span class="n">dists_ref</span><span class="p">,</span> + <span class="n">headerflag</span><span class="o">=</span><span class="kc">True</span> <span class="k">if</span> <span class="n">clustidx</span> <span class="o">==</span> <span class="mi">0</span> <span class="k">else</span> <span class="kc">False</span><span class="p">)</span> + + <span class="c1"># For the plotting part, we need a StructureEnsemble instance with all</span> + <span class="c1"># pdb files from the iteration</span> + + <span class="n">allensemble</span> <span class="o">=</span> <span class="n">StructureEnsemble</span><span class="p">(</span><span class="n">se_settings</span><span class="p">)</span> + <span class="n">allensemble</span><span class="o">.</span><span class="n">read</span><span class="p">(</span> + <span class="n">files</span><span class="o">=</span><span class="p">[</span><span class="n">pdbfile</span> <span class="k">for</span> <span class="n">se</span> <span class="ow">in</span> <span class="n">ens_paths</span> <span class="k">for</span> <span class="n">pdbfile</span> <span class="ow">in</span> <span class="n">se</span><span class="p">],</span> + <span class="n">molecule</span><span class="o">=</span><span class="n">molecule</span><span class="p">,</span> <span class="nb">format</span><span class="o">=</span><span class="s1">'cns'</span><span class="p">)</span> + + <span class="n">infos</span> <span class="o">=</span> <span class="p">[</span><span class="n">inf</span> <span class="k">for</span> <span class="n">inf</span> <span class="ow">in</span> <span class="n">allensemble</span><span class="o">.</span><span class="n">getInfo</span><span class="p">()]</span> + <span class="p">[</span><span class="n">info</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">update</span><span class="p">({</span><span class="s1">'clust'</span><span class="p">:</span> <span class="n">idx</span><span class="p">})</span> <span class="k">for</span> <span class="n">info</span> <span class="ow">in</span> <span class="n">infos</span> <span class="k">for</span> <span class="n">idx</span><span class="p">,</span> <span class="n">clustlist</span> <span class="ow">in</span> + <span class="nb">enumerate</span><span class="p">(</span><span class="n">ens_paths</span><span class="p">)</span> <span class="k">if</span> <span class="nb">filter</span><span class="p">(</span><span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="n">info</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="o">.</span><span class="n">match</span><span class="p">,</span> <span class="n">clustlist</span><span class="p">)]</span> + + <span class="c1"># Compute pca projection of cluster labels on all the</span> + <span class="c1"># generated structures. Add later an option to visualize extra</span> + <span class="c1"># information like RMSD, quality, ... with a csv file</span> + <span class="bp">self</span><span class="o">.</span><span class="n">pca_projection</span><span class="p">(</span> + <span class="n">allensemble</span><span class="p">,</span> <span class="n">molecule</span><span class="p">,</span> <span class="p">[</span><span class="n">info</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'clust'</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="k">for</span> <span class="n">info</span> <span class="ow">in</span> <span class="n">infos</span><span class="p">],</span> + <span class="n">atmask</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">analysis</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s2">"atmask"</span><span class="p">],</span> + <span class="n">title</span><span class="o">=</span><span class="s2">"3D PCA projection on </span><span class="si">%s</span><span class="s2"> backbone coordinates </span><span class="se">\n</span><span class="si">%s</span><span class="s2"> contacts"</span> + <span class="s2">" at iteration </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">protein_id</span><span class="p">,</span> <span class="n">list_name</span><span class="p">,</span> + <span class="nb">str</span><span class="p">(</span><span class="n">iteration_id</span><span class="p">)),</span> + <span class="n">outfile</span><span class="o">=</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">out_path</span><span class="p">,</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">_</span><span class="si">%s</span><span class="s2">_it</span><span class="si">%s</span><span class="s2">_clusts.3dpca.png"</span> <span class="o">%</span> + <span class="p">(</span><span class="n">protein_id</span><span class="p">,</span> <span class="n">list_name</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">iteration_id</span><span class="p">)))</span> + <span class="p">)</span></div></div> + + <span class="c1"># with open(os.path.join(iter_dir,</span> + <span class="c1"># "analysis/pyfit/accuracydssp/RMSD.dat")) as rmsdfile:</span> + <span class="c1"># accdssp = {key: float(value) for key, value in</span> + <span class="c1"># [line.split() for line in rmsdfile if</span> + <span class="c1"># re.search("pdb", line)]}</span> + + <span class="c1"># [info[1].update({'ensemble': False})</span> + <span class="c1"># for info in infos]</span> + <span class="c1"># [info[1].update({'ensemble': True})</span> + <span class="c1"># for info in infos</span> + <span class="c1"># for clustlist in [clustlist[0:15] for clustlist in clustlists] if</span> + <span class="c1"># filter(re.compile(info[0]).match, clustlist)]</span> + <span class="c1"># [info[1].update(</span> + <span class="c1"># {'accdssp': accdssp.get(os.path.basename(info[0]), None)})</span> + <span class="c1"># for info in infos]</span> +</pre></div> + + </div> + <div class="articleComments"> + + </div> + </div> + <footer> + + + <hr/> + + <div role="contentinfo"> + <p> + © Copyright 2017, Fabrice Allain. + + </p> + </div> + Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. + +</footer> + + </div> + </div> + + </section> + + </div> + + + + + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT:'../../', + VERSION:'0.2', + COLLAPSE_INDEX:false, + FILE_SUFFIX:'.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt' + }; + </script> + <script type="text/javascript" src="../../_static/jquery.js"></script> + <script type="text/javascript" src="../../_static/underscore.js"></script> + <script type="text/javascript" src="../../_static/doctools.js"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + + + + <script type="text/javascript" src="../../_static/js/theme.js"></script> + + + + + <script type="text/javascript"> + jQuery(function () { + SphinxRtdTheme.StickyNav.enable(); + }); + </script> + + +</body> +</html> \ No newline at end of file diff --git a/examples-dev/olds/_build/html/_modules/ariaec/base.html b/examples-dev/olds/_build/html/_modules/ariaec/base.html new file mode 100644 index 0000000000000000000000000000000000000000..ab2ba1d55268cf527ef9a6e3a969117c11bdf762 --- /dev/null +++ b/examples-dev/olds/_build/html/_modules/ariaec/base.html @@ -0,0 +1,755 @@ + + +<!DOCTYPE html> +<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> +<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> +<head> + <meta charset="utf-8"> + + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <title>ariaec.base — AriaEc 0.2 documentation</title> + + + + + + + + + + + + + + + + + + <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> + + + + + + <link rel="index" title="Index" + href="../../genindex.html"/> + <link rel="search" title="Search" href="../../search.html"/> + <link rel="top" title="AriaEc 0.2 documentation" href="../../index.html"/> + <link rel="up" title="Module code" href="../index.html"/> + + + <script src="../../_static/js/modernizr.min.js"></script> + +</head> + +<body class="wy-body-for-nav" role="document"> + + + <div class="wy-grid-for-nav"> + + + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search"> + + + + <a href="../../index.html" class="icon icon-home"> AriaEc + + + + </a> + + + + + <div class="version"> + 0.2 + </div> + + + + +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + + + </div> + + <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> + + + + + + + <!-- Local TOC --> + <div class="local-toc"></div> + + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> + + + <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> + + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">AriaEc</a> + + </nav> + + + + <div class="wy-nav-content"> + <div class="rst-content"> + + + + + + + + + + + + + + + + +<div role="navigation" aria-label="breadcrumbs navigation"> + + <ul class="wy-breadcrumbs"> + + <li><a href="../../index.html">Docs</a> »</li> + + <li><a href="../index.html">Module code</a> »</li> + + <li>ariaec.base</li> + + + <li class="wy-breadcrumbs-aside"> + + + + </li> + + </ul> + + + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <h1>Source code for ariaec.base</h1><div class="highlight"><pre> +<span></span><span class="c1"># coding=utf-8</span> +<span class="sd">"""</span> +<span class="sd"> Basic tools aria_ec</span> +<span class="sd">"""</span> +<span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span><span class="p">,</span> <span class="n">division</span><span class="p">,</span> <span class="n">print_function</span> +<span class="kn">from</span> <span class="nn">abc</span> <span class="k">import</span> <span class="n">ABCMeta</span><span class="p">,</span> <span class="n">abstractmethod</span> +<span class="kn">from</span> <span class="nn">Bio.PDB</span> <span class="k">import</span> <span class="n">Select</span> + +<span class="kn">import</span> <span class="nn">six</span> +<span class="kn">import</span> <span class="nn">logging</span> +<span class="kn">import</span> <span class="nn">logging.config</span> +<span class="kn">import</span> <span class="nn">os</span> +<span class="kn">import</span> <span class="nn">json</span> +<span class="kn">import</span> <span class="nn">re</span> +<span class="kn">import</span> <span class="nn">ast</span> +<span class="kn">import</span> <span class="nn">sys</span> +<span class="kn">import</span> <span class="nn">shutil</span> +<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> +<span class="kn">import</span> <span class="nn">pkg_resources</span> <span class="k">as</span> <span class="nn">pkgr</span> +<span class="kn">import</span> <span class="nn">matplotlib.artist</span> <span class="k">as</span> <span class="nn">art</span> + + +<span class="n">LOG</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span> + + +<div class="viewcode-block" id="addtup"><a class="viewcode-back" href="../../ariaec.html#ariaec.base.addtup">[docs]</a><span class="k">def</span> <span class="nf">addtup</span><span class="p">(</span><span class="n">tup</span><span class="p">,</span> <span class="n">inc</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Increment all values by 1 in a tuple</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> tup :</span> +<span class="sd"> param inc:</span> +<span class="sd"> inc :</span> +<span class="sd"> (Default value = 1)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">return</span> <span class="nb">tuple</span><span class="p">((</span><span class="n">val</span> <span class="o">+</span> <span class="n">inc</span> <span class="k">for</span> <span class="n">val</span> <span class="ow">in</span> <span class="n">tup</span><span class="p">))</span></div> + + +<div class="viewcode-block" id="titleprint"><a class="viewcode-back" href="../../ariaec.html#ariaec.base.titleprint">[docs]</a><span class="k">def</span> <span class="nf">titleprint</span><span class="p">(</span><span class="n">outfile</span><span class="p">,</span> <span class="n">progname</span><span class="o">=</span><span class="s1">''</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="s1">''</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Init log file</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> outfile :</span> +<span class="sd"> param progname: docstring</span> +<span class="sd"> desc :</span> +<span class="sd"> return: (Default value = '')</span> +<span class="sd"> progname :</span> +<span class="sd"> (Default value = '')</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">out</span> <span class="o">=</span> <span class="s1">'''</span> +<span class="s1">================================================================================</span> +<span class="si">{progname}</span><span class="s1"></span> +<span class="s1"> </span><span class="si">{desc}</span><span class="s1"></span> +<span class="s1">================================================================================</span> +<span class="s1">'''</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">progname</span><span class="o">=</span><span class="n">progname</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="n">desc</span><span class="o">.</span><span class="n">capitalize</span><span class="p">())</span> + <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">out</span><span class="p">[</span><span class="mi">1</span><span class="p">:])</span></div> + + +<div class="viewcode-block" id="get_filename"><a class="viewcode-back" href="../../ariaec.html#ariaec.base.get_filename">[docs]</a><span class="k">def</span> <span class="nf">get_filename</span><span class="p">(</span><span class="n">path</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Search filename in the given path</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> path :</span> +<span class="sd"> return:</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">return</span> <span class="s2">"_"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">path</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"/"</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"."</span><span class="p">)[:</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span></div> + + +<div class="viewcode-block" id="reg_load"><a class="viewcode-back" href="../../ariaec.html#ariaec.base.reg_load">[docs]</a><span class="k">def</span> <span class="nf">reg_load</span><span class="p">(</span><span class="n">regex</span><span class="p">,</span> <span class="n">filepath</span><span class="p">,</span> <span class="n">sort</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> regex :</span> +<span class="sd"> param filepath:</span> +<span class="sd"> sort :</span> +<span class="sd"> return: (Default value = None)</span> +<span class="sd"> filepath :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + + <span class="n">lines_dict</span> <span class="o">=</span> <span class="p">{}</span> + + <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">filepath</span><span class="p">)</span> <span class="k">as</span> <span class="n">infile</span><span class="p">:</span> + <span class="k">for</span> <span class="n">index</span><span class="p">,</span> <span class="n">line</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">infile</span><span class="p">):</span> + <span class="n">match</span> <span class="o">=</span> <span class="n">regex</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">line</span><span class="p">)</span> + <span class="k">if</span> <span class="n">match</span><span class="p">:</span> + <span class="n">lines_dict</span><span class="p">[</span><span class="n">index</span><span class="p">]</span> <span class="o">=</span> <span class="n">match</span><span class="o">.</span><span class="n">groupdict</span><span class="p">()</span> + + <span class="k">if</span> <span class="n">sort</span><span class="p">:</span> + <span class="n">lines_dict</span> <span class="o">=</span> <span class="n">sort_2dict</span><span class="p">(</span><span class="n">lines_dict</span><span class="p">,</span> <span class="n">sort</span><span class="p">)</span> + + <span class="k">return</span> <span class="n">lines_dict</span></div> + + +<div class="viewcode-block" id="sort_2dict"><a class="viewcode-back" href="../../ariaec.html#ariaec.base.sort_2dict">[docs]</a><span class="k">def</span> <span class="nf">sort_2dict</span><span class="p">(</span><span class="n">unsort_dict</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Sort 2d dict by key</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> reverse :</span> +<span class="sd"> param key: (Default value = True)</span> +<span class="sd"> unsort_dict :</span> +<span class="sd"> return: sorted dict</span> +<span class="sd"> key :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">sorted_index</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">unsort_dict</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="nb">float</span><span class="p">(</span><span class="n">unsort_dict</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="n">key</span><span class="p">]),</span> + <span class="n">reverse</span><span class="o">=</span><span class="n">reverse</span><span class="p">)</span> + <span class="n">sorted_dict</span> <span class="o">=</span> <span class="p">{}</span> + + <span class="k">for</span> <span class="n">rank</span><span class="p">,</span> <span class="n">ind</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">sorted_index</span><span class="p">):</span> + <span class="n">sorted_dict</span><span class="p">[</span><span class="n">rank</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">unsort_dict</span><span class="p">[</span><span class="n">ind</span><span class="p">]</span> + + <span class="k">return</span> <span class="n">sorted_dict</span></div> + + +<div class="viewcode-block" id="cart_dist"><a class="viewcode-back" href="../../ariaec.html#ariaec.base.cart_dist">[docs]</a><span class="k">def</span> <span class="nf">cart_dist</span><span class="p">(</span><span class="n">vectx</span><span class="p">,</span> <span class="n">vecty</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Evaluate cartesian distance beetween 2 points x, vecty</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> vectx :</span> +<span class="sd"> numpy array (len = n dimensions)</span> +<span class="sd"> vecty :</span> +<span class="sd"> numpy array (len = n dimensions)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="nb">sum</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">power</span><span class="p">(</span><span class="n">vectx</span> <span class="o">-</span> <span class="n">vecty</span><span class="p">,</span> <span class="mi">2</span><span class="p">)))</span></div> + + +<div class="viewcode-block" id="format_str"><a class="viewcode-back" href="../../ariaec.html#ariaec.base.format_str">[docs]</a><span class="k">def</span> <span class="nf">format_str</span><span class="p">(</span><span class="n">string</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Convert str in bool, float, int or str</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> string :</span> +<span class="sd"> return:</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="sa">r</span><span class="s2">"^\s*(true)\s*$"</span><span class="p">,</span> <span class="n">string</span><span class="p">,</span> <span class="n">re</span><span class="o">.</span><span class="n">I</span><span class="p">):</span> + <span class="k">return</span> <span class="kc">True</span> + <span class="k">elif</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="sa">r</span><span class="s2">"^\s*(false)\s*$"</span><span class="p">,</span> <span class="n">string</span><span class="p">,</span> <span class="n">re</span><span class="o">.</span><span class="n">I</span><span class="p">):</span> + <span class="k">return</span> <span class="kc">False</span> + <span class="k">elif</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="sa">r</span><span class="s2">"^\s*\d+\s*$"</span><span class="p">,</span> <span class="n">string</span><span class="p">):</span> + <span class="k">return</span> <span class="nb">int</span><span class="p">(</span><span class="n">string</span><span class="p">)</span> + <span class="k">elif</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="sa">r</span><span class="s2">"^[\s\d-]+\.\d+\s*$"</span><span class="p">,</span> <span class="n">string</span><span class="p">):</span> + <span class="k">return</span> <span class="nb">float</span><span class="p">(</span><span class="n">string</span><span class="p">)</span> + <span class="k">elif</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="sa">r</span><span class="s1">'^".+"$'</span><span class="p">,</span> <span class="n">string</span><span class="p">):</span> + <span class="c1"># remove " characters</span> + <span class="k">return</span> <span class="n">string</span><span class="p">[</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> + <span class="k">elif</span> <span class="s2">","</span> <span class="ow">in</span> <span class="n">string</span><span class="p">:</span> + <span class="k">return</span> <span class="n">string</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">','</span><span class="p">)</span> + <span class="k">elif</span> <span class="s2">"+"</span> <span class="ow">in</span> <span class="n">string</span><span class="p">:</span> + <span class="k">return</span> <span class="n">string</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">'+'</span><span class="p">)</span> + <span class="k">elif</span> <span class="s2">"/"</span> <span class="ow">in</span> <span class="n">string</span> <span class="ow">and</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">string</span><span class="p">):</span> + <span class="k">return</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">string</span><span class="p">)</span> + <span class="k">elif</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="sa">r</span><span class="s2">"[/\w]+"</span><span class="p">,</span> <span class="n">string</span><span class="p">):</span> + <span class="k">return</span> <span class="n">string</span> + <span class="k">else</span><span class="p">:</span> + <span class="k">if</span> <span class="n">string</span><span class="p">:</span> + <span class="k">try</span><span class="p">:</span> + <span class="n">ev_str</span> <span class="o">=</span> <span class="n">ast</span><span class="o">.</span><span class="n">literal_eval</span><span class="p">(</span><span class="n">string</span><span class="p">)</span> + <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"Don't understand given string </span><span class="si">%s</span><span class="s2">. Please check "</span> + <span class="s2">"format."</span><span class="p">,</span> <span class="n">string</span><span class="p">)</span> + <span class="k">return</span> <span class="kc">None</span> + <span class="k">except</span> <span class="ne">SyntaxError</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"Given string </span><span class="si">%s</span><span class="s2"> is not a valid expression"</span><span class="p">,</span> <span class="n">string</span><span class="p">)</span> + <span class="k">return</span> <span class="kc">None</span> + <span class="k">return</span> <span class="n">ev_str</span> + <span class="k">else</span><span class="p">:</span> + <span class="k">return</span> <span class="kc">None</span></div> + + +<div class="viewcode-block" id="format_dict"><a class="viewcode-back" href="../../ariaec.html#ariaec.base.format_dict">[docs]</a><span class="k">def</span> <span class="nf">format_dict</span><span class="p">(</span><span class="n">indict</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> indict :</span> +<span class="sd"> return:</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">indict</span><span class="p">:</span> + <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">indict</span><span class="p">[</span><span class="n">key</span><span class="p">],</span> <span class="nb">str</span><span class="p">):</span> + <span class="n">indict</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">format_str</span><span class="p">(</span><span class="n">indict</span><span class="p">[</span><span class="n">key</span><span class="p">])</span> + <span class="k">return</span> <span class="n">indict</span></div> + + +<div class="viewcode-block" id="ppdict"><a class="viewcode-back" href="../../ariaec.html#ariaec.base.ppdict">[docs]</a><span class="k">def</span> <span class="nf">ppdict</span><span class="p">(</span><span class="n">indict</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">2</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> indict :</span> +<span class="sd"> param indent:</span> +<span class="sd"> indent :</span> +<span class="sd"> (Default value = 2)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">return</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">indict</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="n">indent</span><span class="p">)</span></div> + + +<div class="viewcode-block" id="tickmin"><a class="viewcode-back" href="../../ariaec.html#ariaec.base.tickmin">[docs]</a><span class="k">def</span> <span class="nf">tickmin</span><span class="p">(</span><span class="n">pandata</span><span class="p">,</span> <span class="n">ntick</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">shift</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">offset</span><span class="o">=</span><span class="mi">5</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Minimise number of ticks labels for matplotlib or seaborn plot</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> offset :</span> +<span class="sd"> param shift: (Default value = 5)</span> +<span class="sd"> pandata :</span> +<span class="sd"> pandas dataframe</span> +<span class="sd"> ntick :</span> +<span class="sd"> number of ticks wanted per axes (Default value = None)</span> +<span class="sd"> shift :</span> +<span class="sd"> (Default value = 0)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">yticks</span> <span class="o">=</span> <span class="p">[</span><span class="n">_</span> <span class="o">+</span> <span class="n">shift</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">pandata</span><span class="o">.</span><span class="n">index</span><span class="p">))]</span> + <span class="n">xticks</span> <span class="o">=</span> <span class="p">[</span><span class="n">_</span> <span class="o">+</span> <span class="n">shift</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">pandata</span><span class="o">.</span><span class="n">columns</span><span class="p">))]</span> + <span class="k">if</span> <span class="n">ntick</span><span class="p">:</span> + <span class="n">keptticks</span> <span class="o">=</span> <span class="n">yticks</span><span class="p">[::(</span><span class="nb">len</span><span class="p">(</span><span class="n">pandata</span><span class="o">.</span><span class="n">index</span><span class="p">)</span> <span class="o">//</span> <span class="nb">int</span><span class="p">(</span><span class="n">ntick</span><span class="p">))]</span> + <span class="n">yticks</span> <span class="o">=</span> <span class="p">[</span><span class="n">_</span> <span class="k">if</span> <span class="n">_</span> <span class="ow">in</span> <span class="n">keptticks</span> <span class="k">else</span> <span class="s1">''</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="n">yticks</span><span class="p">]</span> + <span class="c1"># If shift != 0, need to initialize first value of ticks</span> + + <span class="n">keptticks</span> <span class="o">=</span> <span class="n">xticks</span><span class="p">[::(</span><span class="nb">len</span><span class="p">(</span><span class="n">xticks</span><span class="p">)</span> <span class="o">//</span> <span class="nb">int</span><span class="p">(</span><span class="n">ntick</span><span class="p">))]</span> + <span class="n">xticks</span> <span class="o">=</span> <span class="p">[</span><span class="n">_</span> <span class="k">if</span> <span class="n">_</span> <span class="ow">in</span> <span class="n">keptticks</span> <span class="k">else</span> <span class="s1">''</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="n">xticks</span><span class="p">]</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">keptticks</span> <span class="o">=</span> <span class="p">[</span><span class="n">ytick</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">ytick</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">yticks</span><span class="p">)</span> + <span class="k">if</span> <span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="n">shift</span><span class="p">)</span> <span class="o">%</span> <span class="n">offset</span> <span class="o">==</span> <span class="mi">0</span><span class="p">]</span> + <span class="c1"># keptticks = yticks[::offset - shift]</span> + <span class="n">yticks</span> <span class="o">=</span> <span class="p">[</span><span class="n">_</span> <span class="k">if</span> <span class="n">_</span> <span class="ow">in</span> <span class="n">keptticks</span> <span class="k">else</span> <span class="s1">''</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="n">yticks</span><span class="p">]</span> + <span class="c1"># If shift != 0, need to initialize first value of ticks</span> + + <span class="n">keptticks</span> <span class="o">=</span> <span class="p">[</span><span class="n">xtick</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">xtick</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">xticks</span><span class="p">)</span> + <span class="k">if</span> <span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="n">shift</span><span class="p">)</span> <span class="o">%</span> <span class="n">offset</span> <span class="o">==</span> <span class="mi">0</span><span class="p">]</span> + <span class="c1"># keptticks = xticks[::offset - shift]</span> + <span class="n">xticks</span> <span class="o">=</span> <span class="p">[</span><span class="n">_</span> <span class="k">if</span> <span class="n">_</span> <span class="ow">in</span> <span class="n">keptticks</span> <span class="k">else</span> <span class="s1">''</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="n">xticks</span><span class="p">]</span> + <span class="k">return</span> <span class="n">xticks</span><span class="p">,</span> <span class="n">yticks</span></div> + + +<div class="viewcode-block" id="tickrot"><a class="viewcode-back" href="../../ariaec.html#ariaec.base.tickrot">[docs]</a><span class="k">def</span> <span class="nf">tickrot</span><span class="p">(</span><span class="n">axes</span><span class="p">,</span> <span class="n">figure</span><span class="p">,</span> <span class="n">rotype</span><span class="o">=</span><span class="s1">'horizontal'</span><span class="p">,</span> <span class="n">xaxis</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">yaxis</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Matplot rotation of ticks labels</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> axes :</span> +<span class="sd"> param figure:</span> +<span class="sd"> rotype :</span> +<span class="sd"> param xaxis: (Default value = 'horizontal')</span> +<span class="sd"> yaxis :</span> +<span class="sd"> return: (Default value = True)</span> +<span class="sd"> figure :</span> +<span class="sd"> </span> +<span class="sd"> xaxis :</span> +<span class="sd"> (Default value = True)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">if</span> <span class="n">yaxis</span><span class="p">:</span> + <span class="n">art</span><span class="o">.</span><span class="n">setp</span><span class="p">(</span><span class="n">axes</span><span class="o">.</span><span class="n">get_yticklabels</span><span class="p">(),</span> <span class="n">rotation</span><span class="o">=</span><span class="n">rotype</span><span class="p">)</span> + <span class="k">if</span> <span class="n">xaxis</span><span class="p">:</span> + <span class="n">art</span><span class="o">.</span><span class="n">setp</span><span class="p">(</span><span class="n">axes</span><span class="o">.</span><span class="n">get_xticklabels</span><span class="p">(),</span> <span class="n">rotation</span><span class="o">=</span><span class="n">rotype</span><span class="p">)</span> + <span class="n">figure</span><span class="o">.</span><span class="n">canvas</span><span class="o">.</span><span class="n">draw</span><span class="p">()</span></div> + + +<span class="c1"># TODO: Add another level when we use verbose options instead of displaying debug messages</span> +<div class="viewcode-block" id="CustomLogging"><a class="viewcode-back" href="../../ariaec.html#ariaec.base.CustomLogging">[docs]</a><span class="k">class</span> <span class="nc">CustomLogging</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Customized python logging config</span> +<span class="sd"> """</span> + <span class="c1"># default_file = os.path.join(os.path.abspath(os.path.dirname(__file__)),</span> + <span class="c1"># "conf/logging.json")</span> + <span class="n">default_file</span> <span class="o">=</span> <span class="s2">"conf/logging.json"</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="n">logging</span><span class="o">.</span><span class="n">INFO</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="vm">__doc__</span><span class="p">):</span> + <span class="sd">"""</span> + +<span class="sd"> :param level:</span> +<span class="sd"> :param desc:</span> +<span class="sd"> :return:</span> +<span class="sd"> """</span> + <span class="c1"># TODO: detect path log filenames and makedirs if not exists</span> + <span class="n">logging</span><span class="o">.</span><span class="n">basicConfig</span><span class="p">(</span><span class="n">level</span><span class="o">=</span><span class="n">level</span><span class="p">)</span> + <span class="k">if</span> <span class="n">desc</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">msg</span> <span class="o">=</span> <span class="n">desc</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> + <span class="k">else</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">msg</span> <span class="o">=</span> <span class="s2">""</span> + <span class="bp">self</span><span class="o">.</span><span class="n">config</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">default_config</span><span class="p">()</span> + +<div class="viewcode-block" id="CustomLogging.update_msg"><a class="viewcode-back" href="../../ariaec.html#ariaec.base.CustomLogging.update_msg">[docs]</a> <span class="k">def</span> <span class="nf">update_msg</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">desc</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> desc :</span> +<span class="sd"> return:</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">msg</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">msg</span> <span class="o">+=</span> <span class="n">desc</span> + <span class="bp">self</span><span class="o">.</span><span class="n">msg</span> <span class="o">=</span> <span class="s2">" - "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">msg</span><span class="p">)</span> + <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">msg</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">msg</span> <span class="o">=</span> <span class="s2">" - "</span><span class="o">.</span><span class="n">join</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">msg</span><span class="p">,</span> <span class="n">desc</span><span class="o">.</span><span class="n">capitalize</span><span class="p">()))</span></div> + +<div class="viewcode-block" id="CustomLogging.default_config"><a class="viewcode-back" href="../../ariaec.html#ariaec.base.CustomLogging.default_config">[docs]</a> <span class="k">def</span> <span class="nf">default_config</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">""":return:"""</span> + <span class="c1"># with open(self.default_file, 'rt') as f:</span> + <span class="n">conf</span> <span class="o">=</span> <span class="n">pkgr</span><span class="o">.</span><span class="n">resource_stream</span><span class="p">(</span><span class="vm">__name__</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">default_file</span><span class="p">)</span><span class="o">.</span><span class="n">read</span><span class="p">()</span><span class="o">.</span><span class="n">decode</span><span class="p">()</span> + <span class="n">config</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">conf</span><span class="p">)</span> + <span class="n">logging</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">dictConfig</span><span class="p">(</span><span class="n">config</span><span class="p">)</span> + <span class="k">return</span> <span class="n">config</span></div> + +<div class="viewcode-block" id="CustomLogging.set_outdir"><a class="viewcode-back" href="../../ariaec.html#ariaec.base.CustomLogging.set_outdir">[docs]</a> <span class="k">def</span> <span class="nf">set_outdir</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">outdir</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Create log directory and change log files location</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> outdir :</span> +<span class="sd"> path output directory</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">outdir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">outdir</span><span class="p">,</span> + <span class="s2">"log"</span><span class="p">)</span> <span class="k">if</span> <span class="s2">"log"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">outdir</span> <span class="k">else</span> <span class="n">outdir</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">outdir</span><span class="p">)):</span> + <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">outdir</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="c1"># Trick to avoid overwriting files with w mode after copy2 call</span> + <span class="n">shutil</span><span class="o">.</span><span class="n">rmtree</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">outdir</span><span class="p">))</span> + <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">outdir</span><span class="p">)</span> + <span class="k">if</span> <span class="n">outdir</span> <span class="ow">and</span> <span class="s2">"handlers"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">:</span> + <span class="k">for</span> <span class="n">hand</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s2">"handlers"</span><span class="p">]:</span> + <span class="k">if</span> <span class="s2">"filename"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s2">"handlers"</span><span class="p">][</span><span class="n">hand</span><span class="p">]:</span> + <span class="n">oldpath</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s2">"handlers"</span><span class="p">][</span><span class="n">hand</span><span class="p">][</span><span class="s2">"filename"</span><span class="p">]</span> + <span class="n">newpath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> + <span class="n">outdir</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s2">"handlers"</span><span class="p">][</span><span class="n">hand</span><span class="p">][</span><span class="s2">"filename"</span><span class="p">])))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s2">"handlers"</span><span class="p">][</span><span class="n">hand</span><span class="p">][</span><span class="s2">"filename"</span><span class="p">]</span> <span class="o">=</span> <span class="n">newpath</span> + <span class="n">shutil</span><span class="o">.</span><span class="n">copy2</span><span class="p">(</span><span class="n">oldpath</span><span class="p">,</span> <span class="n">newpath</span><span class="p">)</span> + <span class="n">logging</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">dictConfig</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">)</span></div> + +<div class="viewcode-block" id="CustomLogging.welcome"><a class="viewcode-back" href="../../ariaec.html#ariaec.base.CustomLogging.welcome">[docs]</a> <span class="k">def</span> <span class="nf">welcome</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">""":return:"""</span> + <span class="n">desc</span> <span class="o">=</span> <span class="s1">'''</span> +<span class="s1">================================================================================</span> + +<span class="si">{:^80}</span><span class="s1"></span> + +<span class="s1">================================================================================</span> +<span class="s1">'''</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">msg</span><span class="p">)</span> + <span class="nb">print</span><span class="p">(</span><span class="n">desc</span><span class="p">)</span> + <span class="k">for</span> <span class="n">hand</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"handlers"</span><span class="p">):</span> + <span class="k">if</span> <span class="s2">"filename"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s2">"handlers"</span><span class="p">][</span><span class="n">hand</span><span class="p">]:</span> + <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s2">"handlers"</span><span class="p">][</span><span class="n">hand</span><span class="p">][</span><span class="s2">"filename"</span><span class="p">],</span> + <span class="s1">'w'</span><span class="p">)</span> <span class="k">as</span> <span class="n">outfile</span><span class="p">:</span> + <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">desc</span><span class="p">)</span></div></div> + + +<div class="viewcode-block" id="Capturing"><a class="viewcode-back" href="../../ariaec.html#ariaec.base.Capturing">[docs]</a><span class="k">class</span> <span class="nc">Capturing</span><span class="p">(</span><span class="nb">list</span><span class="p">):</span> + <span class="sd">"""Capture output"""</span> + <span class="k">def</span> <span class="nf">__enter__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> + +<span class="sd"> :return:</span> +<span class="sd"> """</span> + <span class="c1"># Stock default stdout and redirect current stdout to this class</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_stdout</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_stderr</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">stderr</span> + <span class="c1"># All print calls are saved into self._stringio</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_stringio</span> <span class="o">=</span> <span class="n">six</span><span class="o">.</span><span class="n">moves</span><span class="o">.</span><span class="n">StringIO</span><span class="p">()</span> + <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_stringio</span> + <span class="n">sys</span><span class="o">.</span><span class="n">stderr</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_stringio</span> + <span class="k">return</span> <span class="bp">self</span> + + <span class="k">def</span> <span class="nf">__exit__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span> + <span class="sd">"""</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> args</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> """</span> + <span class="bp">self</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_stringio</span><span class="o">.</span><span class="n">getvalue</span><span class="p">()</span><span class="o">.</span><span class="n">splitlines</span><span class="p">()))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_stringio</span><span class="o">.</span><span class="n">truncate</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> + <span class="k">del</span> <span class="bp">self</span><span class="o">.</span><span class="n">_stringio</span> <span class="c1"># free up some memory</span> + <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_stdout</span> + <span class="n">sys</span><span class="o">.</span><span class="n">stderr</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_stderr</span></div> + + +<div class="viewcode-block" id="RedirectStdStreams"><a class="viewcode-back" href="../../ariaec.html#ariaec.base.RedirectStdStreams">[docs]</a><span class="k">class</span> <span class="nc">RedirectStdStreams</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> + <span class="sd">"""Redirect standard ouput and errors"""</span> + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">stdout</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">stderr</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_stdout</span> <span class="o">=</span> <span class="n">stdout</span> <span class="ow">or</span> <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_stderr</span> <span class="o">=</span> <span class="n">stderr</span> <span class="ow">or</span> <span class="n">sys</span><span class="o">.</span><span class="n">stderr</span> + + <span class="k">def</span> <span class="nf">__enter__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">old_stdout</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">old_stderr</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span> <span class="n">sys</span><span class="o">.</span><span class="n">stderr</span> + <span class="bp">self</span><span class="o">.</span><span class="n">old_stdout</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">old_stderr</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span> + <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span> <span class="n">sys</span><span class="o">.</span><span class="n">stderr</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_stdout</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_stderr</span> + <span class="k">return</span> <span class="bp">self</span> + + <span class="k">def</span> <span class="nf">__exit__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exc_type</span><span class="p">,</span> <span class="n">exc_value</span><span class="p">,</span> <span class="n">traceback</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_stdout</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_stderr</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span> + <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">old_stdout</span> + <span class="n">sys</span><span class="o">.</span><span class="n">stderr</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">old_stderr</span></div> + + +<div class="viewcode-block" id="CommandProtocol"><a class="viewcode-back" href="../../ariaec.html#ariaec.base.CommandProtocol">[docs]</a><span class="k">class</span> <span class="nc">CommandProtocol</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> + <span class="sd">"""Abstract class for subcommand protocol"""</span> + <span class="n">__metaclass__</span> <span class="o">=</span> <span class="n">ABCMeta</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">settings</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span> <span class="o">=</span> <span class="n">settings</span> + + <span class="nd">@abstractmethod</span> +<div class="viewcode-block" id="CommandProtocol.run"><a class="viewcode-back" href="../../ariaec.html#ariaec.base.CommandProtocol.run">[docs]</a> <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> main method to launch protocol</span> +<span class="sd"> :return:</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">raise</span> <span class="ne">NotImplementedError</span></div></div> + + +<div class="viewcode-block" id="NotDisordered"><a class="viewcode-back" href="../../ariaec.html#ariaec.base.NotDisordered">[docs]</a><span class="k">class</span> <span class="nc">NotDisordered</span><span class="p">(</span><span class="n">Select</span><span class="p">):</span> + <span class="sd">"""Define an atom as disordered or not in pdb selection"""</span> +<div class="viewcode-block" id="NotDisordered.accept_atom"><a class="viewcode-back" href="../../ariaec.html#ariaec.base.NotDisordered.accept_atom">[docs]</a> <span class="k">def</span> <span class="nf">accept_atom</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">atom</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Accept or not the atom if it does not correspond to an alternative</span> +<span class="sd"> location</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> atom :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">return</span> <span class="ow">not</span> <span class="n">atom</span><span class="o">.</span><span class="n">is_disordered</span><span class="p">()</span> <span class="ow">or</span> <span class="n">atom</span><span class="o">.</span><span class="n">get_altloc</span><span class="p">()</span> <span class="o">==</span> <span class="s1">'A'</span></div></div> + + +<span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s2">"__main__"</span><span class="p">:</span> + <span class="c1"># Test Logger</span> + <span class="n">CustomLogging</span><span class="p">()</span><span class="o">.</span><span class="n">set_outdir</span><span class="p">(</span><span class="s2">"../examples/out"</span><span class="p">)</span> + <span class="n">LOG</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s2">"TEST"</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="nb">dir</span><span class="p">(</span><span class="n">LOG</span><span class="p">))</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Log test"</span><span class="p">)</span> +</pre></div> + + </div> + <div class="articleComments"> + + </div> + </div> + <footer> + + + <hr/> + + <div role="contentinfo"> + <p> + © Copyright 2017, Fabrice Allain. + + </p> + </div> + Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. + +</footer> + + </div> + </div> + + </section> + + </div> + + + + + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT:'../../', + VERSION:'0.2', + COLLAPSE_INDEX:false, + FILE_SUFFIX:'.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt' + }; + </script> + <script type="text/javascript" src="../../_static/jquery.js"></script> + <script type="text/javascript" src="../../_static/underscore.js"></script> + <script type="text/javascript" src="../../_static/doctools.js"></script> + <script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + + + + <script type="text/javascript" src="../../_static/js/theme.js"></script> + + + + + <script type="text/javascript"> + jQuery(function () { + SphinxRtdTheme.StickyNav.enable(); + }); + </script> + + +</body> +</html> \ No newline at end of file diff --git a/examples-dev/olds/_build/html/_modules/ariaec/commands.html b/examples-dev/olds/_build/html/_modules/ariaec/commands.html new file mode 100644 index 0000000000000000000000000000000000000000..85ed35df06cd48b14372aa054984b7dd3cf97c6b --- /dev/null +++ b/examples-dev/olds/_build/html/_modules/ariaec/commands.html @@ -0,0 +1,752 @@ + + +<!DOCTYPE html> +<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> +<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> +<head> + <meta charset="utf-8"> + + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <title>ariaec.commands — AriaEc 0.2 documentation</title> + + + + + + + + + + + + + + + + + + <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> + + + + + + <link rel="index" title="Index" + href="../../genindex.html"/> + <link rel="search" title="Search" href="../../search.html"/> + <link rel="top" title="AriaEc 0.2 documentation" href="../../index.html"/> + <link rel="up" title="Module code" href="../index.html"/> + + + <script src="../../_static/js/modernizr.min.js"></script> + +</head> + +<body class="wy-body-for-nav" role="document"> + + + <div class="wy-grid-for-nav"> + + + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search"> + + + + <a href="../../index.html" class="icon icon-home"> AriaEc + + + + </a> + + + + + <div class="version"> + 0.2 + </div> + + + + +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + + + </div> + + <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> + + + + + + + <!-- Local TOC --> + <div class="local-toc"></div> + + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> + + + <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> + + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">AriaEc</a> + + </nav> + + + + <div class="wy-nav-content"> + <div class="rst-content"> + + + + + + + + + + + + + + + + +<div role="navigation" aria-label="breadcrumbs navigation"> + + <ul class="wy-breadcrumbs"> + + <li><a href="../../index.html">Docs</a> »</li> + + <li><a href="../index.html">Module code</a> »</li> + + <li>ariaec.commands</li> + + + <li class="wy-breadcrumbs-aside"> + + + + </li> + + </ul> + + + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <h1>Source code for ariaec.commands</h1><div class="highlight"><pre> +<span></span><span class="c1"># coding=utf-8</span> +<span class="sd">"""</span> +<span class="sd"> Input/Output aria_ec</span> +<span class="sd">"""</span> +<span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span><span class="p">,</span> <span class="n">division</span><span class="p">,</span> <span class="n">print_function</span> + +<span class="kn">import</span> <span class="nn">os</span> +<span class="kn">import</span> <span class="nn">logging</span> +<span class="kn">import</span> <span class="nn">argparse</span> <span class="k">as</span> <span class="nn">argp</span> + +<span class="kn">from</span> <span class="nn">.</span> <span class="k">import</span> <span class="vm">__doc__</span> +<span class="kn">from</span> <span class="nn">.common</span> <span class="k">import</span> <span class="n">format_dict</span><span class="p">,</span> <span class="n">CustomLogging</span> +<span class="kn">from</span> <span class="nn">.settings</span> <span class="k">import</span> <span class="n">AriaEcSettings</span> +<span class="kn">from</span> <span class="nn">.maplot</span> <span class="k">import</span> <span class="n">AriaEcContactMap</span> +<span class="kn">from</span> <span class="nn">.converter</span> <span class="k">import</span> <span class="n">AriaEcBbConverter</span><span class="p">,</span> <span class="n">AriaEcXMLConverter</span> +<span class="kn">from</span> <span class="nn">.setup</span> <span class="k">import</span> <span class="n">AriaEcSetup</span> +<span class="kn">from</span> <span class="nn">.pdbqual</span> <span class="k">import</span> <span class="n">AriaEcPdbqual</span> +<span class="kn">from</span> <span class="nn">.pdbdist</span> <span class="k">import</span> <span class="n">PDBDist</span> +<span class="kn">from</span> <span class="nn">.pdbstat</span> <span class="k">import</span> <span class="n">PDBStat</span> +<span class="kn">from</span> <span class="nn">.analysis</span> <span class="k">import</span> <span class="n">EnsembleAnalysis</span> + + +<span class="n">LOG</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span> + + +<div class="viewcode-block" id="check_file"><a class="viewcode-back" href="../../ariaec.html#ariaec.commands.check_file">[docs]</a><span class="k">def</span> <span class="nf">check_file</span><span class="p">(</span><span class="n">prospective_file</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> prospective_file :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Checking if </span><span class="si">%s</span><span class="s2"> is a readable file"</span><span class="p">,</span> <span class="n">prospective_file</span><span class="p">)</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">prospective_file</span><span class="p">):</span> + <span class="k">raise</span> <span class="n">argp</span><span class="o">.</span><span class="n">ArgumentTypeError</span><span class="p">(</span><span class="s2">"readable_file:'</span><span class="si">{0}</span><span class="s2">' is not a valid "</span> + <span class="s2">"path"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">prospective_file</span><span class="p">))</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">access</span><span class="p">(</span><span class="n">prospective_file</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">R_OK</span><span class="p">):</span> + <span class="k">raise</span> <span class="n">argp</span><span class="o">.</span><span class="n">ArgumentTypeError</span><span class="p">(</span><span class="s2">"readable_file:'</span><span class="si">{0}</span><span class="s2">' is not a readable "</span> + <span class="s2">"file"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">prospective_file</span><span class="p">))</span></div> + + +<div class="viewcode-block" id="ReadableFile"><a class="viewcode-back" href="../../ariaec.html#ariaec.commands.ReadableFile">[docs]</a><span class="k">class</span> <span class="nc">ReadableFile</span><span class="p">(</span><span class="n">argp</span><span class="o">.</span><span class="n">Action</span><span class="p">):</span> + <span class="sd">"""Class used with argparse action to check if a file is readable"""</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="nb">super</span><span class="p">(</span><span class="n">ReadableFile</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> + + <span class="k">def</span> <span class="nf">__call__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parser</span><span class="p">,</span> <span class="n">namespace</span><span class="p">,</span> <span class="n">values</span><span class="p">,</span> <span class="n">option_string</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">values</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span> + <span class="k">for</span> <span class="n">prospective_file</span> <span class="ow">in</span> <span class="n">values</span><span class="p">:</span> + <span class="n">check_file</span><span class="p">(</span><span class="n">prospective_file</span><span class="p">)</span> + <span class="nb">setattr</span><span class="p">(</span><span class="n">namespace</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dest</span><span class="p">,</span> + <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expanduser</span><span class="p">(</span><span class="n">val</span><span class="p">))</span> <span class="k">for</span> <span class="n">val</span> <span class="ow">in</span> <span class="n">values</span><span class="p">])</span> + <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">values</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> + <span class="n">check_file</span><span class="p">(</span><span class="n">values</span><span class="p">)</span> + <span class="nb">setattr</span><span class="p">(</span><span class="n">namespace</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">dest</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expanduser</span><span class="p">(</span><span class="n">values</span><span class="p">)))</span></div> + + +<span class="c1"># TODO: Make parent Command class with _create_argparser, self.args,</span> +<span class="c1"># update_logger and run</span> +<div class="viewcode-block" id="AriaEcCommands"><a class="viewcode-back" href="../../ariaec.html#ariaec.commands.AriaEcCommands">[docs]</a><span class="k">class</span> <span class="nc">AriaEcCommands</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> + <span class="sd">"""Argparse interface for aria_ec"""</span> + + <span class="n">command_list</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"setup"</span><span class="p">,</span> <span class="s2">"bbconv"</span><span class="p">,</span> <span class="s2">"maplot"</span><span class="p">,</span> <span class="s2">"pdbqual"</span><span class="p">,</span> <span class="s2">"analysis"</span><span class="p">,</span> + <span class="s2">"tbl2xml"</span><span class="p">,</span> <span class="s2">"pdbdist"</span><span class="p">,</span> <span class="s2">"pdbstat"</span><span class="p">)</span> + <span class="n">desc_list</span> <span class="o">=</span> <span class="p">(</span><span class="sa">u</span><span class="s2">"Setup ARIA infrastructure with contact maps translated "</span> + <span class="sa">u</span><span class="s2">"into ARIA restraints"</span><span class="p">,</span> + <span class="sa">u</span><span class="s2">"Convert a contact map in bbcontact format"</span><span class="p">,</span> + <span class="sa">u</span><span class="s2">"Contactmap visualization tool"</span><span class="p">,</span> + <span class="sa">u</span><span class="s2">"Quality tool for pdb file(s)"</span><span class="p">,</span> + <span class="sa">u</span><span class="s2">"Extended ARIA ensemble analysis on a specific iteration "</span><span class="p">,</span> + <span class="sa">u</span><span class="s2">"XML converter for tbl distance restraint"</span><span class="p">,</span> + <span class="sa">u</span><span class="s2">"Extract distance distribution from culled list of pdb files"</span><span class="p">,</span> + <span class="sa">u</span><span class="s2">"Analyze distance distribution with GMM, ..."</span><span class="p">)</span> + <span class="n">contact_types</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"evfold"</span><span class="p">,</span> <span class="s2">"plmev"</span><span class="p">,</span> <span class="s2">"plm"</span><span class="p">,</span> <span class="s2">"plmdca"</span><span class="p">,</span> <span class="s2">"plmc"</span><span class="p">,</span> <span class="s2">"bbcontacts"</span><span class="p">,</span> + <span class="s2">"pconsc"</span><span class="p">,</span> <span class="s2">"pconsc1"</span><span class="p">,</span> <span class="s2">"pconsc2"</span><span class="p">,</span> <span class="s2">"psicov"</span><span class="p">,</span> <span class="s2">"metapsicovhb"</span><span class="p">,</span> + <span class="s2">"metapsicov_stg1"</span><span class="p">,</span> <span class="s2">"metapsicov_stg2"</span><span class="p">,</span> <span class="s2">"gremlin"</span><span class="p">,</span> <span class="s2">"pdb"</span><span class="p">,</span> + <span class="s2">"native"</span><span class="p">,</span> <span class="s2">"native_full"</span><span class="p">,</span> <span class="s2">"contactlist"</span><span class="p">)</span> + <span class="n">default_confile</span> <span class="o">=</span> <span class="s2">"conf/config.ini"</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">custom_logging</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="c1"># Def Argument pdbparser</span> + <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_create_argparser</span><span class="p">()</span> + <span class="c1"># parse args</span> + <span class="bp">self</span><span class="o">.</span><span class="n">args</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">parse_args</span><span class="p">()</span> + <span class="c1"># Update LOG with outdir</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_update_logger</span><span class="p">(</span><span class="n">custom_logging</span><span class="p">)</span> + + <span class="k">def</span> <span class="nf">_update_logger</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">log</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> log :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">if</span> <span class="n">log</span> <span class="ow">and</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="s2">"output_directory"</span><span class="p">):</span> + <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">nolog</span><span class="p">:</span> + <span class="c1"># Don't generate log files</span> + <span class="c1"># TODO: get handler list from json file or customlogging object</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">removeHandler</span><span class="p">(</span><span class="s2">"info_file_handler"</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">removeHandler</span><span class="p">(</span><span class="s2">"error_file_handler"</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">removeHandler</span><span class="p">(</span><span class="s2">"debug_file_handler"</span><span class="p">)</span> + <span class="n">log</span><span class="o">.</span><span class="n">set_outdir</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">output_directory</span><span class="p">)</span> + <span class="n">log</span><span class="o">.</span><span class="n">update_msg</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">command</span><span class="p">)</span> + <span class="n">log</span><span class="o">.</span><span class="n">welcome</span><span class="p">()</span> + + <span class="k">def</span> <span class="nf">_create_argparser</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">""" """</span> + <span class="n">parser</span> <span class="o">=</span> <span class="n">argp</span><span class="o">.</span><span class="n">ArgumentParser</span><span class="p">(</span><span class="n">description</span><span class="o">=</span><span class="vm">__doc__</span><span class="p">,</span> + <span class="n">formatter_class</span><span class="o">=</span><span class="n">argp</span><span class="o">.</span><span class="n">ArgumentDefaultsHelpFormatter</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"-o"</span><span class="p">,</span> <span class="s2">"--output"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"output_directory"</span><span class="p">,</span> + <span class="nb">type</span><span class="o">=</span><span class="nb">str</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s2">"Output directory"</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"-c"</span><span class="p">,</span> <span class="s2">"--conf"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="n">ReadableFile</span><span class="p">,</span> + <span class="n">dest</span><span class="o">=</span><span class="s2">"conf_file"</span><span class="p">,</span> + <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s2">"configuration file"</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"--nolog"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s2">"store_true"</span><span class="p">,</span> + <span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s2">"Don't generate log files"</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"-d"</span><span class="p">,</span> <span class="s2">"--debug"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"verbose"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> + <span class="n">action</span><span class="o">=</span><span class="s1">'store_true'</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"Increase output verbosity"</span><span class="p">)</span> + <span class="c1"># Create subcommands</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_create_subparsers</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">add_subparsers</span><span class="p">(</span><span class="n">dest</span><span class="o">=</span><span class="s2">"command"</span><span class="p">))</span> + <span class="k">return</span> <span class="n">parser</span> + + <span class="k">def</span> <span class="nf">_create_subparsers</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parser</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Generate subcommands</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> parser :</span> +<span class="sd"> argparser object</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">for</span> <span class="n">index</span><span class="p">,</span> <span class="n">command</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">command_list</span><span class="p">):</span> + <span class="c1"># Create subparser defined in command list</span> + <span class="n">subcommand</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s2">"_"</span> <span class="o">+</span> <span class="n">command</span> <span class="o">+</span> <span class="s2">"_argparser"</span><span class="p">)(</span> + <span class="n">desc</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">desc_list</span><span class="p">[</span><span class="n">index</span><span class="p">])</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_parser</span><span class="p">(</span><span class="n">command</span><span class="p">,</span> <span class="n">parents</span><span class="o">=</span><span class="p">[</span><span class="n">subcommand</span><span class="p">])</span> + + <span class="k">def</span> <span class="nf">_setup_argparser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> setup opt & args</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> desc :</span> +<span class="sd"> command descriptor (Default value = None)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">parser</span> <span class="o">=</span> <span class="n">argp</span><span class="o">.</span><span class="n">ArgumentParser</span><span class="p">(</span><span class="n">description</span><span class="o">=</span><span class="n">desc</span><span class="p">,</span> + <span class="n">add_help</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="c1"># Options</span> + <span class="c1"># Args</span> + <span class="n">group</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">add_argument_group</span><span class="p">(</span><span class="s1">'required arguments'</span><span class="p">)</span> + <span class="n">group</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"seq"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="n">ReadableFile</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"sequence file [FASTA]"</span><span class="p">)</span> + <span class="c1"># group.add_argument("sspred", action=ReadableFile,</span> + <span class="c1"># help="secondary structure prediction file")</span> + <span class="n">group</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"infiles"</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s2">"+"</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s2">"infile"</span><span class="p">,</span> + <span class="n">action</span><span class="o">=</span><span class="n">ReadableFile</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"contact or pdb file(s) used to build aria "</span> + <span class="s2">"distance restraints"</span><span class="p">)</span> + <span class="n">group</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"-d"</span><span class="p">,</span> <span class="s2">"--distfile"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"distfile"</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"Pdb or distance matrix iif distance_type "</span> + <span class="s2">"set to distfile in conf file, "</span> + <span class="s2">"use distances in the given file as "</span> + <span class="s2">"target distance to build distance "</span> + <span class="s2">"restraints"</span><span class="p">)</span> + <span class="n">group</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"-s"</span><span class="p">,</span> <span class="s2">"--ssfile"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"sspred"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="n">ReadableFile</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"secondary structure prediction file"</span><span class="p">)</span> + <span class="n">group</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"-p"</span><span class="p">,</span> <span class="s2">"--ariaproject"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"ariaproject"</span><span class="p">,</span> + <span class="n">action</span><span class="o">=</span><span class="n">ReadableFile</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"ARIA project file. This file will be used as"</span> + <span class="s2">"an initialization file if"</span><span class="p">)</span> + <span class="n">group</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"-t"</span><span class="p">,</span> <span class="s2">"--type"</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> + <span class="n">nargs</span><span class="o">=</span><span class="s2">"+"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"contact_types"</span><span class="p">,</span> + <span class="n">choices</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">contact_types</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s2">"Infile(s) contact "</span> + <span class="s2">"type(s)"</span><span class="p">)</span> + <span class="n">group</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"-r"</span><span class="p">,</span> <span class="s2">"--ref"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"ref"</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"Native pdb. Allow TP/FP detection."</span><span class="p">)</span> + <span class="n">group</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"--hb"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"hb"</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"H-bonds contact file (eg: metapsicov.hb)"</span><span class="p">)</span> + <span class="n">group</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"--ssidx"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"ssidx"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s2">"store_true"</span><span class="p">,</span> + <span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s2">"Use secondary structure index"</span><span class="p">)</span> + <span class="n">group</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"--no-filter"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"no_filter"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s2">"store_true"</span><span class="p">,</span> + <span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s2">"Do not filter contact map."</span><span class="p">)</span> + <span class="n">group</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"--extract-all"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"extractall"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s2">"store_true"</span><span class="p">,</span> + <span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s2">"Extract data or all data and"</span> + <span class="s2">"parameters if an ARIA project"</span> + <span class="s2">"is defined with -p option"</span><span class="p">)</span> + <span class="k">return</span> <span class="n">parser</span> + + <span class="k">def</span> <span class="nf">_bbconv_argparser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> bbconv opt & args</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> desc :</span> +<span class="sd"> command descriptor (Default value = None)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">parser</span> <span class="o">=</span> <span class="n">argp</span><span class="o">.</span><span class="n">ArgumentParser</span><span class="p">(</span><span class="n">description</span><span class="o">=</span><span class="n">desc</span><span class="p">,</span> + <span class="n">add_help</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="c1"># args</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"contactfile"</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s2">"contacts file (pconsc, plm)"</span><span class="p">,</span> + <span class="n">action</span><span class="o">=</span><span class="n">ReadableFile</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"sspred"</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s2">"psipred file"</span><span class="p">,</span> + <span class="n">action</span><span class="o">=</span><span class="n">ReadableFile</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"seq"</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s2">"sequence file [FASTA]"</span><span class="p">,</span> + <span class="n">action</span><span class="o">=</span><span class="n">ReadableFile</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"msa"</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s1">'?'</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"MSA [FASTA] for diversityvalue"</span> + <span class="s2">"used with bbcontacts"</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"-t"</span><span class="p">,</span> <span class="s2">"--type"</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"contact_type"</span><span class="p">,</span> + <span class="n">choices</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">contact_types</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s2">"Infile contact "</span> + <span class="s2">"type"</span><span class="p">)</span> + <span class="k">return</span> <span class="n">parser</span> + + <span class="k">def</span> <span class="nf">_maplot_argparser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> maplot opt & args</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> desc :</span> +<span class="sd"> command descriptor (Default value = None)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">parser</span> <span class="o">=</span> <span class="n">argp</span><span class="o">.</span><span class="n">ArgumentParser</span><span class="p">(</span><span class="n">description</span><span class="o">=</span><span class="n">desc</span><span class="p">,</span> + <span class="n">add_help</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"seq"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="n">ReadableFile</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"sequence file [FASTA]"</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"sspred"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="n">ReadableFile</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"secondary structure prediction file"</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"infiles"</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s2">"+"</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s2">"infile"</span><span class="p">,</span> + <span class="n">action</span><span class="o">=</span><span class="n">ReadableFile</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"contact or pdb file(s) used to build aria "</span> + <span class="s2">"distance restraints"</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"-t"</span><span class="p">,</span> <span class="s2">"--type"</span><span class="p">,</span> <span class="n">required</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> + <span class="n">nargs</span><span class="o">=</span><span class="s2">"+"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"contact_types"</span><span class="p">,</span> + <span class="n">choices</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">contact_types</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s2">"Infile(s) "</span> + <span class="s2">"contact "</span> + <span class="s2">"type(s)"</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"--merge"</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s2">"+"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"merge"</span><span class="p">,</span> + <span class="n">choices</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">contact_types</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"Merge given contact types with other maps"</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"--filter"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"filter"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s2">"store_true"</span><span class="p">,</span> + <span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s2">"Use contact list filter "</span> + <span class="s2">"and top n contacts selection"</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"--onlyreport"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"onlyreport"</span><span class="p">,</span> + <span class="n">action</span><span class="o">=</span><span class="s2">"store_true"</span><span class="p">,</span> + <span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s2">"Generate only report file"</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"--no-filter"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"no_filter"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s2">"store_true"</span><span class="p">,</span> + <span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s2">"Do not filter contact map."</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"--ssidx"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"ssidx"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s2">"store_true"</span><span class="p">,</span> + <span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"Use secondary structure index"</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"--prefix"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"prefix"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s2">"store_true"</span><span class="p">,</span> + <span class="n">default</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"Generate prefix for file names"</span><span class="p">)</span> + <span class="k">return</span> <span class="n">parser</span> + + <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">_pdbqual_argparser</span><span class="p">(</span><span class="n">desc</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> desc :</span> +<span class="sd"> (Default value = None)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">parser</span> <span class="o">=</span> <span class="n">argp</span><span class="o">.</span><span class="n">ArgumentParser</span><span class="p">(</span><span class="n">description</span><span class="o">=</span><span class="n">desc</span><span class="p">,</span> + <span class="n">add_help</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"infiles"</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s2">"+"</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s2">"infile"</span><span class="p">,</span> + <span class="n">action</span><span class="o">=</span><span class="n">ReadableFile</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"PDB file(s) used to run quality tools with "</span> + <span class="s2">"aria API"</span><span class="p">)</span> + <span class="k">return</span> <span class="n">parser</span> + + <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">_analysis_argparser</span><span class="p">(</span><span class="n">desc</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> desc :</span> +<span class="sd"> (Default value = None)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">parser</span> <span class="o">=</span> <span class="n">argp</span><span class="o">.</span><span class="n">ArgumentParser</span><span class="p">(</span><span class="n">description</span><span class="o">=</span><span class="n">desc</span><span class="p">,</span> + <span class="n">add_help</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"project"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="n">ReadableFile</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"ARIA project file [XML]"</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"iteration"</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s2">"iteration_path"</span><span class="p">,</span> + <span class="n">action</span><span class="o">=</span><span class="n">ReadableFile</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"Iteration path used to run violation analysis"</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span> + <span class="s2">"listname"</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s2">"list_name"</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"Name of restraint list analyzed in the tbl file"</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"-r"</span><span class="p">,</span> <span class="s2">"--ref"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"ref"</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"Native pdb. Allow TP/FP detection."</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"-d"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"restraint"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"Distance restraint file (XML) used for "</span> + <span class="s2">"violation analysis. Otherwise, use restraints"</span> + <span class="s2">" of the current iteration"</span><span class="p">)</span> + <span class="k">return</span> <span class="n">parser</span> + + <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">_tbl2xml_argparser</span><span class="p">(</span><span class="n">desc</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> desc :</span> +<span class="sd"> (Default value = None)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">parser</span> <span class="o">=</span> <span class="n">argp</span><span class="o">.</span><span class="n">ArgumentParser</span><span class="p">(</span><span class="n">description</span><span class="o">=</span><span class="n">desc</span><span class="p">,</span> + <span class="n">add_help</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span> + <span class="s2">"molecule"</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s2">"molecule.xml"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="n">ReadableFile</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"ARIA XML molecule file"</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"listname"</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s2">"list_name"</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"Restraint list name in the tbl file"</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">"infiles"</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s2">"+"</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s2">"infile.tbl"</span><span class="p">,</span> + <span class="n">action</span><span class="o">=</span><span class="n">ReadableFile</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"TBL distance restraint file(s)"</span><span class="p">)</span> + <span class="k">return</span> <span class="n">parser</span> + + <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">_pdbdist_argparser</span><span class="p">(</span><span class="n">desc</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> desc :</span> +<span class="sd"> (Default value = None)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">parser</span> <span class="o">=</span> <span class="n">argp</span><span class="o">.</span><span class="n">ArgumentParser</span><span class="p">(</span><span class="n">description</span><span class="o">=</span><span class="n">desc</span><span class="p">,</span> + <span class="n">add_help</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="c1"># TODO: find a way to list all cullpdb file in package ressources</span> + <span class="c1"># Maybe move this args to the config file</span> + + <span class="c1"># Culled pdb list are actually saved in data/cullpdb folder with yymmdd</span> + <span class="c1"># pattern as naming convention</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span> + <span class="s2">"--cullist"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"cullpdbs"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s1">''</span><span class="p">,</span> + <span class="n">metavar</span><span class="o">=</span><span class="s2">"CULLED_PDB_LIST"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="n">ReadableFile</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"Culled list of pdb files from PISCES server ["</span> + <span class="s2">"G. Wang and R. L. Dunbrack, Jr. PISCES: a protein sequence "</span> + <span class="s2">"culling server. Bioinformatics, 19:1589-1591, 2003.]"</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span> + <span class="s2">"--pdbdir"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"pdbdir"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s1">''</span><span class="p">,</span> + <span class="n">metavar</span><span class="o">=</span><span class="s2">"PDB_FOLDER"</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"Folder containing pdb file entries"</span><span class="p">)</span> + <span class="k">return</span> <span class="n">parser</span> + + <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">_pdbstat_argparser</span><span class="p">(</span><span class="n">desc</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> + + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> desc :</span> +<span class="sd"> (Default value = None)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + + +<span class="sd"> """</span> + <span class="n">parser</span> <span class="o">=</span> <span class="n">argp</span><span class="o">.</span><span class="n">ArgumentParser</span><span class="p">(</span><span class="n">description</span><span class="o">=</span><span class="n">desc</span><span class="p">,</span> + <span class="n">add_help</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="c1"># TODO: find a way to list all cullpdb file in package ressources</span> + <span class="c1"># Maybe move this args to the config file</span> + + <span class="c1"># Culled pdb list are actually saved in data/cullpdb folder with yymmdd</span> + <span class="c1"># pattern as naming convention</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span> + <span class="s2">"pdbdists"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="n">ReadableFile</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"PDB distance file in csv format"</span><span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span> + <span class="s2">"-j"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"njobs"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s2">"N_JOBS"</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"Number of cpus used to run mixture in parallel. By default,"</span> + <span class="s2">" use max of available cpus."</span> + <span class="p">)</span> + <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span> + <span class="s2">"--min"</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">"minflag"</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s2">"store_true"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> + <span class="n">help</span><span class="o">=</span><span class="s2">"Compute stats only on a minimized list of atom (CA, CB and 1 "</span> + <span class="s2">"SC)"</span><span class="p">)</span> + <span class="k">return</span> <span class="n">parser</span> + +<div class="viewcode-block" id="AriaEcCommands.create_settings"><a class="viewcode-back" href="../../ariaec.html#ariaec.commands.AriaEcCommands.create_settings">[docs]</a> <span class="k">def</span> <span class="nf">create_settings</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""Create settings relative to args.command"""</span> + + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">verbose</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Toggle on debug mode"</span><span class="p">)</span> + <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">()</span><span class="o">.</span><span class="n">setLevel</span><span class="p">(</span><span class="n">logging</span><span class="o">.</span><span class="n">DEBUG</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Create AriaEcSettings"</span><span class="p">)</span> + <span class="n">settings</span> <span class="o">=</span> <span class="n">AriaEcSettings</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">command</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Loading default config file"</span><span class="p">)</span> + <span class="n">settings</span><span class="o">.</span><span class="n">load_config</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">default_confile</span><span class="p">,</span> <span class="n">pkg</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">conf_file</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Updating settings with conf file"</span><span class="p">)</span> + <span class="n">settings</span><span class="o">.</span><span class="n">load_config</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">conf_file</span><span class="p">)</span> + <span class="c1"># Update settings associated to command section</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Updating </span><span class="si">%s</span><span class="s2"> args settings"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">command</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">)</span> + <span class="nb">getattr</span><span class="p">(</span><span class="n">settings</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">command</span><span class="p">)</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">format_dict</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">))</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="nb">getattr</span><span class="p">(</span><span class="n">settings</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">command</span><span class="p">)</span><span class="o">.</span><span class="n">args</span><span class="p">)</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">output_directory</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Updating output directory </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">output_directory</span><span class="p">)</span> + <span class="n">settings</span><span class="o">.</span><span class="n">infra</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">output_directory</span> + <span class="k">return</span> <span class="n">settings</span></div> + +<div class="viewcode-block" id="AriaEcCommands.run"><a class="viewcode-back" href="../../ariaec.html#ariaec.commands.AriaEcCommands.run">[docs]</a> <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""call method relative to args.command"""</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Run </span><span class="si">%s</span><span class="s2"> command"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">command</span><span class="p">)</span> + <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">command</span><span class="p">)()</span></div> + +<div class="viewcode-block" id="AriaEcCommands.setup"><a class="viewcode-back" href="../../ariaec.html#ariaec.commands.AriaEcCommands.setup">[docs]</a> <span class="k">def</span> <span class="nf">setup</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""Setup call"""</span> + <span class="n">setup_inst</span> <span class="o">=</span> <span class="n">AriaEcSetup</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">create_settings</span><span class="p">())</span> + <span class="n">setup_inst</span><span class="o">.</span><span class="n">run</span><span class="p">()</span></div> + +<div class="viewcode-block" id="AriaEcCommands.bbconv"><a class="viewcode-back" href="../../ariaec.html#ariaec.commands.AriaEcCommands.bbconv">[docs]</a> <span class="k">def</span> <span class="nf">bbconv</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""bbcontacts converter call"""</span> + <span class="n">bbconverter</span> <span class="o">=</span> <span class="n">AriaEcBbConverter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">create_settings</span><span class="p">())</span> + <span class="n">bbconverter</span><span class="o">.</span><span class="n">run</span><span class="p">()</span></div> + +<div class="viewcode-block" id="AriaEcCommands.maplot"><a class="viewcode-back" href="../../ariaec.html#ariaec.commands.AriaEcCommands.maplot">[docs]</a> <span class="k">def</span> <span class="nf">maplot</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""instantiate AriaEcContactmap with AriaSettings"""</span> + <span class="n">econtactmap</span> <span class="o">=</span> <span class="n">AriaEcContactMap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">create_settings</span><span class="p">())</span> + <span class="n">econtactmap</span><span class="o">.</span><span class="n">run</span><span class="p">()</span></div> + +<div class="viewcode-block" id="AriaEcCommands.pdbqual"><a class="viewcode-back" href="../../ariaec.html#ariaec.commands.AriaEcCommands.pdbqual">[docs]</a> <span class="k">def</span> <span class="nf">pdbqual</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""Quality run subcommand"""</span> + <span class="n">qualprot</span> <span class="o">=</span> <span class="n">AriaEcPdbqual</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">create_settings</span><span class="p">())</span> + <span class="n">qualprot</span><span class="o">.</span><span class="n">run</span><span class="p">()</span></div> + +<div class="viewcode-block" id="AriaEcCommands.tbl2xml"><a class="viewcode-back" href="../../ariaec.html#ariaec.commands.AriaEcCommands.tbl2xml">[docs]</a> <span class="k">def</span> <span class="nf">tbl2xml</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""tbl2xml command"""</span> + <span class="n">tblconverter</span> <span class="o">=</span> <span class="n">AriaEcXMLConverter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">create_settings</span><span class="p">())</span> + <span class="n">tblconverter</span><span class="o">.</span><span class="n">run_tbl2xml</span><span class="p">()</span></div> + +<div class="viewcode-block" id="AriaEcCommands.pdbdist"><a class="viewcode-back" href="../../ariaec.html#ariaec.commands.AriaEcCommands.pdbdist">[docs]</a> <span class="k">def</span> <span class="nf">pdbdist</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""Extract pdb distance distributions"""</span> + <span class="n">inst</span> <span class="o">=</span> <span class="n">PDBDist</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">create_settings</span><span class="p">())</span> + <span class="n">inst</span><span class="o">.</span><span class="n">run</span><span class="p">()</span></div> + +<div class="viewcode-block" id="AriaEcCommands.pdbstat"><a class="viewcode-back" href="../../ariaec.html#ariaec.commands.AriaEcCommands.pdbstat">[docs]</a> <span class="k">def</span> <span class="nf">pdbstat</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""Analyse pdb distance distribution"""</span> + <span class="n">inst</span> <span class="o">=</span> <span class="n">PDBStat</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">create_settings</span><span class="p">())</span> + <span class="n">inst</span><span class="o">.</span><span class="n">run</span><span class="p">()</span></div> + +<div class="viewcode-block" id="AriaEcCommands.analysis"><a class="viewcode-back" href="../../ariaec.html#ariaec.commands.AriaEcCommands.analysis">[docs]</a> <span class="k">def</span> <span class="nf">analysis</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""Extended ensemble analysis of distance restraints"""</span> + <span class="n">inst</span> <span class="o">=</span> <span class="n">EnsembleAnalysis</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">create_settings</span><span class="p">())</span> + <span class="n">inst</span><span class="o">.</span><span class="n">run</span><span class="p">()</span></div></div> + + +<div class="viewcode-block" id="main"><a class="viewcode-back" href="../../ariaec.html#ariaec.commands.main">[docs]</a><span class="k">def</span> <span class="nf">main</span><span class="p">():</span> + <span class="sd">"""Launch ariaec command interface"""</span> + + <span class="n">mylog</span> <span class="o">=</span> <span class="n">CustomLogging</span><span class="p">(</span><span class="n">desc</span><span class="o">=</span><span class="vm">__doc__</span><span class="p">)</span> + + <span class="n">command</span> <span class="o">=</span> <span class="n">AriaEcCommands</span><span class="p">(</span><span class="n">custom_logging</span><span class="o">=</span><span class="n">mylog</span><span class="p">)</span> + + <span class="n">command</span><span class="o">.</span><span class="n">run</span><span class="p">()</span></div> + + +<span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s2">"__main__"</span><span class="p">:</span> + <span class="c1"># Test AriaEcCommand object</span> + <span class="n">logging</span><span class="o">.</span><span class="n">basicConfig</span><span class="p">(</span><span class="n">level</span><span class="o">=</span><span class="n">logging</span><span class="o">.</span><span class="n">DEBUG</span><span class="p">)</span> + <span class="n">LOG</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s2">"IO"</span><span class="p">)</span> + <span class="n">AriaEcCommands</span><span class="p">()</span> +</pre></div> + + </div> + <div class="articleComments"> + + </div> + </div> + <footer> + + + <hr/> + + <div role="contentinfo"> + <p> + © Copyright 2017, Fabrice Allain. + + </p> + </div> + Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. + +</footer> + + </div> + </div> + + </section> + + </div> + + + + + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT:'../../', + VERSION:'0.2', + COLLAPSE_INDEX:false, + FILE_SUFFIX:'.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt' + }; + </script> + <script type="text/javascript" src="../../_static/jquery.js"></script> + <script type="text/javascript" src="../../_static/underscore.js"></script> + <script type="text/javascript" src="../../_static/doctools.js"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + + + + <script type="text/javascript" src="../../_static/js/theme.js"></script> + + + + + <script type="text/javascript"> + jQuery(function () { + SphinxRtdTheme.StickyNav.enable(); + }); + </script> + + +</body> +</html> \ No newline at end of file diff --git a/examples-dev/olds/_build/html/_modules/ariaec/converter.html b/examples-dev/olds/_build/html/_modules/ariaec/converter.html new file mode 100644 index 0000000000000000000000000000000000000000..f03804a53d85e91c0d1fba5ca3507639d4b91360 --- /dev/null +++ b/examples-dev/olds/_build/html/_modules/ariaec/converter.html @@ -0,0 +1,2041 @@ + + +<!DOCTYPE html> +<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> +<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> +<head> + <meta charset="utf-8"> + + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <title>ariaec.converter — AriaEc 0.2 documentation</title> + + + + + + + + + + + + + + + + + + <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> + + + + + + <link rel="index" title="Index" + href="../../genindex.html"/> + <link rel="search" title="Search" href="../../search.html"/> + <link rel="top" title="AriaEc 0.2 documentation" href="../../index.html"/> + <link rel="up" title="Module code" href="../index.html"/> + + + <script src="../../_static/js/modernizr.min.js"></script> + +</head> + +<body class="wy-body-for-nav" role="document"> + + + <div class="wy-grid-for-nav"> + + + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search"> + + + + <a href="../../index.html" class="icon icon-home"> AriaEc + + + + </a> + + + + + <div class="version"> + 0.2 + </div> + + + + +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + + + </div> + + <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> + + + + + + + <!-- Local TOC --> + <div class="local-toc"></div> + + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> + + + <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> + + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">AriaEc</a> + + </nav> + + + + <div class="wy-nav-content"> + <div class="rst-content"> + + + + + + + + + + + + + + + + +<div role="navigation" aria-label="breadcrumbs navigation"> + + <ul class="wy-breadcrumbs"> + + <li><a href="../../index.html">Docs</a> »</li> + + <li><a href="../index.html">Module code</a> »</li> + + <li>ariaec.converter</li> + + + <li class="wy-breadcrumbs-aside"> + + + + </li> + + </ul> + + + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <h1>Source code for ariaec.converter</h1><div class="highlight"><pre> +<span></span><span class="c1"># coding=utf-8</span> +<span class="sd">"""</span> +<span class="sd"> Input/Output aria_ec scripts</span> +<span class="sd">"""</span> +<span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span><span class="p">,</span> <span class="n">division</span><span class="p">,</span> <span class="n">print_function</span> + +<span class="kn">import</span> <span class="nn">logging</span> +<span class="kn">import</span> <span class="nn">math</span> +<span class="kn">import</span> <span class="nn">random</span> +<span class="kn">import</span> <span class="nn">collections</span> +<span class="kn">import</span> <span class="nn">itertools</span> +<span class="kn">import</span> <span class="nn">datetime</span> +<span class="kn">import</span> <span class="nn">os</span> +<span class="kn">import</span> <span class="nn">json</span> +<span class="kn">import</span> <span class="nn">re</span> +<span class="kn">import</span> <span class="nn">textwrap</span> +<span class="kn">import</span> <span class="nn">pickle</span> +<span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span> +<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> +<span class="kn">import</span> <span class="nn">pkg_resources</span> <span class="k">as</span> <span class="nn">pkgr</span> +<span class="kn">import</span> <span class="nn">aria.legacy.AminoAcid</span> <span class="k">as</span> <span class="nn">AminoAcid</span> +<span class="kn">from</span> <span class="nn">tqdm</span> <span class="k">import</span> <span class="n">tqdm</span> +<span class="kn">from</span> <span class="nn">.common</span> <span class="k">import</span> <span class="n">get_filename</span><span class="p">,</span> <span class="n">TqdmToLogger</span> +<span class="kn">from</span> <span class="nn">.protein</span> <span class="k">import</span> <span class="n">Protein</span> +<span class="kn">from</span> <span class="nn">.reader</span> <span class="k">import</span> <span class="n">MapFileListReader</span><span class="p">,</span> <span class="n">TblDistFile</span> +<span class="kn">from</span> <span class="nn">.protmap</span> <span class="k">import</span> <span class="p">(</span><span class="n">ResAtmMap</span><span class="p">,</span> <span class="n">ResMap</span><span class="p">,</span> <span class="n">SsAaAtmMap</span><span class="p">)</span> +<span class="kn">from</span> <span class="nn">mako.template</span> <span class="k">import</span> <span class="n">Template</span> +<span class="kn">from</span> <span class="nn">aria.Molecule</span> <span class="k">import</span> <span class="n">Molecule</span> +<span class="kn">from</span> <span class="nn">aria.tools</span> <span class="k">import</span> <span class="n">string_to_segid</span> +<span class="kn">from</span> <span class="nn">aria.AriaXML</span> <span class="k">import</span> <span class="n">AriaXMLPickler</span> +<span class="kn">from</span> <span class="nn">aria.PDBReader</span> <span class="k">import</span> <span class="n">PDBReader</span> +<span class="kn">from</span> <span class="nn">aria.ConversionTable</span> <span class="k">import</span> <span class="n">ConversionTable</span> +<span class="kn">from</span> <span class="nn">future.utils</span> <span class="k">import</span> <span class="n">iteritems</span> +<span class="kn">from</span> <span class="nn">aria.conversion</span> <span class="k">import</span> <span class="n">Converter</span><span class="p">,</span> <span class="n">SequenceList</span><span class="p">,</span> <span class="n">MoleculeSettings</span> +<span class="kn">from</span> <span class="nn">aria.DataContainer</span> <span class="k">import</span> <span class="n">DATA_TYPES</span><span class="p">,</span> <span class="n">DATA_SEQUENCE</span><span class="p">,</span> <span class="n">DATA_RDCS</span><span class="p">,</span> \ + <span class="n">DATA_ANNEALING_RDC</span> + +<span class="n">LOG</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span> + + +<div class="viewcode-block" id="AriaEcBbConverter"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaEcBbConverter">[docs]</a><span class="k">class</span> <span class="nc">AriaEcBbConverter</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> + <span class="sd">"""Bbcontacts convert main class"""</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">settings</span><span class="p">):</span> + <span class="c1"># TODO: check_type settings (AriaEcSettings)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span> <span class="o">=</span> <span class="n">settings</span> + <span class="bp">self</span><span class="o">.</span><span class="n">protein</span> <span class="o">=</span> <span class="n">Protein</span><span class="p">(</span><span class="n">settings</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">reader</span> <span class="o">=</span> <span class="n">MapFileListReader</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span> <span class="o">=</span> <span class="s1">''</span> + +<div class="viewcode-block" id="AriaEcBbConverter.run"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaEcBbConverter.run">[docs]</a> <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""BBConverter command"""</span> + <span class="c1"># Check input</span> + <span class="sd">"""</span> +<span class="sd"> main method</span> +<span class="sd"> """</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Settings:</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">,</span> + <span class="n">indent</span><span class="o">=</span><span class="mi">4</span><span class="p">))</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Args:</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> + <span class="n">indent</span><span class="o">=</span><span class="mi">4</span><span class="p">))</span> + <span class="c1"># TODO: redirect print output to logging ? (low priority)</span> + <span class="c1"># ----------------------------- Input -------------------------------- #</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span> <span class="o">=</span> <span class="n">get_filename</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">bbconv</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"seq"</span><span class="p">,</span> + <span class="kc">None</span><span class="p">))</span> + <span class="c1"># Load Sequence file</span> + <span class="bp">self</span><span class="o">.</span><span class="n">protein</span><span class="o">.</span><span class="n">set_aa_sequence</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">bbconv</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"seq"</span><span class="p">,</span> <span class="kc">None</span><span class="p">))</span> + <span class="c1"># Load secondary structure prediction file</span> + <span class="bp">self</span><span class="o">.</span><span class="n">protein</span><span class="o">.</span><span class="n">set_sec_struct</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">bbconv</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"sspred"</span><span class="p">,</span> + <span class="kc">None</span><span class="p">))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">reader</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">bbconv</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"contactfile"</span><span class="p">),</span> + <span class="n">maptypes</span><span class="o">=</span><span class="p">[</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">bbconv</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"contact_type"</span><span class="p">)],</span> + <span class="n">protein</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">protein</span><span class="p">,</span> + <span class="n">groupby_method</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span> + <span class="s1">'groupby_method'</span><span class="p">],</span> + <span class="n">scsc</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">scsc_min</span><span class="p">)</span> + <span class="c1"># ---------------------------- Processing ---------------------------- #</span> + <span class="c1"># Convert contacts into couplingmatrix file (CCMPred format)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">reader</span><span class="o">.</span><span class="n">maps</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">mapdict</span><span class="p">[</span><span class="s2">"scoremap"</span><span class="p">]</span><span class="o">.</span><span class="n">to_csv</span><span class="p">(</span> + <span class="s2">"</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">.mat"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">outdir</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span><span class="p">),</span> + <span class="n">index</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">header</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">"</span><span class="se">\t</span><span class="s2">"</span><span class="p">,</span> <span class="n">float_format</span><span class="o">=</span><span class="s2">"</span><span class="si">%13.10f</span><span class="s2">"</span><span class="p">)</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">bbconv</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'couplingmatrix'</span><span class="p">]</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">.mat"</span> <span class="o">%</span> <span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">outdir</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span><span class="p">)</span> + <span class="c1"># Convert psipred format (fasta-like)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">protein</span><span class="o">.</span><span class="n">sec_struct</span><span class="o">.</span><span class="n">write_ssfasta</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">.psipred"</span> <span class="o">%</span> <span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">outdir</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span><span class="p">),</span> <span class="n">desc</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">bbconv</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'psipredfile'</span><span class="p">]</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">.psipred"</span> <span class="o">%</span> <span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">outdir</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span><span class="p">)</span> + <span class="c1"># Compute diversityvalue</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">bbconv</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'diversityvalue'</span><span class="p">]</span> <span class="o">=</span> \ + <span class="bp">self</span><span class="o">.</span><span class="n">compute_diversityvalue</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">bbconv</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"msa"</span><span class="p">),</span> + <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">protein</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">sequence</span><span class="p">))</span> + <span class="c1"># Generate .ini file with bbconv options (input args for bbcontacts)</span> + <span class="c1"># TODO: Generate with only bbconv option !</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">write_config</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">_bbconv.ini"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">outdir</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span><span class="p">))</span></div> + +<div class="viewcode-block" id="AriaEcBbConverter.compute_diversityvalue"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaEcBbConverter.compute_diversityvalue">[docs]</a> <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">compute_diversityvalue</span><span class="p">(</span><span class="n">msa</span><span class="p">,</span> <span class="n">seqlen</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Compute bbcontacts diversity value</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> msa : `str`</span> +<span class="sd"> multiple sequence alignment file path</span> +<span class="sd"> seqlen : `int`</span> +<span class="sd"> protein sequence length</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> +<span class="sd"> diversity_score : `float`</span> +<span class="sd"> </span> + +<span class="sd"> Notes</span> +<span class="sd"> -----</span> +<span class="sd"> Diversity score correspond to the square root of the multiple</span> +<span class="sd"> sequence alignment length (:math:`m`) over the length of the protein</span> +<span class="sd"> sequence (:math:`l`)</span> +<span class="sd"> </span> +<span class="sd"> .. math:: Divscore = \frac{\sqrt{m}}{l}</span> +<span class="sd"> """</span> + <span class="n">msa_reg</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">"^>[A-Za-z0-9]+_[A-Za-z0-9]+"</span><span class="p">)</span> + <span class="n">msalen</span> <span class="o">=</span> <span class="mi">0</span> + + <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">msa</span><span class="p">)</span> <span class="k">as</span> <span class="n">msafile</span><span class="p">:</span> + <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">msafile</span><span class="p">:</span> + <span class="n">match</span> <span class="o">=</span> <span class="n">msa_reg</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">line</span><span class="p">)</span> + <span class="k">if</span> <span class="n">match</span> <span class="ow">and</span> <span class="s2">"deselect"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">line</span><span class="p">:</span> + <span class="n">msalen</span> <span class="o">+=</span> <span class="mi">1</span> + + <span class="k">return</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">msalen</span><span class="p">)</span> <span class="o">/</span> <span class="nb">float</span><span class="p">(</span><span class="n">seqlen</span><span class="p">)</span></div></div> + + +<div class="viewcode-block" id="AriaXMLConverter"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaXMLConverter">[docs]</a><span class="k">class</span> <span class="nc">AriaXMLConverter</span><span class="p">(</span><span class="n">Converter</span><span class="p">,</span> <span class="nb">object</span><span class="p">):</span> + <span class="sd">"""XML converter for aria files"""</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">settings</span><span class="p">):</span> + <span class="n">Converter</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_mol_set</span> <span class="o">=</span> <span class="n">MoleculeSettings</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_pickler</span> <span class="o">=</span> <span class="n">AriaXMLPickler</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_molecule</span> <span class="o">=</span> <span class="kc">None</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_upflag</span> <span class="o">=</span> <span class="kc">False</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span> <span class="o">=</span> <span class="s2">""</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span> <span class="o">=</span> <span class="n">settings</span> + <span class="bp">self</span><span class="o">.</span><span class="n">structure</span> <span class="o">=</span> <span class="kc">None</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">molecule</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> aria.Molecule.Molecule object or None. If a structure has been loaded,</span> +<span class="sd"> use it to update the molecule</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">structure</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_molecule</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_upflag</span><span class="p">:</span> + <span class="c1"># update self._molecule with self.structure</span> + <span class="c1"># change value of self._upflag</span> + <span class="bp">self</span><span class="o">.</span><span class="n">upd_mol</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_molecule</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">structure</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_upflag</span> <span class="o">=</span> <span class="kc">True</span> + <span class="k">else</span><span class="p">:</span> + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_molecule</span> + +<div class="viewcode-block" id="AriaXMLConverter.upd_mol"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaXMLConverter.upd_mol">[docs]</a> <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">upd_mol</span><span class="p">(</span><span class="n">molecule</span><span class="p">,</span> <span class="n">structure</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Update molecule object according to pdb structure</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> molecule :</span> +<span class="sd"> </span> +<span class="sd"> structure :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># Check if pdb structure is in the same format as molecule</span> + <span class="c1"># Loop over pdb structure and update/remove atoms in molecule chains (cf</span> + <span class="c1"># aria molecule and chain methods</span> + <span class="c1"># TODO</span> + <span class="k">pass</span></div> + +<div class="viewcode-block" id="AriaXMLConverter.read_seq"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaXMLConverter.read_seq">[docs]</a> <span class="k">def</span> <span class="nf">read_seq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">seqpath</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Load aria Molecule object from seq file</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> seqpath :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_mol_set</span><span class="p">[</span><span class="s1">'format'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'seq'</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_mol_set</span><span class="p">[</span><span class="s1">'input'</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">seqpath</span><span class="p">))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_mol_set</span><span class="p">[</span><span class="s1">'output'</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">infra</span><span class="p">[</span><span class="s2">"xml"</span><span class="p">],</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span> <span class="o">+</span> <span class="s2">".xml"</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_mol_set</span><span class="p">[</span><span class="s1">'type'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">'PROTEIN'</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_mol_set</span><span class="p">[</span><span class="s1">'segid'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">' A'</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_mol_set</span><span class="p">[</span><span class="s1">'first_residue_number'</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_mol_set</span><span class="p">[</span><span class="s1">'naming_convention'</span><span class="p">]</span> <span class="o">=</span> <span class="s1">''</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_mol_set</span><span class="p">[</span><span class="s1">'name'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span> + + <span class="n">segids</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_mol_set</span><span class="p">[</span><span class="s1">'segid'</span><span class="p">]</span> + <span class="n">segids</span> <span class="o">=</span> <span class="n">segids</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">'/'</span><span class="p">)</span> + + <span class="n">segids</span> <span class="o">=</span> <span class="p">[</span><span class="n">string_to_segid</span><span class="p">(</span><span class="n">segid</span><span class="p">)</span> <span class="k">for</span> <span class="n">segid</span> <span class="ow">in</span> <span class="n">segids</span><span class="p">]</span> + <span class="c1"># Fetch molecule</span> + <span class="n">chain_types</span> <span class="o">=</span> <span class="p">{}</span> + <span class="k">for</span> <span class="n">segid</span> <span class="ow">in</span> <span class="n">segids</span><span class="p">:</span> + <span class="n">chain_types</span><span class="p">[</span><span class="n">segid</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_mol_set</span><span class="p">[</span><span class="s1">'type'</span><span class="p">]</span> + + <span class="n">sequence</span> <span class="o">=</span> <span class="n">SequenceList</span><span class="p">(</span><span class="n">chain_types</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_mol_set</span><span class="p">[</span><span class="s1">'first_residue_number'</span><span class="p">])</span> + + <span class="c1"># with Capturing() as output:</span> + <span class="c1"># Initialize SequenceList object with seq file</span> + <span class="n">sequence</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_mol_set</span><span class="p">[</span><span class="s1">'input'</span><span class="p">],</span> <span class="bp">self</span><span class="o">.</span><span class="n">_mol_set</span><span class="p">[</span><span class="s1">'format'</span><span class="p">],</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_mol_set</span><span class="p">[</span><span class="s1">'naming_convention'</span><span class="p">])</span> + + <span class="c1"># LOG.info("\n" + "".join(output))</span> + + <span class="c1"># Initialize aria Atom factory</span> + <span class="n">factory</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">create_factory</span><span class="p">()</span> + + <span class="n">factory</span><span class="o">.</span><span class="n">reset</span><span class="p">()</span> + <span class="n">factory</span><span class="o">.</span><span class="n">unfreeze</span><span class="p">()</span> + + <span class="c1"># Create chains in SequenceList object with aria atom factory</span> + <span class="n">chains</span> <span class="o">=</span> <span class="n">sequence</span><span class="o">.</span><span class="n">create_chains</span><span class="p">(</span><span class="n">factory</span><span class="p">)</span> + + <span class="c1"># Instantiate aria molecule object</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_molecule</span> <span class="o">=</span> <span class="n">Molecule</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_mol_set</span><span class="p">[</span><span class="s1">'name'</span><span class="p">])</span> + <span class="k">for</span> <span class="n">segid</span> <span class="ow">in</span> <span class="n">segids</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">molecule</span><span class="o">.</span><span class="n">add_chain</span><span class="p">(</span><span class="n">chains</span><span class="p">[</span><span class="n">segid</span><span class="p">])</span></div> + +<div class="viewcode-block" id="AriaXMLConverter.read_pdb"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaXMLConverter.read_pdb">[docs]</a> <span class="k">def</span> <span class="nf">read_pdb</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pdbpath</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> pdbpath :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># read pdb file with aria pdb reader and load it in self.structure</span> + <span class="bp">self</span><span class="o">.</span><span class="n">structure</span> <span class="o">=</span> <span class="n">PDBReader</span><span class="p">()</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">pdbpath</span><span class="p">)</span></div> + +<div class="viewcode-block" id="AriaXMLConverter.write_xmlseq"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaXMLConverter.write_xmlseq">[docs]</a> <span class="k">def</span> <span class="nf">write_xmlseq</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""Use aria xml pickler to generate xml molecule file"""</span> + + <span class="k">try</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_pickler</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">molecule</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_mol_set</span><span class="p">[</span><span class="s1">'output'</span><span class="p">])</span> + + <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">msg</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">critical</span><span class="p">(</span><span class="s2">"Error for writing xml seq file </span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_mol_set</span><span class="p">[</span><span class="s1">'output'</span><span class="p">],</span> <span class="n">msg</span><span class="p">)</span> + <span class="k">raise</span> + + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_mol_set</span><span class="p">[</span><span class="s1">'output'</span><span class="p">]</span></div> + +<div class="viewcode-block" id="AriaXMLConverter.deff"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaXMLConverter.deff">[docs]</a> <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">deff</span><span class="p">(</span><span class="n">atm_dists</span><span class="p">,</span> <span class="n">dpow</span><span class="o">=</span><span class="mi">6</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Compute aria effective distance from input distances</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> atm_dists : list</span> +<span class="sd"> list of atm-atm distances</span> +<span class="sd"> dpow : int</span> +<span class="sd"> effective distance exponant (Default value = 6)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">return</span> <span class="n">math</span><span class="o">.</span><span class="n">pow</span><span class="p">(</span><span class="nb">sum</span><span class="p">([</span><span class="n">math</span><span class="o">.</span><span class="n">pow</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="o">-</span><span class="nb">int</span><span class="p">(</span><span class="n">dpow</span><span class="p">))</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> + <span class="n">atm_dists</span><span class="p">]),</span> <span class="o">-</span><span class="mi">1</span> <span class="o">/</span> <span class="mi">6</span><span class="p">)</span></div> + + <span class="c1"># TODO: should define distance restraints in a class, not a dict</span> + <span class="c1"># TODO: Use mako</span> +<div class="viewcode-block" id="AriaXMLConverter.write_dist_xml"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaXMLConverter.write_dist_xml">[docs]</a> <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">write_dist_xml</span><span class="p">(</span><span class="n">dist_restraints</span><span class="p">,</span> <span class="n">outfile</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Write aria distance restraint xml file</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> dist_restraints :</span> +<span class="sd"> </span> +<span class="sd"> outfile :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">xml_file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">outfile</span><span class="p">,</span> <span class="s2">"w"</span><span class="p">)</span> + <span class="n">xml_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span> +<span class="s1"><!DOCTYPE distance_restraint_list SYSTEM "distance_restraint1.0.dtd"></span> +<span class="s1"><distance_restraint_list></span> +<span class="s1">'''</span><span class="p">)</span> + <span class="c1"># Pour chaque contrainte</span> + <span class="c1"># Pour chaque contribution</span> + <span class="k">for</span> <span class="n">restraint_id</span> <span class="ow">in</span> <span class="n">dist_restraints</span><span class="p">:</span> + <span class="n">restraint</span> <span class="o">=</span> <span class="p">{</span> + <span class="s1">'rest_id'</span><span class="p">:</span> <span class="n">restraint_id</span><span class="p">,</span> + <span class="s1">'rest_weight'</span><span class="p">:</span> <span class="n">dist_restraints</span><span class="p">[</span><span class="n">restraint_id</span><span class="p">][</span><span class="s2">"meta"</span><span class="p">][</span><span class="s2">"weight"</span><span class="p">],</span> + <span class="s1">'rest_dist'</span><span class="p">:</span> <span class="nb">float</span><span class="p">(</span> + <span class="n">dist_restraints</span><span class="p">[</span><span class="n">restraint_id</span><span class="p">][</span><span class="s2">"meta"</span><span class="p">][</span><span class="s2">"distance"</span><span class="p">]),</span> + <span class="s1">'lower_bound'</span><span class="p">:</span> <span class="nb">float</span><span class="p">(</span> + <span class="n">dist_restraints</span><span class="p">[</span><span class="n">restraint_id</span><span class="p">][</span><span class="s2">"meta"</span><span class="p">][</span><span class="s2">"lower_bound"</span><span class="p">]),</span> + <span class="s1">'upper_bound'</span><span class="p">:</span> <span class="nb">float</span><span class="p">(</span> + <span class="n">dist_restraints</span><span class="p">[</span><span class="n">restraint_id</span><span class="p">][</span><span class="s2">"meta"</span><span class="p">][</span><span class="s2">"upper_bound"</span><span class="p">]),</span> + <span class="s1">'reliable'</span><span class="p">:</span> <span class="n">dist_restraints</span><span class="p">[</span><span class="n">restraint_id</span><span class="p">][</span><span class="s2">"meta"</span><span class="p">][</span><span class="s2">"reliable"</span><span class="p">],</span> + <span class="s1">'list_name'</span><span class="p">:</span> <span class="n">dist_restraints</span><span class="p">[</span><span class="n">restraint_id</span><span class="p">][</span><span class="s2">"meta"</span><span class="p">][</span><span class="s2">"list_name"</span><span class="p">]</span> + <span class="p">}</span> + <span class="n">xml_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span> +<span class="s1"> <restraint id="</span><span class="si">{rest_id}</span><span class="s1">" weight="</span><span class="si">{rest_weight:.1f}</span><span class="s1">" distance="</span><span class="si">{rest_dist:.1f}</span><span class="s1">" </span><span class="se">\</span> +<span class="s1">lower_bound="</span><span class="si">{lower_bound:.1f}</span><span class="s1">" upper_bound="</span><span class="si">{upper_bound:.1f}</span><span class="s1">" active="1" </span><span class="se">\</span> +<span class="s1">reliable="</span><span class="si">{reliable}</span><span class="s1">" list_name="</span><span class="si">{list_name}</span><span class="s1">"></span> +<span class="s1">'''</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="o">**</span><span class="n">restraint</span><span class="p">))</span> + <span class="k">for</span> <span class="n">contrib_id</span> <span class="ow">in</span> <span class="n">dist_restraints</span><span class="p">[</span><span class="n">restraint_id</span><span class="p">][</span><span class="s2">"contrib"</span><span class="p">]:</span> + <span class="n">res_id</span> <span class="o">=</span> <span class="n">dist_restraints</span><span class="p">[</span><span class="n">restraint_id</span><span class="p">][</span><span class="s2">"contrib"</span><span class="p">][</span><span class="n">contrib_id</span><span class="p">][</span> + <span class="s2">"spin_pair"</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span> + <span class="c1"># TODO: Get segids from molecule file instead</span> + <span class="n">segids</span> <span class="o">=</span> <span class="n">dist_restraints</span><span class="p">[</span><span class="n">restraint_id</span><span class="p">][</span><span class="s2">"contrib"</span><span class="p">][</span><span class="n">contrib_id</span><span class="p">][</span> + <span class="s2">"meta"</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"segids"</span><span class="p">)</span> + <span class="n">segid1</span> <span class="o">=</span> <span class="n">segids</span><span class="p">[</span><span class="n">res_id</span><span class="p">[</span><span class="mi">0</span><span class="p">]]</span> <span class="k">if</span> <span class="n">segids</span> <span class="k">else</span> <span class="s2">" A"</span> + <span class="n">segid2</span> <span class="o">=</span> <span class="n">segids</span><span class="p">[</span><span class="n">res_id</span><span class="p">[</span><span class="mi">1</span><span class="p">]]</span> <span class="k">if</span> <span class="n">segids</span> <span class="k">else</span> <span class="s2">" A"</span> + <span class="n">xml_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span> +<span class="s1"> <contribution id="</span><span class="si">{id}</span><span class="s1">" weight="</span><span class="si">{weight:.8f}</span><span class="s1">"></span> +<span class="s1"> <spin_pair></span> +<span class="s1"> <atom segid="</span><span class="si">{res1_segid}</span><span class="s1">" residue="</span><span class="si">{res1_pos}</span><span class="s1">" name="</span><span class="si">{atm1_name}</span><span class="s1">"/></span> +<span class="s1"> <atom segid="</span><span class="si">{res2_segid}</span><span class="s1">" residue="</span><span class="si">{res2_pos}</span><span class="s1">" name="</span><span class="si">{atm2_name}</span><span class="s1">"/></span> +<span class="s1"> </spin_pair></span> +<span class="s1"> </contribution></span> +<span class="s1">'''</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="n">contrib_id</span><span class="p">,</span> <span class="n">res1_segid</span><span class="o">=</span><span class="n">segid1</span><span class="p">,</span> <span class="n">res2_segid</span><span class="o">=</span><span class="n">segid2</span><span class="p">,</span> + <span class="n">weight</span><span class="o">=</span><span class="n">dist_restraints</span><span class="p">[</span><span class="n">restraint_id</span><span class="p">][</span><span class="s2">"contrib"</span><span class="p">][</span><span class="n">contrib_id</span><span class="p">][</span><span class="s2">"meta"</span><span class="p">][</span> + <span class="s2">"weight"</span><span class="p">],</span> + <span class="n">res1_pos</span><span class="o">=</span><span class="n">res_id</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">res2_pos</span><span class="o">=</span><span class="n">res_id</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> + <span class="n">atm1_name</span><span class="o">=</span><span class="n">dist_restraints</span><span class="p">[</span><span class="n">restraint_id</span><span class="p">][</span><span class="s2">"contrib"</span><span class="p">][</span><span class="n">contrib_id</span><span class="p">][</span> + <span class="s2">"spin_pair"</span><span class="p">][</span><span class="n">res_id</span><span class="p">[</span><span class="mi">0</span><span class="p">]],</span> + <span class="n">atm2_name</span><span class="o">=</span><span class="n">dist_restraints</span><span class="p">[</span><span class="n">restraint_id</span><span class="p">][</span><span class="s2">"contrib"</span><span class="p">][</span><span class="n">contrib_id</span><span class="p">][</span> + <span class="s2">"spin_pair"</span><span class="p">][</span><span class="n">res_id</span><span class="p">[</span><span class="mi">1</span><span class="p">]]))</span> + <span class="n">xml_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span> +<span class="s1"> </restraint></span> +<span class="s1">'''</span><span class="p">)</span> + <span class="n">xml_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span> +<span class="s1"></distance_restraint_list></span> +<span class="s1">'''</span><span class="p">)</span></div> + + <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">_write_helix_hb_tbl</span><span class="p">(</span><span class="n">sec_struct</span><span class="p">,</span> <span class="n">outfile</span><span class="p">,</span> <span class="n">dminus</span><span class="p">,</span> <span class="n">dplus</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> sec_struct :</span> +<span class="sd"> </span> +<span class="sd"> outfile :</span> +<span class="sd"> </span> +<span class="sd"> dminus :</span> +<span class="sd"> </span> +<span class="sd"> dplus :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"! Short range Hbond list (Alpha helix)"</span><span class="p">)</span> + <span class="k">for</span> <span class="n">idx</span><span class="p">,</span> <span class="n">secstr</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">sec_struct</span><span class="p">):</span> + <span class="k">if</span> <span class="p">(</span><span class="n">idx</span> <span class="o">+</span> <span class="mi">4</span><span class="p">)</span> <span class="o"><</span> <span class="nb">len</span><span class="p">(</span><span class="n">sec_struct</span><span class="p">):</span> + <span class="k">if</span> <span class="s1">'H'</span> <span class="ow">in</span> <span class="n">secstr</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="ow">and</span> <span class="s1">'H'</span> <span class="ow">in</span> <span class="n">sec_struct</span><span class="p">[</span><span class="n">idx</span> <span class="o">+</span> <span class="mi">4</span><span class="p">][</span><span class="mi">2</span><span class="p">]:</span> + <span class="c1"># Si residus dans helice</span> + <span class="n">res1</span> <span class="o">=</span> <span class="n">idx</span> <span class="o">+</span> <span class="mi">1</span> + <span class="n">res2</span> <span class="o">=</span> <span class="n">idx</span> <span class="o">+</span> <span class="mi">5</span> + <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span> +<span class="s1">assign (resid </span><span class="si">{res1}</span><span class="s1"> and name o) (resid </span><span class="si">{res2}</span><span class="s1"> and name n) 2.8 </span><span class="si">{dminus}</span><span class="s1"> </span><span class="si">{dplus}</span><span class="s1"></span> +<span class="s1">assign (resid </span><span class="si">{res1}</span><span class="s1"> and name o) (resid </span><span class="si">{res2}</span><span class="s1"> and name hn) 1.8 </span><span class="si">{dminus}</span><span class="s1"> </span><span class="si">{dplus}</span><span class="s1"></span> +<span class="s1">'''</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">res1</span><span class="o">=</span><span class="n">res1</span><span class="p">,</span> <span class="n">res2</span><span class="o">=</span><span class="n">res2</span><span class="p">,</span> <span class="n">dminus</span><span class="o">=</span><span class="n">dminus</span><span class="p">,</span> <span class="n">dplus</span><span class="o">=</span><span class="n">dplus</span><span class="p">))</span> + + <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">_write_hbmap_tbl</span><span class="p">(</span><span class="n">hbmap</span><span class="p">,</span> <span class="n">outfile</span><span class="p">,</span> <span class="n">dminus</span><span class="p">,</span> <span class="n">dplus</span><span class="p">,</span> <span class="n">n_hb</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> + <span class="n">hb_type</span><span class="o">=</span><span class="s2">"main"</span><span class="p">,</span> <span class="n">topo</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Build hbdond distance restraints from a res-res contact map. Tbl</span> +<span class="sd"> restraints generated use pseudoatoms since we assume we don't know</span> +<span class="sd"> which donnor/acceptor are involved.</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> hbmap :</span> +<span class="sd"> Hbond contact map with first humanidx = ['donor',</span> +<span class="sd"> 'acceptor'] => Non symetric matrix !!!</span> +<span class="sd"> outfile :</span> +<span class="sd"> param dminus:</span> +<span class="sd"> dplus :</span> +<span class="sd"> param n_hb:</span> +<span class="sd"> hb_type :</span> +<span class="sd"> Long range hbond type (Default value = "main")</span> +<span class="sd"> dminus :</span> +<span class="sd"> </span> +<span class="sd"> n_hb :</span> +<span class="sd"> (Default value = None)</span> +<span class="sd"> topo :</span> +<span class="sd"> (Default value = None)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># TODO: test with several deviation since these restraints should</span> + <span class="c1"># contain noise !!</span> + <span class="c1"># Parcourt la matrice de contact</span> + <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span> +<span class="s1">! Long range Hbond list (beta sheet)</span> +<span class="s1">'''</span><span class="p">)</span> + <span class="n">contacts</span> <span class="o">=</span> <span class="n">hbmap</span><span class="p">[</span><span class="s2">"scoremap"</span><span class="p">]</span><span class="o">.</span><span class="n">sortedset</span><span class="p">(</span><span class="n">human_idx</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="c1"># distmap = hbmap.get("distmap")</span> + <span class="k">if</span> <span class="n">n_hb</span><span class="p">:</span> + <span class="n">contacts</span> <span class="o">=</span> <span class="n">contacts</span><span class="p">[:</span><span class="n">n_hb</span><span class="p">]</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">contacts</span><span class="p">)</span> + <span class="n">donors</span> <span class="o">=</span> <span class="p">[]</span> + <span class="n">acces</span> <span class="o">=</span> <span class="p">[]</span> + <span class="k">for</span> <span class="n">contact</span> <span class="ow">in</span> <span class="n">contacts</span><span class="p">:</span> + <span class="c1"># The first residu represent the hydrogen bond donor and the</span> + <span class="c1"># second residu represent the hydrogen bond acceptor</span> + <span class="n">res1</span><span class="p">,</span> <span class="n">res2</span> <span class="o">=</span> <span class="n">contact</span> + <span class="k">if</span> <span class="n">res1</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">donors</span> <span class="o">+</span> <span class="n">acces</span> <span class="ow">and</span> <span class="n">res2</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">donors</span> <span class="o">+</span> <span class="n">acces</span><span class="p">:</span> + <span class="c1"># Add only if new donor and new acces don't belong to</span> + <span class="c1"># previous hbond restraints</span> + <span class="n">donors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">res1</span><span class="p">)</span> + <span class="n">acces</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">res2</span><span class="p">)</span> + <span class="c1"># residx1, residx2 = int(res1) - 1, int(res2) - 1</span> + <span class="c1"># TODO: find a way to use dist</span> + <span class="c1"># dist = distmap.iat[(residx1, residx2)]</span> + <span class="k">if</span> <span class="n">hb_type</span> <span class="o">==</span> <span class="s2">"all"</span><span class="p">:</span> + <span class="c1"># This method is deprecated seems it should add noise ...</span> + <span class="c1"># if topo:</span> + <span class="c1"># print(topo)</span> + <span class="c1"># print(res1, res2)</span> + <span class="c1"># print(topo[residx1][1]['dono'])</span> + <span class="c1"># print(topo[residx2][1]['acce'])</span> + <span class="c1"># print([x[0] for x in topo])</span> + <span class="c1"># print(hbmap['maplot'].sequence[residx1])</span> + <span class="c1"># print(hbmap['maplot'].sequence[residx2])</span> + <span class="c1"># print(distmap.index[residx2])</span> + <span class="c1"># print(dist)</span> + <span class="c1"># print(hbmap["scoremap"])</span> + <span class="c1"># Get all donor from cns topology file and make group atom/pseudoatm</span> + <span class="c1"># Get all acceptor from cns topology file</span> + <span class="c1"># !!!! Ignore case flag !!!!!</span> + <span class="k">raise</span> <span class="ne">NotImplementedError</span> + <span class="k">else</span><span class="p">:</span> + <span class="k">if</span> <span class="n">hb_type</span> <span class="o">!=</span> <span class="s2">"main"</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"Wrong longrange hbond type given. Default "</span> + <span class="s2">"option used (main)"</span><span class="p">)</span> + <span class="c1"># First residue = donor for a backbone hydrogen bond (N-H...O=C)</span> + <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span> +<span class="s1"> assign (resid </span><span class="si">{res1}</span><span class="s1"> and name o) (resid </span><span class="si">{res2}</span><span class="s1"> and name n) 2.8 </span><span class="si">{dminus}</span><span class="s1"> </span><span class="si">{dplus}</span><span class="s1"></span> +<span class="s1"> assign (resid </span><span class="si">{res1}</span><span class="s1"> and name o) (resid </span><span class="si">{res2}</span><span class="s1"> and name hn) 1.8 </span><span class="si">{dminus}</span><span class="s1"> </span><span class="si">{dplus}</span><span class="s1"></span> +<span class="s1"> '''</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">res1</span><span class="o">=</span><span class="n">res1</span><span class="p">,</span> <span class="n">res2</span><span class="o">=</span><span class="n">res2</span><span class="p">,</span> <span class="n">dminus</span><span class="o">=</span><span class="n">dminus</span><span class="p">,</span> + <span class="n">dplus</span><span class="o">=</span><span class="n">dplus</span><span class="p">))</span> <span class="c1"># , dist=dist))</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Writing </span><span class="si">%d</span><span class="s2"> hbonds from hbmap in </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">donors</span><span class="p">),</span> + <span class="n">outfile</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> + +<div class="viewcode-block" id="AriaXMLConverter.write_hb_tbl"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaXMLConverter.write_hb_tbl">[docs]</a> <span class="k">def</span> <span class="nf">write_hb_tbl</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">protein</span><span class="p">,</span> <span class="n">outfile</span><span class="p">,</span> <span class="n">hbmap</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dminus</span><span class="o">=</span><span class="mf">0.0</span><span class="p">,</span> + <span class="n">dplus</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span> <span class="n">n_hb</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">lr_type</span><span class="o">=</span><span class="s1">'main'</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> protein :</span> +<span class="sd"> param outfile:</span> +<span class="sd"> hbmap :</span> +<span class="sd"> param dminus: (Default value = None)</span> +<span class="sd"> dplus :</span> +<span class="sd"> param n_hb: (Default value = 0.5)</span> +<span class="sd"> lr_type :</span> +<span class="sd"> return: (Default value = 'main')</span> +<span class="sd"> outfile :</span> +<span class="sd"> </span> +<span class="sd"> dminus :</span> +<span class="sd"> (Default value = 0.0)</span> +<span class="sd"> n_hb :</span> +<span class="sd"> (Default value = None)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">outfile</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">)</span> <span class="k">as</span> <span class="n">outfile</span><span class="p">:</span> + <span class="c1"># Write short range hbond tbl restraints</span> + <span class="k">if</span> <span class="n">protein</span><span class="o">.</span><span class="n">sec_struct</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_write_helix_hb_tbl</span><span class="p">(</span><span class="n">protein</span><span class="o">.</span><span class="n">sec_struct</span><span class="o">.</span><span class="n">ss_matrix</span><span class="p">,</span> <span class="n">outfile</span><span class="p">,</span> + <span class="n">dminus</span><span class="p">,</span> + <span class="n">dplus</span><span class="p">)</span> + <span class="k">if</span> <span class="n">hbmap</span><span class="p">:</span> + <span class="c1"># TODO: add another flag in order to generate hbmap xml</span> + <span class="c1"># ambig. Tbl pseudoatoms is probably not the best way to use</span> + <span class="c1"># hbmap</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_write_hbmap_tbl</span><span class="p">(</span><span class="n">hbmap</span><span class="p">,</span> <span class="n">outfile</span><span class="p">,</span> <span class="n">dminus</span><span class="p">,</span> <span class="n">dplus</span><span class="p">,</span> + <span class="n">n_hb</span><span class="o">=</span><span class="n">n_hb</span><span class="p">,</span> <span class="n">hb_type</span><span class="o">=</span><span class="n">lr_type</span><span class="p">,</span> + <span class="n">topo</span><span class="o">=</span><span class="n">protein</span><span class="o">.</span><span class="n">topology</span><span class="p">)</span></div> + +<div class="viewcode-block" id="AriaXMLConverter.write_ssdist_tbl"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaXMLConverter.write_ssdist_tbl">[docs]</a> <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">write_ssdist_tbl</span><span class="p">(</span><span class="n">sec_struct</span><span class="p">,</span> <span class="n">ss_dist</span><span class="p">,</span> <span class="n">outfile</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> sec_struct :</span> +<span class="sd"> </span> +<span class="sd"> ss_dist :</span> +<span class="sd"> </span> +<span class="sd"> outfile :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># Build global secondary structure distance restraints (H-H+4, E-E+1,</span> + <span class="c1"># ...)</span> + <span class="sd">"""</span> + +<span class="sd"> :param sec_struct:</span> +<span class="sd"> :param ss_dist:</span> +<span class="sd"> :param outfile:</span> +<span class="sd"> """</span> + <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">outfile</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">)</span> <span class="k">as</span> <span class="n">outfile</span><span class="p">:</span> + <span class="k">for</span> <span class="n">resid1</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">sec_struct</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">):</span> + <span class="k">for</span> <span class="n">resid2</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">resid1</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">sec_struct</span><span class="p">)):</span> + <span class="n">ss1</span> <span class="o">=</span> <span class="n">sec_struct</span><span class="p">[</span><span class="n">resid1</span><span class="p">][</span><span class="mi">2</span><span class="p">]</span> + <span class="n">ss2</span> <span class="o">=</span> <span class="n">sec_struct</span><span class="p">[</span><span class="n">resid2</span><span class="p">][</span><span class="mi">2</span><span class="p">]</span> + <span class="k">if</span> <span class="p">(</span><span class="n">ss1</span> <span class="o">!=</span> <span class="n">ss2</span><span class="p">)</span> <span class="ow">or</span> <span class="s1">'C'</span> <span class="ow">in</span> <span class="n">ss1</span> <span class="ow">or</span> <span class="s1">'C'</span> <span class="ow">in</span> <span class="n">ss2</span><span class="p">:</span> + <span class="k">continue</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">gap</span> <span class="o">=</span> <span class="n">resid2</span> <span class="o">-</span> <span class="n">resid1</span> <span class="c1"># ecart en nombre de residus</span> + <span class="n">ss_dict_key</span> <span class="o">=</span> <span class="s1">'</span><span class="si">%s</span><span class="s1">,</span><span class="si">%s</span><span class="s1">+</span><span class="si">%d</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">ss1</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">ss2</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">gap</span><span class="p">)</span> + <span class="n">ss_dist_subdict</span> <span class="o">=</span> <span class="n">ss_dist</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">ss_dict_key</span><span class="p">)</span> + <span class="k">if</span> <span class="n">ss_dist_subdict</span><span class="p">:</span> + <span class="k">for</span> <span class="n">atoms</span><span class="p">,</span> <span class="p">(</span><span class="n">dist</span><span class="p">,</span> <span class="n">sdev</span><span class="p">)</span> <span class="ow">in</span> <span class="n">ss_dist_subdict</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> + <span class="k">if</span> <span class="n">dist</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">sdev</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> + <span class="n">atm1</span><span class="p">,</span> <span class="n">atm2</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">atoms</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">'-'</span><span class="p">))</span> + <span class="n">res1</span> <span class="o">=</span> <span class="n">resid1</span> <span class="o">+</span> <span class="mi">1</span> + <span class="n">res2</span> <span class="o">=</span> <span class="n">resid2</span> <span class="o">+</span> <span class="mi">1</span> + <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span> +<span class="s1">assign (resid </span><span class="si">{res1}</span><span class="s1"> and name </span><span class="si">{atm1}</span><span class="s1">) (resid </span><span class="si">{res2}</span><span class="s1"> and name </span><span class="si">{atm2}</span><span class="s1">) </span><span class="si">{dist}</span><span class="s1"> </span><span class="si">{sdev}</span><span class="s1"> </span><span class="si">{sdev}</span><span class="s1"> weight 5</span> +<span class="s1">'''</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">res1</span><span class="o">=</span><span class="n">res1</span><span class="p">,</span> <span class="n">atm1</span><span class="o">=</span><span class="n">atm1</span><span class="p">,</span> <span class="n">res2</span><span class="o">=</span><span class="n">res2</span><span class="p">,</span> <span class="n">atm2</span><span class="o">=</span><span class="n">atm2</span><span class="p">,</span> <span class="n">dist</span><span class="o">=</span><span class="n">dist</span><span class="p">,</span> <span class="n">sdev</span><span class="o">=</span><span class="n">sdev</span><span class="p">))</span></div> + +<div class="viewcode-block" id="AriaXMLConverter.write_dihedral_tbl"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaXMLConverter.write_dihedral_tbl">[docs]</a> <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">write_dihedral_tbl</span><span class="p">(</span><span class="n">secstructs</span><span class="p">,</span> <span class="n">outfile</span><span class="p">,</span> <span class="n">knrj</span><span class="o">=</span><span class="mf">0.5</span><span class="p">,</span> <span class="n">exp</span><span class="o">=</span><span class="mi">2</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Build dihedral angle restraints (phi, psi) in tbl format</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> secstructs :</span> +<span class="sd"> </span> +<span class="sd"> outfile :</span> +<span class="sd"> </span> +<span class="sd"> knrj :</span> +<span class="sd"> (Default value = 0.5)</span> +<span class="sd"> exp :</span> +<span class="sd"> (Default value = 2)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">outfile</span><span class="p">,</span> <span class="s2">"w"</span><span class="p">)</span> <span class="k">as</span> <span class="n">outfile</span><span class="p">:</span> + <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">secstructs</span><span class="p">)):</span> + <span class="k">if</span> <span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="n">secstructs</span><span class="p">):</span> + <span class="k">if</span> <span class="n">secstructs</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">2</span><span class="p">]</span> <span class="o">==</span> <span class="n">secstructs</span><span class="p">[</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">][</span><span class="mi">2</span><span class="p">]:</span> + <span class="c1"># Si ss identique</span> + <span class="n">secstruct</span> <span class="o">=</span> <span class="n">secstructs</span><span class="p">[</span><span class="n">i</span><span class="p">][</span><span class="mi">2</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> + <span class="n">res1</span> <span class="o">=</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span> + <span class="n">res2</span> <span class="o">=</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">2</span> + + <span class="k">if</span> <span class="n">secstruct</span> <span class="o">==</span> <span class="s1">'H'</span><span class="p">:</span> + <span class="n">phi</span> <span class="o">=</span> <span class="o">-</span><span class="mf">57.0</span> + <span class="n">psi</span> <span class="o">=</span> <span class="o">-</span><span class="mf">47.0</span> + <span class="n">anglerange</span> <span class="o">=</span> <span class="mf">7.0</span> + <span class="k">elif</span> <span class="n">secstruct</span> <span class="o">==</span> <span class="s1">'E'</span><span class="p">:</span> + <span class="n">phi</span> <span class="o">=</span> <span class="o">-</span><span class="mf">127.0</span> + <span class="n">psi</span> <span class="o">=</span> <span class="mf">122.0</span> + <span class="n">anglerange</span> <span class="o">=</span> <span class="mf">20.0</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">phi</span><span class="p">,</span> <span class="n">psi</span><span class="p">,</span> <span class="n">anglerange</span> <span class="o">=</span> <span class="p">(</span><span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">phi</span> <span class="ow">and</span> <span class="n">psi</span><span class="p">:</span> + <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'''</span><span class="se">\</span> +<span class="s1">assign (resid </span><span class="si">{res1}</span><span class="s1"> and name c) (resid </span><span class="si">{res2}</span><span class="s1"> and name n) (resid </span><span class="si">{res2}</span><span class="s1"> and name ca) </span><span class="se">\</span> +<span class="s1">(resid </span><span class="si">{res2}</span><span class="s1"> and name c) </span><span class="si">{k}</span><span class="s1"> </span><span class="si">{phi}</span><span class="s1"> </span><span class="si">{anglerange}</span><span class="s1"> </span><span class="si">{e}</span><span class="s1"></span> +<span class="s1">assign (resid </span><span class="si">{res1}</span><span class="s1"> and name n) (resid </span><span class="si">{res1}</span><span class="s1"> and name ca) (resid </span><span class="si">{res1}</span><span class="s1"> and name c) </span><span class="se">\</span> +<span class="s1">(resid </span><span class="si">{res2}</span><span class="s1"> and name n) </span><span class="si">{k}</span><span class="s1"> </span><span class="si">{psi}</span><span class="s1"> </span><span class="si">{anglerange}</span><span class="s1"> </span><span class="si">{e}</span><span class="s1"></span> +<span class="s1">'''</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">res1</span><span class="o">=</span><span class="n">res1</span><span class="p">,</span> <span class="n">res2</span><span class="o">=</span><span class="n">res2</span><span class="p">,</span> <span class="n">k</span><span class="o">=</span><span class="n">knrj</span><span class="p">,</span> <span class="n">phi</span><span class="o">=</span><span class="n">phi</span><span class="p">,</span> <span class="n">psi</span><span class="o">=</span><span class="n">psi</span><span class="p">,</span> + <span class="n">anglerange</span><span class="o">=</span><span class="n">anglerange</span><span class="p">,</span> <span class="n">e</span><span class="o">=</span><span class="n">exp</span><span class="p">))</span></div></div> + + +<div class="viewcode-block" id="AriaEcXMLConverter"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaEcXMLConverter">[docs]</a><span class="k">class</span> <span class="nc">AriaEcXMLConverter</span><span class="p">(</span><span class="n">AriaXMLConverter</span><span class="p">):</span> + <span class="sd">"""XML converter ariaec to aria"""</span> + + <span class="c1"># TODO: use aria api instead to generate xml files</span> + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">restraint_list</span> <span class="o">=</span> <span class="p">[]</span> + <span class="nb">super</span><span class="p">(</span><span class="n">AriaEcXMLConverter</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> + + <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">_write_hbmap_tbl</span><span class="p">(</span><span class="n">hbmap</span><span class="p">,</span> <span class="n">outfile</span><span class="p">,</span> <span class="n">dminus</span><span class="p">,</span> <span class="n">dplus</span><span class="p">,</span> <span class="n">n_hb</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> + <span class="n">hb_type</span><span class="o">=</span><span class="s2">"main"</span><span class="p">,</span> <span class="n">topo</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> hbmap :</span> +<span class="sd"> </span> +<span class="sd"> outfile :</span> +<span class="sd"> </span> +<span class="sd"> dminus :</span> +<span class="sd"> </span> +<span class="sd"> dplus :</span> +<span class="sd"> </span> +<span class="sd"> n_hb :</span> +<span class="sd"> (Default value = None)</span> +<span class="sd"> hb_type :</span> +<span class="sd"> (Default value = "main")</span> +<span class="sd"> topo :</span> +<span class="sd"> (Default value = None)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">AriaXMLConverter</span><span class="o">.</span><span class="n">_write_hbmap_tbl</span><span class="p">(</span><span class="n">hbmap</span><span class="p">,</span> <span class="n">outfile</span><span class="p">,</span> <span class="n">dminus</span><span class="p">,</span> <span class="n">dplus</span><span class="p">)</span> + + <span class="c1"># def atm_product(self, idx1, res1, idx2, res2, list_type="min", product=True):</span> + <span class="c1">#</span> + <span class="c1"># """</span> + <span class="c1">#</span> + <span class="c1">#</span> + <span class="c1"># Parameters</span> + <span class="c1"># ----------</span> + <span class="c1"># idx1 :</span> + <span class="c1"># res1:</span> + <span class="c1"># idx2 :</span> + <span class="c1"># res2:</span> + <span class="c1"># list_type :</span> + <span class="c1"># type of atoms in the product (Default value = "min")</span> + <span class="c1"># product :</span> + <span class="c1"># res1 :</span> + <span class="c1">#</span> + <span class="c1"># res2 :</span> + <span class="c1">#</span> + <span class="c1">#</span> + <span class="c1"># Returns</span> + <span class="c1"># -------</span> + <span class="c1">#</span> + <span class="c1">#</span> + <span class="c1"># """</span> + <span class="c1">#</span> + <span class="c1"># def resname(res):</span> + <span class="c1"># """</span> + <span class="c1">#</span> + <span class="c1">#</span> + <span class="c1"># Parameters</span> + <span class="c1"># ----------</span> + <span class="c1"># res :</span> + <span class="c1"># return:</span> + <span class="c1">#</span> + <span class="c1"># Returns</span> + <span class="c1"># -------</span> + <span class="c1">#</span> + <span class="c1">#</span> + <span class="c1"># """</span> + <span class="c1"># return AminoAcid.AminoAcid(res)[0]</span> + <span class="c1">#</span> + <span class="c1"># def min_filter(aa1, aa2, atms):</span> + <span class="c1"># """</span> + <span class="c1">#</span> + <span class="c1">#</span> + <span class="c1"># Parameters</span> + <span class="c1"># ----------</span> + <span class="c1"># aa1 : residue name 1</span> + <span class="c1">#</span> + <span class="c1"># aa2 : residue name 2</span> + <span class="c1">#</span> + <span class="c1"># atms : atom pair list of residue 1</span> + <span class="c1">#</span> + <span class="c1">#</span> + <span class="c1"># Returns</span> + <span class="c1"># -------</span> + <span class="c1">#</span> + <span class="c1">#</span> + <span class="c1"># """</span> + <span class="c1"># return [atm for atm in atms if atm in (</span> + <span class="c1"># 'CA', 'CB',</span> + <span class="c1"># self.settings.scsc_min[resname(aa1)][resname(aa2)][0])]</span> + <span class="c1">#</span> + <span class="c1"># atms1 = self.molecule.get_chains()[0].getResidues()[idx1].atoms.keys()</span> + <span class="c1"># atms2 = self.molecule.get_chains()[0].getResidues()[idx2].atoms.keys()</span> + <span class="c1">#</span> + <span class="c1"># if list_type == "min":</span> + <span class="c1"># atms1 = min_filter(res1, res2, atms1)</span> + <span class="c1"># atms2 = min_filter(res2, res1, atms2)</span> + <span class="c1"># elif list_type == "heavy":</span> + <span class="c1"># atms1 = filter(ResAtmMap.heavy_reg.match, atms1)</span> + <span class="c1"># atms2 = filter(ResAtmMap.heavy_reg.match, atms2)</span> + <span class="c1"># elif list_type != 'all':</span> + <span class="c1"># LOG.warning("Wrong pair_list option. Pair_list set to min")</span> + <span class="c1"># atms1 = min_filter(res1, res2, atms1)</span> + <span class="c1"># atms2 = min_filter(res2, res1, atms2)</span> + <span class="c1">#</span> + <span class="c1"># if product:</span> + <span class="c1"># return list(itertools.product(atms1, atms2))</span> + <span class="c1"># else:</span> + <span class="c1"># # Return atm1-atm2 list if both atoms are of the same type (except</span> + <span class="c1"># # for min atom list with the side chain atom</span> + <span class="c1"># return [</span> + <span class="c1"># (atm1, atm2) for (atm1, atm2) in list(itertools.product(atms1, atms2))</span> + <span class="c1"># if atm1 == atm2 or (</span> + <span class="c1"># atm1 not in ('CA', 'CB')</span> + <span class="c1"># and atm2 not in ('CA', 'CB'))] if list_type == 'min' else [</span> + <span class="c1"># (atm1, atm2) for (atm1, atm2) in list(itertools.product(atms1, atms2))</span> + <span class="c1"># if atm1 == atm2]</span> + +<div class="viewcode-block" id="AriaEcXMLConverter.atm_list"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaEcXMLConverter.atm_list">[docs]</a> <span class="k">def</span> <span class="nf">atm_list</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">idx1</span><span class="p">,</span> <span class="n">res1</span><span class="p">,</span> <span class="n">idx2</span><span class="p">,</span> <span class="n">res2</span><span class="p">,</span> <span class="n">list_type</span><span class="o">=</span><span class="s2">"min"</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> idx1</span> +<span class="sd"> res1</span> +<span class="sd"> idx2</span> +<span class="sd"> res2</span> +<span class="sd"> list_type</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> """</span> + + <span class="k">def</span> <span class="nf">resname</span><span class="p">(</span><span class="n">res</span><span class="p">):</span> + <span class="sd">"""</span> + + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> res :</span> +<span class="sd"> return:</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + + +<span class="sd"> """</span> + <span class="k">return</span> <span class="n">AminoAcid</span><span class="o">.</span><span class="n">AminoAcid</span><span class="p">(</span><span class="n">res</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> + + <span class="k">def</span> <span class="nf">min_filter</span><span class="p">(</span><span class="n">aa1</span><span class="p">,</span> <span class="n">aa2</span><span class="p">,</span> <span class="n">atms</span><span class="p">):</span> + <span class="sd">"""</span> + + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> aa1 : residue name 1</span> + +<span class="sd"> aa2 : residue name 2</span> + +<span class="sd"> atms : atom pair list of residue 1</span> + + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + + +<span class="sd"> """</span> + <span class="k">return</span> <span class="p">[</span><span class="n">atm</span> <span class="k">for</span> <span class="n">atm</span> <span class="ow">in</span> <span class="n">atms</span> <span class="k">if</span> <span class="n">atm</span> <span class="ow">in</span> <span class="p">(</span> + <span class="s1">'CA'</span><span class="p">,</span> <span class="s1">'CB'</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">scsc_min</span><span class="p">[</span><span class="n">resname</span><span class="p">(</span><span class="n">aa1</span><span class="p">)][</span><span class="n">resname</span><span class="p">(</span><span class="n">aa2</span><span class="p">)][</span><span class="mi">0</span><span class="p">])]</span> + + <span class="n">atms1</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">molecule</span><span class="o">.</span><span class="n">get_chains</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">getResidues</span><span class="p">()[</span><span class="n">idx1</span><span class="p">]</span><span class="o">.</span><span class="n">atoms</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span> + <span class="n">atms2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">molecule</span><span class="o">.</span><span class="n">get_chains</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">getResidues</span><span class="p">()[</span><span class="n">idx2</span><span class="p">]</span><span class="o">.</span><span class="n">atoms</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span> + + <span class="k">if</span> <span class="n">list_type</span> <span class="o">==</span> <span class="s2">"min"</span><span class="p">:</span> + <span class="n">atms1</span> <span class="o">=</span> <span class="n">min_filter</span><span class="p">(</span><span class="n">res1</span><span class="p">,</span> <span class="n">res2</span><span class="p">,</span> <span class="n">atms1</span><span class="p">)</span> + <span class="n">atms2</span> <span class="o">=</span> <span class="n">min_filter</span><span class="p">(</span><span class="n">res2</span><span class="p">,</span> <span class="n">res1</span><span class="p">,</span> <span class="n">atms2</span><span class="p">)</span> + <span class="k">elif</span> <span class="n">list_type</span> <span class="o">==</span> <span class="s2">"heavy"</span><span class="p">:</span> + <span class="n">atms1</span> <span class="o">=</span> <span class="nb">filter</span><span class="p">(</span><span class="n">ResAtmMap</span><span class="o">.</span><span class="n">heavy_reg</span><span class="o">.</span><span class="n">match</span><span class="p">,</span> <span class="n">atms1</span><span class="p">)</span> + <span class="n">atms2</span> <span class="o">=</span> <span class="nb">filter</span><span class="p">(</span><span class="n">ResAtmMap</span><span class="o">.</span><span class="n">heavy_reg</span><span class="o">.</span><span class="n">match</span><span class="p">,</span> <span class="n">atms2</span><span class="p">)</span> + <span class="k">elif</span> <span class="n">list_type</span> <span class="o">!=</span> <span class="s1">'all'</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">"Wrong pair_list option. Pair_list set to min"</span><span class="p">)</span> + <span class="n">atms1</span> <span class="o">=</span> <span class="n">min_filter</span><span class="p">(</span><span class="n">res1</span><span class="p">,</span> <span class="n">res2</span><span class="p">,</span> <span class="n">atms1</span><span class="p">)</span> + <span class="n">atms2</span> <span class="o">=</span> <span class="n">min_filter</span><span class="p">(</span><span class="n">res2</span><span class="p">,</span> <span class="n">res1</span><span class="p">,</span> <span class="n">atms2</span><span class="p">)</span> + + <span class="k">return</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">atms1</span><span class="p">),</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">atms2</span><span class="p">)</span></div> + +<div class="viewcode-block" id="AriaEcXMLConverter.atm_product"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaEcXMLConverter.atm_product">[docs]</a> <span class="k">def</span> <span class="nf">atm_product</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">idx1</span><span class="p">,</span> <span class="n">res1</span><span class="p">,</span> <span class="n">idx2</span><span class="p">,</span> <span class="n">res2</span><span class="p">,</span> <span class="n">list_type</span><span class="o">=</span><span class="s2">"min"</span><span class="p">,</span> + <span class="n">adr_flag</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">product_type</span><span class="o">=</span><span class="s2">"allvsall"</span><span class="p">):</span> + <span class="sd">"""</span> + + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> product_type</span> +<span class="sd"> adr_flag</span> +<span class="sd"> idx1 :</span> +<span class="sd"> res1:</span> +<span class="sd"> idx2 :</span> +<span class="sd"> res2:</span> +<span class="sd"> list_type :</span> +<span class="sd"> type of atoms in the product (Default value = "min")</span> +<span class="sd"> res1 :</span> + +<span class="sd"> res2 :</span> + + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + + +<span class="sd"> """</span> + + <span class="k">def</span> <span class="nf">resname</span><span class="p">(</span><span class="n">res</span><span class="p">):</span> + <span class="sd">"""</span> + + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> res :</span> +<span class="sd"> return:</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + + +<span class="sd"> """</span> + <span class="k">return</span> <span class="n">AminoAcid</span><span class="o">.</span><span class="n">AminoAcid</span><span class="p">(</span><span class="n">res</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> + + <span class="n">atms1</span><span class="p">,</span> <span class="n">atms2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">atm_list</span><span class="p">(</span><span class="n">idx1</span><span class="p">,</span> <span class="n">res1</span><span class="p">,</span> <span class="n">idx2</span><span class="p">,</span> <span class="n">res2</span><span class="p">,</span> + <span class="n">list_type</span><span class="o">=</span><span class="n">list_type</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">adr_flag</span> <span class="ow">and</span> <span class="n">product_type</span> <span class="o">==</span> <span class="s2">"same"</span><span class="p">:</span> + <span class="c1"># We return here only minimized list with equal atoms</span> + <span class="c1"># Return atm1-atm2 list if both atoms are of the same type (except</span> + <span class="c1"># for min atom list with the side chain atom</span> + <span class="k">return</span> <span class="p">[[</span> + <span class="p">((</span><span class="n">idx1</span><span class="p">,</span> <span class="n">atm1</span><span class="p">),</span> <span class="p">(</span><span class="n">idx2</span><span class="p">,</span> <span class="n">atm2</span><span class="p">))</span> <span class="k">for</span> <span class="p">(</span><span class="n">atm1</span><span class="p">,</span> <span class="n">atm2</span><span class="p">)</span> <span class="ow">in</span> + <span class="nb">list</span><span class="p">(</span><span class="n">itertools</span><span class="o">.</span><span class="n">product</span><span class="p">(</span><span class="n">atms1</span><span class="p">,</span> <span class="n">atms2</span><span class="p">))</span> + <span class="k">if</span> <span class="n">atm1</span> <span class="o">==</span> <span class="n">atm2</span> <span class="ow">or</span> <span class="p">(</span> + <span class="n">atm1</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">'CA'</span><span class="p">,</span> <span class="s1">'CB'</span><span class="p">)</span> + <span class="ow">and</span> <span class="n">atm2</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">'CA'</span><span class="p">,</span> <span class="s1">'CB'</span><span class="p">)</span> + <span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">atm1</span><span class="p">,</span> <span class="n">atm2</span><span class="p">)</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">scsc_min</span><span class="p">[</span> + <span class="n">resname</span><span class="p">(</span><span class="n">res1</span><span class="p">)][</span><span class="n">resname</span><span class="p">(</span><span class="n">res2</span><span class="p">)]],</span> <span class="p">]</span> <span class="k">if</span> <span class="n">list_type</span> <span class="o">==</span> <span class="s1">'min'</span> \ + <span class="k">else</span> <span class="p">[[(</span><span class="n">atm1</span><span class="p">,</span> <span class="n">atm2</span><span class="p">)</span> <span class="k">for</span> <span class="p">(</span><span class="n">atm1</span><span class="p">,</span> <span class="n">atm2</span><span class="p">)</span> <span class="ow">in</span> + <span class="nb">list</span><span class="p">(</span><span class="n">itertools</span><span class="o">.</span><span class="n">product</span><span class="p">(</span><span class="n">atms1</span><span class="p">,</span> <span class="n">atms2</span><span class="p">))</span> + <span class="k">if</span> <span class="n">atm1</span> <span class="o">==</span> <span class="n">atm2</span><span class="p">],</span> <span class="p">]</span> + <span class="k">elif</span> <span class="n">adr_flag</span> <span class="ow">and</span> <span class="n">product_type</span> <span class="o">==</span> <span class="s2">"onevsall"</span><span class="p">:</span> + <span class="c1"># Nested list with combination between one atom against all</span> + <span class="c1"># other atoms in the other list</span> + <span class="n">result</span> <span class="o">=</span> <span class="p">[]</span> + <span class="k">for</span> <span class="n">atm1</span> <span class="ow">in</span> <span class="n">atms1</span><span class="p">:</span> + <span class="n">result</span><span class="o">.</span><span class="n">append</span><span class="p">([</span> + <span class="p">((</span><span class="n">idx1</span><span class="p">,</span> <span class="n">atm1</span><span class="p">),</span> <span class="p">(</span><span class="n">idx2</span><span class="p">,</span> <span class="n">atm2</span><span class="p">))</span> <span class="k">for</span> <span class="p">(</span><span class="n">atm1</span><span class="p">,</span> <span class="n">atm2</span><span class="p">)</span> <span class="ow">in</span> + <span class="nb">list</span><span class="p">(</span><span class="n">itertools</span><span class="o">.</span><span class="n">product</span><span class="p">([</span><span class="n">atm1</span><span class="p">],</span> <span class="n">atms2</span><span class="p">))])</span> + <span class="k">return</span> <span class="n">result</span> + <span class="k">elif</span> <span class="n">adr_flag</span> <span class="ow">and</span> <span class="n">product_type</span> <span class="o">==</span> <span class="s2">"allvsall"</span><span class="p">:</span> + <span class="c1"># ADR with allvsall</span> + <span class="k">return</span> <span class="p">[[</span> + <span class="p">((</span><span class="n">idx1</span><span class="p">,</span> <span class="n">atm1</span><span class="p">),</span> <span class="p">(</span><span class="n">idx2</span><span class="p">,</span> <span class="n">atm2</span><span class="p">))</span> <span class="k">for</span> <span class="p">(</span><span class="n">atm1</span><span class="p">,</span> <span class="n">atm2</span><span class="p">)</span> <span class="ow">in</span> + <span class="nb">list</span><span class="p">(</span><span class="n">itertools</span><span class="o">.</span><span class="n">product</span><span class="p">(</span><span class="n">atms1</span><span class="p">,</span> <span class="n">atms2</span><span class="p">))],</span> <span class="p">]</span> + <span class="k">elif</span> <span class="ow">not</span> <span class="n">adr_flag</span> <span class="ow">and</span> <span class="n">product_type</span> <span class="o">==</span> <span class="s2">"same"</span><span class="p">:</span> + <span class="c1"># We return here only minimized list with equal atoms</span> + <span class="c1"># Return atm1-atm2 list if both atoms are of the same type (except</span> + <span class="c1"># for min atom list with the side chain atom</span> + <span class="k">return</span> <span class="p">[</span> + <span class="p">((</span><span class="n">idx1</span><span class="p">,</span> <span class="n">atm1</span><span class="p">),</span> <span class="p">(</span><span class="n">idx2</span><span class="p">,</span> <span class="n">atm2</span><span class="p">))</span> <span class="k">for</span> <span class="p">(</span><span class="n">atm1</span><span class="p">,</span> <span class="n">atm2</span><span class="p">)</span> <span class="ow">in</span> + <span class="nb">list</span><span class="p">(</span><span class="n">itertools</span><span class="o">.</span><span class="n">product</span><span class="p">(</span><span class="n">atms1</span><span class="p">,</span> <span class="n">atms2</span><span class="p">))</span> + <span class="k">if</span> <span class="n">atm1</span> <span class="o">==</span> <span class="n">atm2</span> <span class="ow">or</span> <span class="p">(</span> + <span class="n">atm1</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">'CA'</span><span class="p">,</span> <span class="s1">'CB'</span><span class="p">)</span> + <span class="ow">and</span> <span class="n">atm2</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span> + <span class="s1">'CA'</span><span class="p">,</span> <span class="s1">'CB'</span><span class="p">))</span> <span class="ow">or</span> <span class="p">(</span><span class="n">atm1</span><span class="p">,</span> <span class="n">atm2</span><span class="p">)</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">scsc_min</span><span class="p">[</span> + <span class="n">resname</span><span class="p">(</span><span class="n">res1</span><span class="p">)][</span> + <span class="n">resname</span><span class="p">(</span><span class="n">res2</span><span class="p">)]]</span> <span class="k">if</span> <span class="n">list_type</span> <span class="o">==</span> <span class="s1">'min'</span> <span class="k">else</span> <span class="p">[</span> + <span class="p">(</span><span class="n">atm1</span><span class="p">,</span> <span class="n">atm2</span><span class="p">)</span> <span class="k">for</span> <span class="p">(</span><span class="n">atm1</span><span class="p">,</span> <span class="n">atm2</span><span class="p">)</span> <span class="ow">in</span> + <span class="nb">list</span><span class="p">(</span><span class="n">itertools</span><span class="o">.</span><span class="n">product</span><span class="p">(</span><span class="n">atms1</span><span class="p">,</span> <span class="n">atms2</span><span class="p">))</span> + <span class="k">if</span> <span class="n">atm1</span> <span class="o">==</span> <span class="n">atm2</span><span class="p">]</span> + <span class="k">else</span><span class="p">:</span> + <span class="c1"># Unambig restraints, we have only one list with all possible</span> + <span class="c1"># combination between atoms. No matter what kind of product type, it</span> + <span class="c1"># will be the same</span> + <span class="k">return</span> <span class="p">[</span> + <span class="p">((</span><span class="n">idx1</span><span class="p">,</span> <span class="n">atm1</span><span class="p">),</span> <span class="p">(</span><span class="n">idx2</span><span class="p">,</span> <span class="n">atm2</span><span class="p">))</span> <span class="k">for</span> <span class="p">(</span><span class="n">atm1</span><span class="p">,</span> <span class="n">atm2</span><span class="p">)</span> <span class="ow">in</span> + <span class="nb">list</span><span class="p">(</span><span class="n">itertools</span><span class="o">.</span><span class="n">product</span><span class="p">(</span><span class="n">atms1</span><span class="p">,</span> <span class="n">atms2</span><span class="p">))]</span></div> + + <span class="k">def</span> <span class="nf">_pdbdistmaps</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="c1"># TODO: use precision level, actually we only use SsAaAtmMaps</span> + <span class="n">precision_level</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span> + <span class="s2">"pdbdistance_level"</span><span class="p">,</span> <span class="s2">"ss"</span><span class="p">)</span> + <span class="n">atom_types</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"atoms_type"</span><span class="p">,</span> <span class="s2">"min"</span><span class="p">)</span> + + <span class="c1"># TODO: Do the same for heavy matrices, it is actually hard coded to min</span> + <span class="c1"># matrices sinces we only have this kind of information in data/pdbdists</span> + <span class="n">pdbstasts_groups</span> <span class="o">=</span> <span class="p">(</span> + <span class="p">(</span><span class="s1">'INTERLOWERBOUNDS'</span><span class="p">,</span> <span class="s1">'interlowerbounds_pdbstat'</span><span class="p">),</span> + <span class="p">(</span><span class="s1">'INTERTARGET'</span><span class="p">,</span> <span class="s1">'intertarget_pdbstat'</span><span class="p">),</span> + <span class="p">(</span><span class="s1">'INTERUPPERBOUNDS'</span><span class="p">,</span> <span class="s1">'interupperbounds_pdbstat'</span><span class="p">),</span> + <span class="p">(</span><span class="s1">'INTRALOWERBOUNDS'</span><span class="p">,</span> <span class="s1">'intralowerbounds_pdbstat'</span><span class="p">),</span> + <span class="p">(</span><span class="s1">'INTRATARGET'</span><span class="p">,</span> <span class="s1">'intratarget_pdbstat'</span><span class="p">),</span> + <span class="p">(</span><span class="s1">'INTRAUPPERBOUNDS'</span><span class="p">,</span> <span class="s1">'intraupperbounds_pdbstat'</span><span class="p">)</span> + <span class="p">)</span> + <span class="n">pdbdistmaps</span> <span class="o">=</span> <span class="p">{}</span> + + <span class="k">for</span> <span class="n">pdbstasts_group</span> <span class="ow">in</span> <span class="n">pdbstasts_groups</span><span class="p">:</span> + <span class="n">path</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">main</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">pdbstasts_group</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> + <span class="n">pkgpath</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">,</span> <span class="n">pdbstasts_group</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> + <span class="c1"># TODO: ONLY MIN PAIR ATOMS FOR TARGET PDB DIST</span> + <span class="n">targetmap</span> <span class="o">=</span> <span class="n">SsAaAtmMap</span><span class="p">(</span><span class="n">atom_types</span><span class="o">=</span><span class="n">atom_types</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">path</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">path</span><span class="p">)</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">path</span><span class="p">:</span> + <span class="k">with</span> <span class="n">pkgr</span><span class="o">.</span><span class="n">resource_stream</span><span class="p">(</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">pkgpath</span><span class="p">)</span> <span class="k">as</span> <span class="n">pkgfile</span><span class="p">:</span> + <span class="n">pdbdistmap</span> <span class="o">=</span> <span class="n">pickle</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">pkgfile</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="k">try</span><span class="p">:</span> + <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span><span class="p">)</span> <span class="k">as</span> <span class="n">pdbdistmapfile</span><span class="p">:</span> + <span class="n">pdbdistmap</span> <span class="o">=</span> <span class="n">pickle</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">pdbdistmapfile</span><span class="p">)</span> + <span class="k">except</span> <span class="p">(</span><span class="ne">IOError</span><span class="p">,</span> <span class="ne">KeyError</span><span class="p">,</span> <span class="ne">TypeError</span><span class="p">):</span> + <span class="k">with</span> <span class="n">pkgr</span><span class="o">.</span><span class="n">resource_stream</span><span class="p">(</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">pkgpath</span><span class="p">)</span> <span class="k">as</span> <span class="n">pkgfile</span><span class="p">:</span> + <span class="n">pdbdistmap</span> <span class="o">=</span> <span class="n">pickle</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">pkgfile</span><span class="p">)</span> + + <span class="n">pdbdistmap</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="o">.</span><span class="n">from_dict</span><span class="p">(</span><span class="n">pdbdistmap</span><span class="p">)</span> + <span class="c1"># We do not want 0. values here ...</span> + <span class="n">pdbdistmap</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="mf">0.</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">NaN</span><span class="p">,</span> <span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">pdbdistmap</span><span class="o">.</span><span class="n">columns</span><span class="o">.</span><span class="n">set_names</span><span class="p">(</span> + <span class="p">[</span><span class="s1">'SecStruct'</span><span class="p">,</span> <span class="s1">'AminoAcid'</span><span class="p">,</span> <span class="s1">'Atom'</span><span class="p">],</span> <span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">pdbdistmap</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">set_names</span><span class="p">(</span> + <span class="p">[</span><span class="s1">'SecStruct'</span><span class="p">,</span> <span class="s1">'AminoAcid'</span><span class="p">,</span> <span class="s1">'Atom'</span><span class="p">],</span> <span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">pdbdistmap</span><span class="o">.</span><span class="n">sort_index</span><span class="p">(</span><span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">pdbdistmap</span><span class="o">.</span><span class="n">sort_index</span><span class="p">(</span><span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">targetmap</span><span class="o">.</span><span class="n">sort_index</span><span class="p">(</span><span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">targetmap</span><span class="o">.</span><span class="n">sort_index</span><span class="p">(</span><span class="n">axis</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">inplace</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">targetmap</span><span class="p">[:]</span> <span class="o">=</span> <span class="n">pdbdistmap</span><span class="p">[:]</span> + <span class="c1"># # TODO: Find a way to rearrange index or</span> + <span class="n">pdbdistmaps</span><span class="p">[</span><span class="n">pdbstasts_group</span><span class="p">[</span><span class="mi">0</span><span class="p">]]</span> <span class="o">=</span> <span class="n">targetmap</span> + + <span class="k">return</span> <span class="n">pdbdistmaps</span> + +<div class="viewcode-block" id="AriaEcXMLConverter.neighcontact"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaEcXMLConverter.neighcontact">[docs]</a> <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">neighcontact</span><span class="p">(</span><span class="n">contact</span><span class="p">,</span> <span class="n">maxidx</span><span class="p">,</span> <span class="n">offset</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> contact: tuple object</span> +<span class="sd"> maxidx: int</span> +<span class="sd"> offset: int</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> """</span> + <span class="n">neighcontacts</span> <span class="o">=</span> <span class="p">[]</span> + <span class="c1"># Add N - 1 contact</span> + <span class="k">if</span> <span class="mi">0</span> <span class="o">+</span> <span class="n">offset</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">contact</span><span class="p">:</span> + <span class="n">neighcontacts</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="mi">1</span><span class="p">,</span> <span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="mi">1</span><span class="p">))</span> + <span class="n">neighcontacts</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span> + <span class="c1"># Add N + 1 contact</span> + <span class="k">if</span> <span class="n">maxidx</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">contact</span><span class="p">:</span> + <span class="n">neighcontacts</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">))</span> + <span class="k">return</span> <span class="n">neighcontacts</span></div> + +<div class="viewcode-block" id="AriaEcXMLConverter.neighcontacts"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaEcXMLConverter.neighcontacts">[docs]</a> <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">neighcontacts</span><span class="p">(</span><span class="n">contacts</span><span class="p">,</span> <span class="n">maxidx</span><span class="p">,</span> <span class="n">offset</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> contacts: list of tuple</span> +<span class="sd"> maxidx: int</span> +<span class="sd"> Maximum index value in pairs</span> +<span class="sd"> offset: int</span> +<span class="sd"> If indexes in pairs start by 0 or 0 + offset</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> """</span> + <span class="n">neighcontacts</span> <span class="o">=</span> <span class="p">[]</span> + + <span class="k">for</span> <span class="n">contact</span> <span class="ow">in</span> <span class="n">contacts</span><span class="p">:</span> + <span class="n">neighcontacts</span> <span class="o">+=</span> <span class="n">AriaEcXMLConverter</span><span class="o">.</span><span class="n">neighcontact</span><span class="p">(</span> + <span class="n">contact</span><span class="p">,</span> <span class="n">maxidx</span><span class="p">,</span> <span class="n">offset</span><span class="p">)</span> + + <span class="k">return</span> <span class="n">neighcontacts</span></div> + +<div class="viewcode-block" id="AriaEcXMLConverter.targetdistmaps"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaEcXMLConverter.targetdistmaps">[docs]</a> <span class="k">def</span> <span class="nf">targetdistmaps</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sequence</span><span class="p">,</span> <span class="n">distfile</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> distfile :</span> +<span class="sd"> param groupby: (Default value = None)</span> +<span class="sd"> sequence :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># TODO: valeur par defaut de distfile au fichier contenant les infos</span> + <span class="c1"># fixes</span> + <span class="c1"># ! target est une ResAtmMap pour les 20 aa, sinon il s'agit d'une</span> + <span class="c1"># carte de distance (native ou predite)</span> + <span class="c1"># Fixed</span> + <span class="c1"># -----</span> + <span class="c1"># => target contient des infos pour les 20 aa qui modifieront le champ</span> + <span class="c1"># distance de la contrainte</span> + <span class="c1"># => AaAtmMap (20 aa) OU AtmMap</span> + <span class="c1"># pdbstat</span> + <span class="c1"># -------</span> + <span class="c1"># => target contient des infos pour les 20 aa. Ces valeurs</span> + <span class="c1"># correspondant au mode des distribution des structures de haute</span> + <span class="c1"># resolution.</span> + <span class="c1"># => Construire Maps en fonction des modes des distribution</span> + <span class="c1"># => SsAaAtmMap (Ajout info structure secondaire) OU AaAtmMap (20</span> + <span class="c1"># aa) OU AaMap (20 aa) OU AtmMap pour les 20 aa</span> + <span class="c1"># distfile</span> + <span class="c1"># ---------</span> + <span class="c1"># => target contient les infos de distances predites en fonction</span> + <span class="c1"># des positions</span> + <span class="c1"># => ResMap (contacts pdb ou predits)</span> + + <span class="c1"># 2 solutions when we use pdbstat:</span> + <span class="c1">#</span> + <span class="n">targetmaps</span> <span class="o">=</span> <span class="p">{</span> + <span class="s1">'INTERLOWERBOUNDS'</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> + <span class="s1">'INTERTARGET'</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> + <span class="s1">'INTERUPPERBOUNDS'</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> + <span class="s1">'INTRALOWERBOUNDS'</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> + <span class="s1">'INTRATARGET'</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> + <span class="s1">'INTRAUPPERBOUNDS'</span><span class="p">:</span> <span class="kc">None</span> + <span class="p">}</span> + <span class="n">distype</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"distance_type"</span><span class="p">,</span> <span class="s2">"fixed"</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">distype</span> <span class="o">==</span> <span class="s2">"distfile"</span> <span class="ow">and</span> <span class="n">distfile</span><span class="p">:</span> + <span class="c1"># Retourne ResAtmMap associe au fichier de distance pdb</span> + <span class="n">targetmaps</span><span class="p">[</span><span class="s1">'INTERTARGET'</span><span class="p">]</span> <span class="o">=</span> <span class="n">distfile</span><span class="o">.</span><span class="n">mapdict</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'alldistmap'</span><span class="p">)</span> + <span class="k">elif</span> <span class="n">distype</span> <span class="o">==</span> <span class="s2">"fixed"</span><span class="p">:</span> + <span class="c1"># Fixed distances with bound in aria_ec.ini</span> + <span class="c1"># retourne ResAtmMap (20 aa)</span> + <span class="c1"># targetmap = ResAtmMap(sequence)</span> + <span class="c1"># targetmap[:] = self.settings.setup.config["restraint_distance"]</span> + <span class="c1"># targetmaps['INTERTARGET'] = targetmap</span> + <span class="n">targetmaps</span><span class="p">[</span><span class="s1">'INTERTARGET'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span> + <span class="s2">"restraint_distance"</span><span class="p">]</span> + <span class="k">elif</span> <span class="n">distype</span> <span class="o">==</span> <span class="s2">"pdbstat"</span><span class="p">:</span> + <span class="c1"># TODO: pdbstats a partir d'une matrice pickle (faire une</span> + <span class="c1"># fonction qui genere la matrice en dehors et la sauvegarde</span> + <span class="c1"># dans le dossier data)</span> + <span class="c1"># Met a jour les valeurs de targetmaps en fonction de celles dispo</span> + <span class="c1"># dans pdbstat</span> + + <span class="c1"># settings = self.settings.setup.config</span> + <span class="c1"># pdbdict = {atmbound.replace('_upper_bound', ''): settings.get(</span> + <span class="c1"># atmbound, None) for atmbound in (bound for bound in settings</span> + <span class="c1"># if '_upper_bound' in bound.lower())}</span> + <span class="c1"># targetmaps.subfill(pdbdict, level=1)</span> + <span class="c1"># targetmaps = SsAaAtmMap()</span> + <span class="n">targetmaps</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_pdbdistmaps</span><span class="p">()</span> + <span class="k">else</span><span class="p">:</span> + <span class="c1"># retourne fixed AtmMap</span> + <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Unknown distance_type </span><span class="si">%s</span><span class="s2"> or wrong distance file"</span> <span class="o">%</span> + <span class="n">distype</span><span class="p">)</span> + <span class="k">return</span> <span class="n">targetmaps</span></div> + +<div class="viewcode-block" id="AriaEcXMLConverter.get_dist"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaEcXMLConverter.get_dist">[docs]</a> <span class="k">def</span> <span class="nf">get_dist</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">distmap</span><span class="p">,</span> <span class="n">contribs</span><span class="p">,</span> <span class="n">defaultdist</span><span class="p">,</span> <span class="n">protein</span><span class="p">,</span> + <span class="n">groupby</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Get target distance from distance map</span> +<span class="sd"> </span> +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> distmap</span> +<span class="sd"> contribs</span> +<span class="sd"> defaultdist</span> +<span class="sd"> protein</span> +<span class="sd"> groupby</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> """</span> + + <span class="k">def</span> <span class="nf">resname</span><span class="p">(</span><span class="n">res</span><span class="p">):</span> + <span class="sd">"""</span> + + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> res :</span> +<span class="sd"> return:</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + + +<span class="sd"> """</span> + <span class="k">return</span> <span class="n">AminoAcid</span><span class="o">.</span><span class="n">AminoAcid</span><span class="p">(</span><span class="n">res</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span> + + <span class="n">distype</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"distance_type"</span><span class="p">,</span> <span class="s2">"fixed"</span><span class="p">)</span> + <span class="n">groupby</span> <span class="o">=</span> <span class="n">groupby</span> <span class="k">if</span> <span class="n">groupby</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span> + <span class="s2">"groupby_method"</span><span class="p">]</span> + <span class="c1"># TODO: Avoid reduce call if possible (slow)</span> + <span class="k">if</span> <span class="n">distype</span> <span class="o">!=</span> <span class="s2">"fixed"</span><span class="p">:</span> + <span class="n">distmap</span> <span class="o">=</span> <span class="n">distmap</span> <span class="k">if</span> <span class="n">protein</span><span class="o">.</span><span class="n">sec_struct</span> <span class="k">else</span> <span class="n">distmap</span><span class="o">.</span><span class="n">reduce</span><span class="p">(</span> + <span class="n">groupby</span><span class="o">=</span><span class="n">groupby</span><span class="p">)</span> + <span class="c1"># Definir le type de la carte Puis</span> + <span class="c1"># Calculer l'index relatif a la paire ou la liste de paires d'atomes</span> + <span class="n">dist_list</span> <span class="o">=</span> <span class="p">[]</span> + + <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">distmap</span><span class="p">)</span> <span class="o">==</span> <span class="n">ResAtmMap</span> <span class="ow">and</span> \ + <span class="n">distmap</span><span class="o">.</span><span class="n">sequence</span> <span class="o">==</span> <span class="n">protein</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">sequence</span><span class="p">:</span> + <span class="k">for</span> <span class="n">contrib</span> <span class="ow">in</span> <span class="n">contribs</span><span class="p">:</span> + <span class="n">mapidx_x</span> <span class="o">=</span> <span class="n">distmap</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">levels</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="n">contrib</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]]</span> + <span class="n">mapidx_y</span> <span class="o">=</span> <span class="n">distmap</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">levels</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="n">contrib</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]]</span> + <span class="n">dist_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">distmap</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span> + <span class="n">mapidx_x</span><span class="p">,</span> <span class="n">contrib</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]][</span> + <span class="n">mapidx_y</span><span class="p">,</span> <span class="n">contrib</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">]])</span> + <span class="k">elif</span> <span class="nb">type</span><span class="p">(</span><span class="n">distmap</span><span class="p">)</span> <span class="o">==</span> <span class="n">SsAaAtmMap</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">protein</span><span class="o">.</span><span class="n">sec_struct</span><span class="p">:</span> + <span class="c1"># TODO: Actually only inter distances used</span> + <span class="c1"># TODO: Works only with minimal target map (with CA, CB, SC indexes)</span> + <span class="k">for</span> <span class="n">contrib</span> <span class="ow">in</span> <span class="n">contribs</span><span class="p">:</span> + <span class="n">residx1</span> <span class="o">=</span> <span class="n">contrib</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> + <span class="n">res1</span> <span class="o">=</span> <span class="n">resname</span><span class="p">(</span><span class="n">protein</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">sequence</span><span class="p">[</span><span class="n">residx1</span><span class="p">])</span> + <span class="n">atm1</span> <span class="o">=</span> <span class="n">contrib</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> + <span class="n">atm1</span> <span class="o">=</span> <span class="n">atm1</span> <span class="k">if</span> <span class="n">atm1</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">'CA'</span><span class="p">,</span> <span class="s1">'CB'</span><span class="p">)</span> <span class="k">else</span> <span class="s1">'SC'</span> + <span class="n">residx2</span> <span class="o">=</span> <span class="n">contrib</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> + <span class="n">res2</span> <span class="o">=</span> <span class="n">resname</span><span class="p">(</span><span class="n">protein</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">sequence</span><span class="p">[</span><span class="n">residx2</span><span class="p">])</span> + <span class="n">atm2</span> <span class="o">=</span> <span class="n">contrib</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> + <span class="n">atm2</span> <span class="o">=</span> <span class="n">atm2</span> <span class="k">if</span> <span class="n">atm2</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">'CA'</span><span class="p">,</span> <span class="s1">'CB'</span><span class="p">)</span> <span class="k">else</span> <span class="s1">'SC'</span> + <span class="n">idx1</span> <span class="o">=</span> <span class="n">res1</span><span class="p">,</span> <span class="n">atm1</span> + <span class="n">idx2</span> <span class="o">=</span> <span class="n">res2</span><span class="p">,</span> <span class="n">atm2</span> + <span class="n">dist</span> <span class="o">=</span> <span class="n">distmap</span><span class="o">.</span><span class="n">sort_index</span><span class="p">()</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">idx1</span><span class="p">][</span><span class="n">idx2</span><span class="p">]</span> + <span class="n">dist</span> <span class="o">=</span> <span class="n">dist</span> <span class="k">if</span> <span class="n">pd</span><span class="o">.</span><span class="n">notnull</span><span class="p">(</span><span class="n">dist</span><span class="p">)</span> <span class="ow">and</span> <span class="n">dist</span> <span class="o">!=</span> <span class="mf">0.</span> <span class="k">else</span> \ + <span class="n">distmap</span><span class="o">.</span><span class="n">sort_index</span><span class="p">()</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">idx2</span><span class="p">][</span><span class="n">idx1</span><span class="p">]</span> + <span class="k">if</span> <span class="n">pd</span><span class="o">.</span><span class="n">notnull</span><span class="p">(</span><span class="n">dist</span><span class="p">)</span> <span class="ow">and</span> <span class="n">dist</span> <span class="o">!=</span> <span class="mf">0.</span><span class="p">:</span> + <span class="n">dist_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">dist</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">dist_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">defaultdist</span><span class="p">)</span> + <span class="k">elif</span> <span class="nb">type</span><span class="p">(</span><span class="n">distmap</span><span class="p">)</span> <span class="o">==</span> <span class="n">SsAaAtmMap</span><span class="p">:</span> + <span class="c1"># TODO: Actually only inter distances used</span> + <span class="c1"># TODO: Works only with minimal target map (with CA, CB, SC indexes)</span> + <span class="k">for</span> <span class="n">contrib</span> <span class="ow">in</span> <span class="n">contribs</span><span class="p">:</span> + <span class="n">residx1</span> <span class="o">=</span> <span class="n">contrib</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> + <span class="n">res1</span> <span class="o">=</span> <span class="n">resname</span><span class="p">(</span><span class="n">protein</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">sequence</span><span class="p">[</span><span class="n">residx1</span><span class="p">])</span> + <span class="n">atm1</span> <span class="o">=</span> <span class="n">contrib</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> + <span class="n">atm1</span> <span class="o">=</span> <span class="n">atm1</span> <span class="k">if</span> <span class="n">atm1</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">'CA'</span><span class="p">,</span> <span class="s1">'CB'</span><span class="p">)</span> <span class="k">else</span> <span class="s1">'SC'</span> + <span class="n">ss1</span> <span class="o">=</span> <span class="n">protein</span><span class="o">.</span><span class="n">sec_struct</span><span class="o">.</span><span class="n">sequence</span><span class="p">[</span><span class="n">residx1</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> + <span class="n">ss1</span> <span class="o">=</span> <span class="n">ss1</span> <span class="k">if</span> <span class="n">ss1</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">'E'</span><span class="p">,</span> <span class="s1">'H'</span><span class="p">)</span> <span class="k">else</span> <span class="s1">'X'</span> + <span class="n">residx2</span> <span class="o">=</span> <span class="n">contrib</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> + <span class="n">res2</span> <span class="o">=</span> <span class="n">resname</span><span class="p">(</span><span class="n">protein</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">sequence</span><span class="p">[</span><span class="n">residx2</span><span class="p">])</span> + <span class="n">atm2</span> <span class="o">=</span> <span class="n">contrib</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> + <span class="n">atm2</span> <span class="o">=</span> <span class="n">atm2</span> <span class="k">if</span> <span class="n">atm2</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">'CA'</span><span class="p">,</span> <span class="s1">'CB'</span><span class="p">)</span> <span class="k">else</span> <span class="s1">'SC'</span> + <span class="n">ss2</span> <span class="o">=</span> <span class="n">protein</span><span class="o">.</span><span class="n">sec_struct</span><span class="o">.</span><span class="n">sequence</span><span class="p">[</span><span class="n">residx2</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> + <span class="n">ss2</span> <span class="o">=</span> <span class="n">ss2</span> <span class="k">if</span> <span class="n">ss2</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">'E'</span><span class="p">,</span> <span class="s1">'H'</span><span class="p">)</span> <span class="k">else</span> <span class="s1">'X'</span> + <span class="n">idx1</span> <span class="o">=</span> <span class="n">ss1</span><span class="p">,</span> <span class="n">res1</span><span class="p">,</span> <span class="n">atm1</span> + <span class="n">idx2</span> <span class="o">=</span> <span class="n">ss2</span><span class="p">,</span> <span class="n">res2</span><span class="p">,</span> <span class="n">atm2</span> + <span class="n">dist</span> <span class="o">=</span> <span class="n">distmap</span><span class="o">.</span><span class="n">sort_index</span><span class="p">()</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">idx1</span><span class="p">][</span><span class="n">idx2</span><span class="p">]</span> + <span class="n">dist</span> <span class="o">=</span> <span class="n">dist</span> <span class="k">if</span> <span class="n">pd</span><span class="o">.</span><span class="n">notnull</span><span class="p">(</span><span class="n">dist</span><span class="p">)</span> <span class="ow">and</span> <span class="n">dist</span> <span class="o">!=</span> <span class="mf">0.</span> <span class="k">else</span> \ + <span class="n">distmap</span><span class="o">.</span><span class="n">sort_index</span><span class="p">()</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">idx2</span><span class="p">][</span><span class="n">idx1</span><span class="p">]</span> + <span class="k">if</span> <span class="n">pd</span><span class="o">.</span><span class="n">notnull</span><span class="p">(</span><span class="n">dist</span><span class="p">)</span> <span class="ow">and</span> <span class="n">dist</span> <span class="o">!=</span> <span class="mf">0.</span><span class="p">:</span> + <span class="n">dist_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">dist</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">dist_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">defaultdist</span><span class="p">)</span> + <span class="k">elif</span> <span class="nb">type</span><span class="p">(</span><span class="n">distmap</span><span class="p">)</span> <span class="o">==</span> <span class="n">ResMap</span> <span class="ow">and</span> \ + <span class="n">distmap</span><span class="o">.</span><span class="n">sequence</span> <span class="o">==</span> <span class="n">protein</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">sequence</span><span class="p">:</span> + <span class="k">for</span> <span class="n">contrib</span> <span class="ow">in</span> <span class="n">contribs</span><span class="p">:</span> + <span class="n">dist_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"</span><span class="si">%.2f</span><span class="s2">"</span> <span class="o">%</span> <span class="n">distmap</span><span class="o">.</span><span class="n">iat</span><span class="p">[</span> + <span class="n">contrib</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">],</span> <span class="n">contrib</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]])</span> + <span class="k">elif</span> <span class="nb">type</span><span class="p">(</span><span class="n">distmap</span><span class="p">)</span> <span class="o">==</span> <span class="nb">float</span><span class="p">:</span> + <span class="k">return</span> <span class="n">distmap</span> + <span class="k">else</span><span class="p">:</span> + <span class="k">return</span> <span class="n">defaultdist</span> + + <span class="c1"># Retourner la distance si elle est unique ou une valeur utilisant la</span> + <span class="c1"># methode groupby</span> + <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">dist_list</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> + <span class="k">return</span> <span class="n">dist_list</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> + <span class="k">elif</span> <span class="n">groupby</span> <span class="o">==</span> <span class="s2">"deff"</span><span class="p">:</span> + <span class="c1"># Compute effective distance from distance list between</span> + <span class="c1"># all pairs in the adr</span> + <span class="k">return</span> <span class="s2">"</span><span class="si">%.2f</span><span class="s2">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">deff</span><span class="p">(</span><span class="n">dist_list</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s2">"deffpow"</span><span class="p">])</span> + <span class="k">elif</span> <span class="n">groupby</span> <span class="o">==</span> <span class="s2">"mean"</span><span class="p">:</span> + <span class="k">return</span> <span class="n">np</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">dist_list</span><span class="p">)</span> + <span class="k">elif</span> <span class="n">groupby</span> <span class="o">==</span> <span class="s2">"min"</span><span class="p">:</span> + <span class="k">return</span> <span class="nb">min</span><span class="p">(</span><span class="n">dist_list</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="k">return</span> <span class="n">defaultdist</span></div> + +<div class="viewcode-block" id="AriaEcXMLConverter.write_map_restraint"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaEcXMLConverter.write_map_restraint">[docs]</a> <span class="k">def</span> <span class="nf">write_map_restraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">protein</span><span class="p">,</span> <span class="n">contactmap</span><span class="p">,</span> <span class="n">nb_c</span><span class="p">,</span> <span class="n">targetdists</span><span class="p">,</span> + <span class="n">scoremap</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">listname</span><span class="o">=</span><span class="s2">""</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Translate maplot in ARIA XML restraint</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> protein</span> +<span class="sd"> listname :</span> +<span class="sd"> param contactmap: ResAtmMap for a protein (Default value = "")</span> +<span class="sd"> nb_c :</span> +<span class="sd"> Number of restraints selected</span> +<span class="sd"> targetdists : dict</span> +<span class="sd"> ResAtmMap for each atom for each amino acid</span> +<span class="sd"> scoremap :</span> +<span class="sd"> sorted list of contacts (Default value = None)</span> +<span class="sd"> contactmap :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + + <span class="k">if</span> <span class="n">scoremap</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> + <span class="c1"># TODO: implement viterbiscore as scoremap for bbcontacts ?</span> + <span class="n">contacts</span> <span class="o">=</span> <span class="n">scoremap</span><span class="o">.</span><span class="n">sortedset</span><span class="p">()[:</span><span class="n">nb_c</span><span class="p">]</span> + <span class="k">else</span><span class="p">:</span> + <span class="c1"># TODO: Probleme selection des contacts utilises en l'absence de</span> + <span class="c1"># poids:</span> + <span class="c1"># - aleatoire (implementation actuelle) => Tester la</span> + <span class="c1"># robustesse</span> + <span class="c1"># - trouver une maniere d'attribuer des poids dans le cas</span> + <span class="c1"># d'une matrice de distance d'un pdb ?</span> + <span class="c1"># - Def le max independent set dans le graphe (matrice de</span> + <span class="c1"># contacts) => utiliser tout les contact de ce set ou def des</span> + <span class="c1"># poids pour selectionner l * f contacts de ce set</span> + <span class="k">if</span> <span class="n">nb_c</span> <span class="o"><</span> <span class="nb">len</span><span class="p">(</span><span class="n">contactmap</span><span class="o">.</span><span class="n">contactset</span><span class="p">()):</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span> + <span class="s2">"Initialize sampling for contact selection with seed </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'seed'</span><span class="p">])</span> + <span class="n">random</span><span class="o">.</span><span class="n">seed</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'seed'</span><span class="p">])</span> + <span class="n">contacts</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">sample</span><span class="p">(</span><span class="n">contactmap</span><span class="o">.</span><span class="n">contactset</span><span class="p">(),</span> <span class="n">nb_c</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Using all contacts"</span><span class="p">)</span> + <span class="n">contacts</span> <span class="o">=</span> <span class="n">contactmap</span><span class="o">.</span><span class="n">contactset</span><span class="p">()[:]</span> + + <span class="n">hum_list</span> <span class="o">=</span> <span class="p">[(</span><span class="n">con1</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">con2</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="k">for</span> <span class="n">con1</span><span class="p">,</span> <span class="n">con2</span> <span class="ow">in</span> <span class="n">contacts</span><span class="p">]</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Selecting </span><span class="si">%d</span><span class="s2"> contacts"</span><span class="p">,</span> <span class="n">nb_c</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">textwrap</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span> + <span class="s1">' '</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="s2">"(</span><span class="si">%2d</span><span class="s2">, </span><span class="si">%2d</span><span class="s2">)"</span> <span class="o">%</span> <span class="n">pair</span> <span class="k">for</span> <span class="n">pair</span> <span class="ow">in</span> <span class="n">hum_list</span><span class="p">]),</span> <span class="n">width</span><span class="o">=</span><span class="mi">80</span><span class="p">)))</span> + + <span class="n">weight_list</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="mf">10.0</span> <span class="o">/</span> <span class="p">(</span><span class="n">x</span> <span class="o">+</span> <span class="mi">1</span><span class="p">))</span> <span class="k">for</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span> + <span class="n">contacts</span><span class="p">))</span> <span class="k">if</span> \ + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'evfold_weight'</span><span class="p">]</span> <span class="ow">and</span> \ + <span class="n">scoremap</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="nb">list</span><span class="p">(</span><span class="mf">1.0</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="n">contacts</span><span class="p">)</span> + + <span class="n">neigh_flag</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'neighborhood_contact'</span><span class="p">]</span> + <span class="n">adr_flag</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s2">"ambiguous_distance_restraint"</span><span class="p">]</span> + <span class="n">contribs_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s2">"contributions_type"</span><span class="p">]</span> + <span class="n">atms_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s2">"atoms_type"</span><span class="p">]</span> + <span class="n">default_target_dist</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s2">"restraint_distance"</span><span class="p">]</span> + <span class="c1"># TODO: Lower bound and upper bound matrix not used actually...</span> + <span class="n">targetdistmap</span> <span class="o">=</span> <span class="n">targetdists</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'INTERTARGET'</span><span class="p">)</span> + <span class="n">nat_reliable</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s2">"native_reliable"</span><span class="p">]</span> + + <span class="k">def</span> <span class="nf">resname_3l</span><span class="p">(</span><span class="n">residx</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> residx :</span> +<span class="sd"> return:</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">return</span> <span class="n">AminoAcid</span><span class="o">.</span><span class="n">AminoAcid</span><span class="p">(</span><span class="n">contactmap</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">values</span><span class="p">[</span><span class="n">residx</span><span class="p">][</span><span class="o">-</span><span class="mi">3</span><span class="p">:])[</span><span class="mi">1</span><span class="p">]</span> + + <span class="n">max_seqidx</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">contactmap</span><span class="o">.</span><span class="n">sequence</span><span class="p">)</span> + <span class="n">restraint_dict</span> <span class="o">=</span> <span class="n">collections</span><span class="o">.</span><span class="n">OrderedDict</span><span class="p">()</span> + <span class="n">rest_id</span> <span class="o">=</span> <span class="mi">0</span> + <span class="n">contrib_id</span> <span class="o">=</span> <span class="mi">0</span> + <span class="n">tqdm_out</span> <span class="o">=</span> <span class="n">TqdmToLogger</span><span class="p">(</span><span class="n">LOG</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="n">logging</span><span class="o">.</span><span class="n">INFO</span><span class="p">)</span> + <span class="k">for</span> <span class="n">contactidx</span><span class="p">,</span> <span class="n">subcontacts</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span> + <span class="n">tqdm</span><span class="p">(</span><span class="n">contacts</span><span class="p">,</span> <span class="n">file</span><span class="o">=</span><span class="n">tqdm_out</span><span class="p">,</span> <span class="n">mininterval</span><span class="o">=</span><span class="mf">1.</span><span class="p">)):</span> + + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Writing restraint related to contact </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> + <span class="nb">str</span><span class="p">((</span><span class="n">subcontacts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">subcontacts</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)))</span> + <span class="c1"># Get weight related to the contact</span> + <span class="n">contactweight</span> <span class="o">=</span> <span class="n">weight_list</span><span class="p">[</span><span class="n">contactidx</span><span class="p">]</span> + + <span class="c1"># Define Residue lists for the contact. Those lists contains</span> + <span class="c1"># normally only one element by default except if we introduce</span> + <span class="c1"># neighbors with neigh_flag triggered</span> + <span class="n">subcontacts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">neighcontact</span><span class="p">(</span><span class="n">subcontacts</span><span class="p">,</span> + <span class="n">max_seqidx</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> <span class="k">if</span> <span class="n">neigh_flag</span> \ + <span class="k">else</span> <span class="p">[</span><span class="n">subcontacts</span><span class="p">]</span> + + <span class="c1"># Define list of atom pairs</span> + <span class="n">contribs_lists</span> <span class="o">=</span> <span class="p">[]</span> + <span class="c1"># Compute all lists of atompair related to the contact</span> + <span class="k">for</span> <span class="n">subcontact</span> <span class="ow">in</span> <span class="n">subcontacts</span><span class="p">:</span> + <span class="n">contribs_lists</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">atm_product</span><span class="p">(</span> + <span class="n">subcontact</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">resname_3l</span><span class="p">(</span><span class="n">subcontact</span><span class="p">[</span><span class="mi">0</span><span class="p">]),</span> <span class="n">subcontact</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> + <span class="n">resname_3l</span><span class="p">(</span><span class="n">subcontact</span><span class="p">[</span><span class="mi">1</span><span class="p">]),</span> <span class="n">list_type</span><span class="o">=</span><span class="n">atms_type</span><span class="p">,</span> + <span class="n">adr_flag</span><span class="o">=</span><span class="n">adr_flag</span><span class="p">,</span> <span class="n">product_type</span><span class="o">=</span><span class="n">contribs_type</span><span class="p">)</span> + + <span class="c1"># We have a unique atmpair list, trick to have a unique loop for</span> + <span class="c1"># all kind of restraints in the following</span> + <span class="n">contribs_lists</span> <span class="o">=</span> <span class="p">[</span> + <span class="n">contribs_lists</span><span class="p">,</span> <span class="p">]</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">adr_flag</span> <span class="k">else</span> <span class="n">contribs_lists</span> + + <span class="c1"># If ADR, build a restraint with contributions containing</span> + <span class="c1"># all atom pair in atmpairs => Get 1 target distance related to</span> + <span class="c1"># atmpairs list</span> + <span class="c1"># Else unambig, build a restraint with one contribution get a</span> + <span class="c1"># target distance for each atom pair</span> + <span class="k">for</span> <span class="n">contribs_list</span> <span class="ow">in</span> <span class="n">contribs_lists</span><span class="p">:</span> + <span class="n">rest_id</span> <span class="o">+=</span> <span class="mi">1</span> + <span class="c1"># For each atom list (only one list normally if unambig restraints)</span> + <span class="c1"># If adr flag, each list is a contribution list for one restraint</span> + + <span class="k">for</span> <span class="n">contrib_idx</span><span class="p">,</span> <span class="n">contrib</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">contribs_list</span><span class="p">):</span> + + <span class="n">res1_idx</span><span class="p">,</span> <span class="n">atm1</span> <span class="o">=</span> <span class="n">contrib</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> + <span class="n">res2_idx</span><span class="p">,</span> <span class="n">atm2</span> <span class="o">=</span> <span class="n">contrib</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> + + <span class="c1"># Increment restraint id if not adr else keep the same</span> + <span class="c1"># restraint id for the actual contribution list</span> + <span class="n">rest_id</span> <span class="o">=</span> <span class="n">rest_id</span> <span class="o">+</span> <span class="mi">1</span> <span class="k">if</span> <span class="n">contrib_idx</span> <span class="o">!=</span> <span class="mi">0</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">adr_flag</span> <span class="k">else</span> <span class="n">rest_id</span> + <span class="c1"># Increment contribution id if adr else reset to 1</span> + <span class="n">contrib_id</span> <span class="o">=</span> <span class="n">contrib_id</span> <span class="o">+</span> <span class="mi">1</span> <span class="k">if</span> <span class="n">contrib_idx</span> <span class="o">!=</span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">adr_flag</span> <span class="k">else</span> <span class="mi">1</span> + + <span class="n">lower_bound</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s2">"lower_bound"</span><span class="p">])</span> + <span class="n">targetdist</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">get_dist</span><span class="p">(</span><span class="n">targetdistmap</span><span class="p">,</span> <span class="n">contribs_list</span><span class="p">,</span> + <span class="n">default_target_dist</span><span class="p">,</span> <span class="n">protein</span><span class="p">))</span> <span class="k">if</span> \ + <span class="n">adr_flag</span> <span class="k">else</span> <span class="nb">float</span><span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">get_dist</span><span class="p">(</span><span class="n">targetdistmap</span><span class="p">,</span> <span class="p">[</span><span class="n">contrib</span><span class="p">],</span> + <span class="n">default_target_dist</span><span class="p">,</span> <span class="n">protein</span><span class="p">))</span> + <span class="n">upper_bound</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s2">"ca_upper_bound"</span><span class="p">])</span> <span class="k">if</span> \ + <span class="p">(</span><span class="n">atm1</span><span class="p">,</span> <span class="n">atm2</span><span class="p">)</span> <span class="o">==</span> <span class="p">(</span><span class="s2">"CA"</span><span class="p">,</span> <span class="s2">"CA"</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">adr_flag</span> <span class="k">else</span> \ + <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s2">"cb_upper_bound"</span><span class="p">])</span> <span class="k">if</span> \ + <span class="p">(</span><span class="n">atm1</span><span class="p">,</span> <span class="n">atm2</span><span class="p">)</span> <span class="o">==</span> <span class="p">(</span><span class="s2">"CB"</span><span class="p">,</span> <span class="s2">"CB"</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">adr_flag</span> <span class="k">else</span> \ + <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s2">"def_upper_bound"</span><span class="p">])</span> + + <span class="c1"># TODO: Better way to define upper_bound if target > upper ???</span> + <span class="n">upper_bound</span> <span class="o">=</span> <span class="n">upper_bound</span> <span class="k">if</span> <span class="n">targetdist</span> <span class="o"><=</span> <span class="n">upper_bound</span> <span class="k">else</span> \ + <span class="n">targetdist</span> <span class="o">+</span> <span class="n">lower_bound</span> + + <span class="k">if</span> <span class="n">restraint_dict</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">rest_id</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> + <span class="n">restraint_dict</span><span class="p">[</span><span class="n">rest_id</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> + <span class="s2">"meta"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"weight"</span><span class="p">:</span> <span class="n">contactweight</span><span class="p">,</span> + <span class="s2">"distance"</span><span class="p">:</span> <span class="n">targetdist</span><span class="p">,</span> + <span class="s2">"lower_bound"</span><span class="p">:</span> <span class="n">lower_bound</span><span class="p">,</span> + <span class="s2">"upper_bound"</span><span class="p">:</span> <span class="n">upper_bound</span><span class="p">,</span> + <span class="s2">"active"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> + <span class="s2">"reliable"</span><span class="p">:</span> <span class="mi">1</span> <span class="k">if</span> <span class="n">nat_reliable</span> <span class="ow">and</span> <span class="n">listname</span> <span class="ow">in</span> <span class="p">(</span> + <span class="s2">"native"</span><span class="p">,</span> <span class="s2">"native_full"</span><span class="p">,</span> <span class="s2">"pdb"</span><span class="p">)</span> <span class="k">else</span> <span class="mi">0</span><span class="p">,</span> + <span class="s2">"list_name"</span><span class="p">:</span> <span class="n">listname</span> + <span class="p">},</span> + <span class="s2">"contrib"</span><span class="p">:</span> <span class="n">collections</span><span class="o">.</span><span class="n">OrderedDict</span><span class="p">()</span> + <span class="p">}</span> + + <span class="n">restraint_dict</span><span class="p">[</span><span class="n">rest_id</span><span class="p">][</span><span class="s2">"contrib"</span><span class="p">][</span><span class="n">contrib_id</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> + <span class="s2">"meta"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"weight"</span><span class="p">:</span> <span class="mf">1.0</span> + <span class="p">},</span> + <span class="s2">"spin_pair"</span><span class="p">:</span> <span class="p">{</span> + <span class="n">res1_idx</span> <span class="o">+</span> <span class="mi">1</span><span class="p">:</span> <span class="n">atm1</span><span class="p">,</span> + <span class="n">res2_idx</span> <span class="o">+</span> <span class="mi">1</span><span class="p">:</span> <span class="n">atm2</span> + <span class="p">}</span> + <span class="p">}</span> + + <span class="c1"># Compute xml restraint file path</span> + <span class="n">xml_file</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">infra</span><span class="p">[</span><span class="s2">"xml"</span><span class="p">]</span> <span class="o">+</span> <span class="s2">"/"</span> <span class="o">+</span> <span class="s2">"_"</span><span class="o">.</span><span class="n">join</span><span class="p">((</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span><span class="p">,</span> <span class="n">listname</span><span class="p">))</span> <span class="o">+</span> <span class="s2">".xml"</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Write </span><span class="si">%d</span><span class="s2"> xml distance restraints in </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">nb_c</span><span class="p">,</span> <span class="n">xml_file</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">write_dist_xml</span><span class="p">(</span><span class="n">restraint_dict</span><span class="p">,</span> <span class="n">xml_file</span><span class="p">)</span> + <span class="k">return</span> <span class="n">xml_file</span><span class="p">,</span> <span class="n">contacts</span></div> + +<div class="viewcode-block" id="AriaEcXMLConverter.write_maplist_restraints"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaEcXMLConverter.write_maplist_restraints">[docs]</a> <span class="k">def</span> <span class="nf">write_maplist_restraints</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">maplist</span><span class="p">,</span> <span class="n">targetmaps</span><span class="p">,</span> <span class="n">protein</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Generate ARIA XML restraints from maplist</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> maplist : list of ResAtmMap or ResMap object</span> +<span class="sd"> </span> +<span class="sd"> targetmaps : dict</span> + +<span class="sd"> protein</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">out</span> <span class="o">=</span> <span class="p">([],</span> <span class="p">[])</span> + + <span class="k">for</span> <span class="n">maptype</span> <span class="ow">in</span> <span class="n">maplist</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Writing </span><span class="si">%s</span><span class="s2"> ARIA XML distance restraints"</span><span class="p">,</span> <span class="n">maptype</span><span class="p">)</span> + <span class="n">outfile</span><span class="p">,</span> <span class="n">pairlist</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">write_map_restraint</span><span class="p">(</span> + <span class="n">protein</span><span class="p">,</span> <span class="n">maplist</span><span class="p">[</span><span class="n">maptype</span><span class="p">][</span><span class="s1">'maplot'</span><span class="p">],</span> <span class="n">maplist</span><span class="p">[</span><span class="n">maptype</span><span class="p">][</span><span class="s2">"nb_c"</span><span class="p">],</span> + <span class="n">targetmaps</span><span class="p">,</span> <span class="n">listname</span><span class="o">=</span><span class="n">maptype</span><span class="p">,</span> + <span class="n">scoremap</span><span class="o">=</span><span class="n">maplist</span><span class="p">[</span><span class="n">maptype</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"scoremap"</span><span class="p">))</span> + <span class="n">out</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">outfile</span><span class="p">)</span> + <span class="n">maplist</span><span class="p">[</span><span class="n">maptype</span><span class="p">][</span><span class="s2">"filteredlist"</span><span class="p">]</span> <span class="o">=</span> <span class="n">pairlist</span> + <span class="n">out</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">pairlist</span><span class="p">)</span> + <span class="k">return</span> <span class="n">out</span></div> + +<div class="viewcode-block" id="AriaEcXMLConverter.write_tbl_restraints"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaEcXMLConverter.write_tbl_restraints">[docs]</a> <span class="k">def</span> <span class="nf">write_tbl_restraints</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">protein</span><span class="p">,</span> <span class="n">hbmap</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">n_hb</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Write tbl restraints</span> +<span class="sd"> </span> +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> protein</span> +<span class="sd"> hbmap</span> +<span class="sd"> Extra hbond map (eg: metapsicov hbonds) (Default value = None)</span> +<span class="sd"> n_hb</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> +<span class="sd"> dict</span> +<span class="sd"> {'hbond': hb_file, 'dihed': dihed_file, 'ssdist': ssdist_file}</span> +<span class="sd"> """</span> + <span class="n">dihed_file</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">infra</span><span class="p">[</span><span class="s2">"tbl"</span><span class="p">],</span> <span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span> <span class="o">+</span> + <span class="s2">"_dihed.tbl"</span><span class="p">)</span> + <span class="n">hb_file</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">infra</span><span class="p">[</span><span class="s2">"tbl"</span><span class="p">],</span> <span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span> <span class="o">+</span> + <span class="s2">"_hbond.tbl"</span><span class="p">)</span> + <span class="n">ssdist_file</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">infra</span><span class="p">[</span><span class="s2">"tbl"</span><span class="p">],</span> <span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span> <span class="o">+</span> + <span class="s2">"_ssdist.tbl"</span><span class="p">)</span> + <span class="k">if</span> <span class="n">protein</span><span class="o">.</span><span class="n">sec_struct</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">" Dihedral restraints for secondary structures (</span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> + <span class="n">dihed_file</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">write_dihedral_tbl</span><span class="p">(</span><span class="n">protein</span><span class="o">.</span><span class="n">sec_struct</span><span class="o">.</span><span class="n">ss_matrix</span><span class="p">,</span> <span class="n">dihed_file</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">" Secondary structure restraints (</span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> + <span class="n">ssdist_file</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">write_ssdist_tbl</span><span class="p">(</span><span class="n">protein</span><span class="o">.</span><span class="n">sec_struct</span><span class="o">.</span><span class="n">ss_matrix</span><span class="p">,</span> + <span class="n">protein</span><span class="o">.</span><span class="n">sec_struct</span><span class="o">.</span><span class="n">ssdist</span><span class="p">,</span> + <span class="n">ssdist_file</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">" Helix bond restraints (</span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> <span class="n">hb_file</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">write_hb_tbl</span><span class="p">(</span><span class="n">protein</span><span class="p">,</span> <span class="n">hb_file</span><span class="p">,</span> + <span class="n">hbmap</span><span class="o">=</span><span class="n">hbmap</span><span class="p">,</span> <span class="n">n_hb</span><span class="o">=</span><span class="n">n_hb</span><span class="p">,</span> + <span class="n">lr_type</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span> + <span class="s1">'longrange_hbtype'</span><span class="p">],</span> + <span class="n">dminus</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'hb_dminus'</span><span class="p">],</span> + <span class="n">dplus</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'hb_dplus'</span><span class="p">])</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">dihed_file</span> <span class="o">=</span> <span class="kc">None</span> + <span class="n">ssdist_file</span> <span class="o">=</span> <span class="kc">None</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">hbmap</span><span class="p">:</span> + <span class="n">hb_file</span> <span class="o">=</span> <span class="kc">None</span> + <span class="k">return</span> <span class="p">{</span><span class="s1">'hbond'</span><span class="p">:</span> <span class="n">hb_file</span><span class="p">,</span> <span class="s1">'dihed'</span><span class="p">:</span> <span class="n">dihed_file</span><span class="p">,</span> <span class="s1">'ssdist'</span><span class="p">:</span> <span class="n">ssdist_file</span><span class="p">}</span></div> + +<div class="viewcode-block" id="AriaEcXMLConverter.write_ariaproject"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaEcXMLConverter.write_ariaproject">[docs]</a> <span class="k">def</span> <span class="nf">write_ariaproject</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">aria_template</span><span class="p">,</span> <span class="n">seqfile</span><span class="p">,</span> <span class="n">dist_files</span><span class="p">,</span> <span class="n">tbl_files</span><span class="p">,</span> + <span class="n">desclist</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Generate ariaproject.xml file</span> +<span class="sd"> </span> +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> aria_template: str</span> +<span class="sd"> ariaproject.xml template path</span> +<span class="sd"> seqfile: str</span> +<span class="sd"> path of molecule sequence in SEQ format</span> +<span class="sd"> dist_files: list of str</span> +<span class="sd"> List of distance restraint files in ARIA XML format</span> +<span class="sd"> tbl_files: dict</span> +<span class="sd"> Distance restraint files in CNS TBL format</span> +<span class="sd"> desclist: list of str</span> +<span class="sd"> List of data descriptor for the actual run (Default value = None).</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> +<span class="sd"> None</span> +<span class="sd"> """</span> + <span class="c1"># TODO: Use aria API to build project in the future</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Loading aria template file </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">aria_template</span><span class="p">)</span> + + <span class="n">molecule</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">molecule</span><span class="o">.</span><span class="n">getName</span><span class="p">()</span> + <span class="n">datas</span> <span class="o">=</span> <span class="n">desclist</span> <span class="k">if</span> <span class="n">desclist</span> <span class="k">else</span> <span class="s1">''</span> + + <span class="n">templatepath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">aria_template</span><span class="p">)</span> + <span class="n">ariaproj_template</span> <span class="o">=</span> <span class="n">Template</span><span class="p">(</span><span class="n">filename</span><span class="o">=</span><span class="n">templatepath</span><span class="p">,</span> + <span class="n">module_directory</span><span class="o">=</span><span class="s2">"/tmp/mako_modules"</span><span class="p">)</span> + + <span class="k">try</span><span class="p">:</span> + <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">templatepath</span><span class="p">):</span> + <span class="k">pass</span> + <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">msg</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">critical</span><span class="p">(</span><span class="s2">"""Can't open template file "</span><span class="si">%s</span><span class="s2">". </span><span class="si">%s</span><span class="s2">"""</span> <span class="o">%</span> + <span class="p">(</span><span class="n">templatepath</span><span class="p">,</span> <span class="n">msg</span><span class="p">))</span> + <span class="k">raise</span> + + <span class="n">aria_project_dict</span> <span class="o">=</span> <span class="p">{}</span> + + <span class="c1"># Check if ratio cool1 / cool2 is 5:4 ... (relevant ?)</span> + <span class="c1"># steps_1 = float(self.settings.setup.config['md_parameters_steps_cool1'])</span> + <span class="c1"># steps_2 = float(self.settings.setup.config['md_parameters_steps_cool2'])</span> + <span class="c1"># if steps_1 / steps_2 != float(5) / int(4):</span> + <span class="c1"># sys.exit(</span> + <span class="c1"># 'Length of first and second cooling stages must be fixed in '</span> + <span class="c1"># 'the ratio %.2f:%.2f' % (steps_1, steps_2))</span> + + <span class="n">aria_project_dict</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">)</span> + + <span class="n">work_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">outdir</span><span class="p">)</span> + <span class="n">temp_dir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">aria_project_dict</span><span class="p">[</span><span class="s1">'temp_root'</span><span class="p">]),</span> + <span class="n">molecule</span><span class="p">,</span> <span class="s2">"_"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">datas</span><span class="p">))</span> + + <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">work_dir</span><span class="p">):</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Working dir </span><span class="si">%s</span><span class="s2"> doesn't exist."</span><span class="p">,</span> <span class="n">work_dir</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Create new directory </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">work_dir</span><span class="p">)</span> + <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">work_dir</span><span class="p">)</span> + + <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">temp_dir</span><span class="p">):</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Temp directory </span><span class="si">%s</span><span class="s2"> doesn't exist."</span><span class="p">,</span> <span class="n">temp_dir</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Create new directory </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">temp_dir</span><span class="p">)</span> + <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">temp_dir</span><span class="p">)</span> + + <span class="n">aria_project_dict</span><span class="p">[</span><span class="s1">'working_directory'</span><span class="p">]</span> <span class="o">=</span> <span class="n">work_dir</span> + <span class="n">aria_project_dict</span><span class="p">[</span><span class="s1">'temp_root'</span><span class="p">]</span> <span class="o">=</span> <span class="n">temp_dir</span> + + <span class="k">if</span> <span class="s2">"-o"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">aria_project_dict</span><span class="p">[</span><span class="s1">'host_command'</span><span class="p">]:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">"No output file defined in host_command. You should add"</span> + <span class="s2">" the output option (-o) to your command."</span><span class="p">)</span> + + <span class="n">project</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'project_name'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span><span class="p">,</span> + <span class="s1">'date'</span><span class="p">:</span> <span class="n">datetime</span><span class="o">.</span><span class="n">date</span><span class="o">.</span><span class="n">today</span><span class="p">()</span><span class="o">.</span><span class="n">isoformat</span><span class="p">(),</span> + <span class="s1">'file_root'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span><span class="p">}</span> + <span class="n">aria_project_dict</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">project</span><span class="p">)</span> + + <span class="n">data_molecule</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'molecule_file'</span><span class="p">:</span> <span class="n">seqfile</span><span class="p">}</span> + <span class="n">aria_project_dict</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">data_molecule</span><span class="p">)</span> + + <span class="n">un_dict</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">()</span> + <span class="n">am_dict</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">()</span> + + <span class="c1"># SS dist tbl restraint</span> + <span class="k">if</span> <span class="n">tbl_files</span><span class="p">[</span><span class="s2">"ssdist"</span><span class="p">]:</span> + <span class="n">un_dict</span><span class="p">[</span><span class="s1">'ss'</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> + <span class="s1">'file'</span><span class="p">:</span> <span class="n">tbl_files</span><span class="p">[</span><span class="s2">"ssdist"</span><span class="p">],</span> + <span class="s1">'format'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'ss_dist_format'</span><span class="p">],</span> + <span class="s1">'ccpn_id'</span><span class="p">:</span> <span class="s1">''</span><span class="p">,</span> + <span class="s1">'enabled'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'ss_dist_enabled'</span><span class="p">],</span> + <span class="s1">'add_to_network'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span> + <span class="s1">'ss_dist_add_to_network'</span><span class="p">],</span> + <span class="s1">'calibrate'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'ss_dist_calibrate'</span><span class="p">],</span> + <span class="s1">'run_network_anchoring'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span> + <span class="s1">'ss_dist_run_network_anchoring'</span><span class="p">],</span> + <span class="s1">'filter_contributions'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span> + <span class="s1">'ss_dist_filter_contributions'</span><span class="p">]}</span> + + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s2">"ambiguous_distance_restraint"</span><span class="p">]:</span> + <span class="c1"># Ajout dist_files a am_dict</span> + <span class="k">for</span> <span class="n">distfile</span> <span class="ow">in</span> <span class="n">dist_files</span><span class="p">:</span> + <span class="n">am_dict</span><span class="p">[</span><span class="n">distfile</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> + <span class="s1">'file'</span><span class="p">:</span> <span class="n">distfile</span><span class="p">,</span> + <span class="s1">'format'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'dist_format'</span><span class="p">],</span> + <span class="s1">'ccpn_id'</span><span class="p">:</span> <span class="s1">''</span><span class="p">,</span> + <span class="s1">'enabled'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'dist_enabled'</span><span class="p">],</span> + <span class="s1">'add_to_network'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span> + <span class="s1">'dist_add_to_network'</span><span class="p">],</span> + <span class="s1">'calibrate'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'dist_calibrate'</span><span class="p">],</span> + <span class="s1">'run_network_anchoring'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span> + <span class="s1">'dist_run_network_anchoring'</span><span class="p">],</span> + <span class="s1">'filter_contributions'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span> + <span class="s1">'dist_filter_contributions'</span><span class="p">],</span> + <span class="s1">'avg_exponent'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span> + <span class="s1">'dist_avg_exponent'</span><span class="p">]</span> + <span class="p">}</span> + <span class="k">else</span><span class="p">:</span> + <span class="c1"># Ajout dist_files a un_dict</span> + <span class="k">for</span> <span class="n">distfile</span> <span class="ow">in</span> <span class="n">dist_files</span><span class="p">:</span> + <span class="n">un_dict</span><span class="p">[</span><span class="n">distfile</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> + <span class="s1">'file'</span><span class="p">:</span> <span class="n">distfile</span><span class="p">,</span> + <span class="s1">'format'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'dist_format'</span><span class="p">],</span> + <span class="s1">'ccpn_id'</span><span class="p">:</span> <span class="s1">''</span><span class="p">,</span> + <span class="s1">'enabled'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'dist_enabled'</span><span class="p">],</span> + <span class="s1">'add_to_network'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span> + <span class="s1">'dist_add_to_network'</span><span class="p">],</span> + <span class="s1">'calibrate'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'dist_calibrate'</span><span class="p">],</span> + <span class="s1">'run_network_anchoring'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span> + <span class="s1">'dist_run_network_anchoring'</span><span class="p">],</span> + <span class="s1">'filter_contributions'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span> + <span class="s1">'dist_filter_contributions'</span><span class="p">]}</span> + + <span class="n">aria_project_dict</span><span class="o">.</span><span class="n">update</span><span class="p">({</span><span class="s1">'unambiguous_distance_restraints'</span><span class="p">:</span> <span class="n">un_dict</span><span class="p">})</span> + <span class="n">aria_project_dict</span><span class="o">.</span><span class="n">update</span><span class="p">({</span><span class="s1">'ambiguous_distance_restraints'</span><span class="p">:</span> <span class="n">am_dict</span><span class="p">})</span> + + <span class="n">aria_project_dict</span><span class="o">.</span><span class="n">update</span><span class="p">({</span> + <span class="s1">'hbond_dist_file'</span><span class="p">:</span> <span class="n">tbl_files</span><span class="p">[</span><span class="s2">"hbond"</span><span class="p">]</span> + <span class="k">if</span> <span class="n">tbl_files</span><span class="p">[</span><span class="s1">'hbond'</span><span class="p">]</span> <span class="k">else</span> <span class="kc">None</span><span class="p">})</span> + + <span class="n">aria_project_dict</span><span class="o">.</span><span class="n">update</span><span class="p">({</span> + <span class="s1">'dihed_angle_file'</span><span class="p">:</span> <span class="n">tbl_files</span><span class="p">[</span><span class="s2">"dihed"</span><span class="p">]</span> + <span class="k">if</span> <span class="n">tbl_files</span><span class="p">[</span><span class="s1">'dihed'</span><span class="p">]</span> <span class="k">else</span> <span class="kc">None</span><span class="p">})</span> + + <span class="n">aria_project_dict</span><span class="p">[</span><span class="s1">'n_cpus'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'cpus'</span><span class="p">,</span> + <span class="s1">'20'</span><span class="p">)</span> + + <span class="n">proj_file</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">/ariaproject.xml"</span> <span class="o">%</span> <span class="n">work_dir</span> + <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">proj_file</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">)</span> <span class="k">as</span> <span class="n">proj_xml</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Writing ARIA project file (</span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> <span class="n">proj_file</span><span class="p">)</span> + <span class="n">proj_xml</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">ariaproj_template</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="o">**</span><span class="n">aria_project_dict</span><span class="p">))</span> + + <span class="c1"># TODO: Load aria project file if exists and extract data and rdc</span> + <span class="c1"># parameters (use flag in args)</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s1">'ariaproject'</span><span class="p">]:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Reading ARIA project file"</span><span class="p">)</span> + <span class="n">ecproject</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_pickler</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">proj_file</span><span class="p">)</span> + <span class="n">project</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_pickler</span><span class="o">.</span><span class="n">load</span><span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s1">'ariaproject'</span><span class="p">])</span> + <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s1">'extractall'</span><span class="p">]:</span> + <span class="c1"># Add only data to the generated project</span> + <span class="k">for</span> <span class="n">datatype</span> <span class="ow">in</span> <span class="n">DATA_TYPES</span><span class="p">:</span> + <span class="n">datas</span> <span class="o">=</span> <span class="p">[</span><span class="n">dat</span> <span class="k">for</span> <span class="n">dat</span> <span class="ow">in</span> <span class="n">project</span><span class="o">.</span><span class="n">getData</span><span class="p">(</span><span class="n">datatype</span><span class="p">)]</span> + <span class="k">if</span> <span class="n">datas</span><span class="p">:</span> + <span class="n">ecdatas</span> <span class="o">=</span> <span class="p">[</span><span class="n">dat</span> <span class="k">for</span> <span class="n">dat</span> <span class="ow">in</span> <span class="n">ecproject</span><span class="o">.</span><span class="n">getData</span><span class="p">(</span><span class="n">datatype</span><span class="p">)]</span> + <span class="k">if</span> <span class="p">[</span><span class="n">dat</span><span class="o">.</span><span class="n">as_dict</span><span class="p">()</span> <span class="k">for</span> <span class="n">dat</span> <span class="ow">in</span> <span class="n">datas</span><span class="p">]</span> <span class="o">!=</span> \ + <span class="p">[</span><span class="n">dat</span><span class="o">.</span><span class="n">as_dict</span><span class="p">()</span> <span class="k">for</span> <span class="n">dat</span> <span class="ow">in</span> <span class="n">ecdatas</span><span class="p">]:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Update </span><span class="si">%s</span><span class="s2"> data in project"</span><span class="p">,</span> <span class="n">datatype</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">datas</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Old </span><span class="si">%s</span><span class="s2"> section:</span><span class="se">\n</span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">datatype</span><span class="p">,</span> + <span class="n">ecproject</span><span class="o">.</span><span class="n">getData</span><span class="p">(</span><span class="n">datatype</span><span class="p">))</span> + <span class="c1"># TODO: check if sequence file is similar with the</span> + <span class="c1"># one generated</span> + <span class="k">if</span> <span class="n">datatype</span> <span class="o">==</span> <span class="n">DATA_SEQUENCE</span><span class="p">:</span> + <span class="p">[</span><span class="n">ecproject</span><span class="o">.</span><span class="n">delData</span><span class="p">(</span><span class="n">dat</span><span class="p">)</span> + <span class="k">for</span> <span class="n">dat</span> <span class="ow">in</span> <span class="n">ecproject</span><span class="o">.</span><span class="n">getData</span><span class="p">(</span><span class="n">datatype</span><span class="p">)]</span> + <span class="p">[</span><span class="n">ecproject</span><span class="o">.</span><span class="n">addData</span><span class="p">(</span><span class="n">dat</span><span class="p">)</span> <span class="k">for</span> <span class="n">dat</span> <span class="ow">in</span> <span class="n">datas</span><span class="p">]</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Updated </span><span class="si">%s</span><span class="s2"> section:</span><span class="se">\n</span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">datatype</span><span class="p">,</span> + <span class="n">ecproject</span><span class="o">.</span><span class="n">getData</span><span class="p">(</span><span class="n">datatype</span><span class="p">))</span> + <span class="k">if</span> <span class="n">datatype</span> <span class="o">==</span> <span class="n">DATA_RDCS</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Update </span><span class="si">%s</span><span class="s2"> annealing parameters"</span><span class="p">,</span> + <span class="n">datatype</span><span class="p">)</span> + <span class="n">rdc_params</span> <span class="o">=</span> <span class="n">project</span><span class="o">.</span><span class="n">getStructureEngine</span><span class="p">()</span><span class="o">.</span><span class="n">getAnnealingParameters</span><span class="p">()</span><span class="o">.</span><span class="n">get</span><span class="p">(</span> + <span class="n">DATA_ANNEALING_RDC</span><span class="p">)</span> + <span class="n">engine</span> <span class="o">=</span> <span class="n">ecproject</span><span class="o">.</span><span class="n">getStructureEngine</span><span class="p">()</span> + <span class="n">annealing</span> <span class="o">=</span> <span class="n">engine</span><span class="o">.</span><span class="n">getAnnealingParameters</span><span class="p">()</span> + <span class="n">annealing</span><span class="p">[</span><span class="n">DATA_ANNEALING_RDC</span><span class="p">]</span> <span class="o">=</span> <span class="n">rdc_params</span> + <span class="n">engine</span><span class="o">.</span><span class="n">setAnnealingParameters</span><span class="p">(</span><span class="n">annealing</span><span class="p">)</span> + <span class="n">ecproject</span><span class="o">.</span><span class="n">setStructureEngine</span><span class="p">(</span><span class="n">engine</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="k">raise</span> <span class="ne">NotImplementedError</span> + + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Writing new ARIA xml file (</span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> <span class="n">proj_file</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_pickler</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="n">ecproject</span><span class="p">,</span> <span class="n">proj_file</span><span class="p">)</span></div> + +<div class="viewcode-block" id="AriaEcXMLConverter.tbl2xml"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaEcXMLConverter.tbl2xml">[docs]</a> <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">tbl2xml</span><span class="p">(</span><span class="n">outdir_path</span><span class="p">,</span> <span class="n">molecule_path</span><span class="p">,</span> <span class="n">tbl_paths</span><span class="p">,</span> <span class="n">list_name</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Read cns distance restraints in TBL format and convert them into ARIA</span> +<span class="sd"> XML format</span> +<span class="sd"> </span> +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> outdir_path : str</span> +<span class="sd"> Path where ARIA XML files are saved </span> +<span class="sd"> molecule_path : str</span> +<span class="sd"> Path of molecule file in ARIA XML format </span> +<span class="sd"> tbl_paths : list of str</span> +<span class="sd"> List of distance restraints paths</span> +<span class="sd"> list_name : str</span> +<span class="sd"> Name of spec in tbl file which will be converted into XML format</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> +<span class="sd"> xml_paths: str</span> +<span class="sd"> List of distance restraints in ARIA XML format</span> +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">pickler</span> <span class="o">=</span> <span class="n">AriaXMLPickler</span><span class="p">()</span> + <span class="n">molecule</span> <span class="o">=</span> <span class="n">pickler</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">molecule_path</span><span class="p">)</span> + <span class="n">convtable</span> <span class="o">=</span> <span class="n">ConversionTable</span><span class="p">()</span> + <span class="n">xml_paths</span> <span class="o">=</span> <span class="p">[]</span> + + <span class="c1"># Read tbl file(s) and build dist_restraints dict</span> + <span class="k">for</span> <span class="n">tbl_path</span> <span class="ow">in</span> <span class="n">tbl_paths</span><span class="p">:</span> + + <span class="n">tbl</span> <span class="o">=</span> <span class="n">TblDistFile</span><span class="p">(</span><span class="n">tbl_path</span><span class="p">)</span> + <span class="n">tbl</span><span class="o">.</span><span class="n">load</span><span class="p">()</span> + <span class="n">xml_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> + <span class="n">outdir_path</span><span class="p">,</span> + <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span> + <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">tbl_path</span><span class="p">))[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s2">"_restraints.xml"</span><span class="p">)</span> + + <span class="n">xmldists</span> <span class="o">=</span> <span class="n">collections</span><span class="o">.</span><span class="n">OrderedDict</span><span class="p">()</span> + <span class="n">restno</span> <span class="o">=</span> <span class="kc">None</span> + <span class="n">listflag</span> <span class="o">=</span> <span class="kc">False</span> + + <span class="k">for</span> <span class="n">idline</span><span class="p">,</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="n">tbl</span><span class="o">.</span><span class="n">lines</span><span class="p">):</span> + + <span class="n">assign_flag</span> <span class="o">=</span> <span class="kc">True</span> <span class="k">if</span> <span class="s2">"assign"</span> <span class="ow">in</span> <span class="n">line</span><span class="o">.</span><span class="n">get</span><span class="p">(</span> + <span class="s2">"restflag"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">False</span> + <span class="n">res1_id</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">line</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"resid1"</span><span class="p">))</span> + <span class="n">res2_id</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">line</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"resid2"</span><span class="p">))</span> + <span class="n">res1</span> <span class="o">=</span> <span class="n">molecule</span><span class="o">.</span><span class="n">getChain</span><span class="p">(</span><span class="n">line</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"segid1"</span><span class="p">))[</span><span class="n">res1_id</span><span class="p">]</span> + <span class="n">res2</span> <span class="o">=</span> <span class="n">molecule</span><span class="o">.</span><span class="n">getChain</span><span class="p">(</span><span class="n">line</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"segid2"</span><span class="p">))[</span><span class="n">res2_id</span><span class="p">]</span> + + <span class="c1"># Convert atom name</span> + <span class="c1"># TBL file follow cns nomenclature for atom names</span> + <span class="c1"># ARIA XML distance restraints follow iupac names</span> + <span class="n">atm1_name</span> <span class="o">=</span> <span class="n">convtable</span><span class="o">.</span><span class="n">convert_atom</span><span class="p">(</span> + <span class="n">res1</span><span class="o">.</span><span class="n">getType</span><span class="p">(),</span> <span class="n">line</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"atm1"</span><span class="p">),</span> <span class="s1">'cns'</span><span class="p">,</span> <span class="s1">'iupac'</span><span class="p">,</span> + <span class="s1">'AMINO_ACID'</span><span class="p">)</span> + <span class="n">atm2_name</span> <span class="o">=</span> <span class="n">convtable</span><span class="o">.</span><span class="n">convert_atom</span><span class="p">(</span> + <span class="n">res2</span><span class="o">.</span><span class="n">getType</span><span class="p">(),</span> <span class="n">line</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"atm2"</span><span class="p">),</span> <span class="s1">'cns'</span><span class="p">,</span> <span class="s1">'iupac'</span><span class="p">,</span> + <span class="s1">'AMINO_ACID'</span><span class="p">)</span> + + <span class="c1"># If assign flag, initialize a new restraint</span> + <span class="k">if</span> <span class="n">assign_flag</span><span class="p">:</span> + <span class="n">listflag</span> <span class="o">=</span> <span class="kc">False</span> + <span class="n">restno</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"restno"</span><span class="p">)</span> + <span class="n">restlistname</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"listname"</span><span class="p">)</span> + <span class="k">if</span> <span class="n">list_name</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="n">restlistname</span><span class="o">.</span><span class="n">lower</span><span class="p">():</span> + <span class="n">listflag</span> <span class="o">=</span> <span class="kc">True</span> + <span class="n">dtarg</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">line</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"dtarget"</span><span class="p">))</span> + <span class="n">lwbound</span> <span class="o">=</span> <span class="n">dtarg</span> <span class="o">-</span> <span class="nb">float</span><span class="p">(</span><span class="n">line</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"dminus"</span><span class="p">))</span> + <span class="n">upbound</span> <span class="o">=</span> <span class="n">dtarg</span> <span class="o">+</span> <span class="nb">float</span><span class="p">(</span><span class="n">line</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"dplus"</span><span class="p">))</span> + <span class="n">xmldists</span><span class="p">[</span><span class="n">restno</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> + <span class="s2">"meta"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"weight"</span><span class="p">:</span> <span class="nb">float</span><span class="p">(</span><span class="n">line</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"weight"</span><span class="p">)),</span> + <span class="s2">"distance"</span><span class="p">:</span> <span class="n">dtarg</span><span class="p">,</span> + <span class="s2">"lower_bound"</span><span class="p">:</span> <span class="n">lwbound</span><span class="p">,</span> + <span class="s2">"upper_bound"</span><span class="p">:</span> <span class="n">upbound</span><span class="p">,</span> + <span class="s2">"active"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> + <span class="s2">"reliable"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> + <span class="s2">"list_name"</span><span class="p">:</span> <span class="n">restlistname</span> + <span class="p">},</span> + <span class="s2">"contrib"</span><span class="p">:</span> <span class="n">collections</span><span class="o">.</span><span class="n">OrderedDict</span><span class="p">()</span> + <span class="p">}</span> + <span class="n">contrib_id</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">xmldists</span><span class="p">[</span><span class="n">restno</span><span class="p">][</span><span class="s2">"contrib"</span><span class="p">])</span> <span class="o">+</span> <span class="mi">1</span> + <span class="n">xmldists</span><span class="p">[</span><span class="n">restno</span><span class="p">][</span><span class="s2">"contrib"</span><span class="p">][</span><span class="n">contrib_id</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> + <span class="s2">"meta"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"weight"</span><span class="p">:</span> <span class="mf">1.0</span> + <span class="p">},</span> + <span class="s2">"spin_pair"</span><span class="p">:</span> <span class="n">collections</span><span class="o">.</span><span class="n">OrderedDict</span><span class="p">([</span> + <span class="p">(</span><span class="n">res1_id</span><span class="p">,</span> <span class="n">atm1_name</span><span class="p">),</span> + <span class="p">(</span><span class="n">res2_id</span><span class="p">,</span> <span class="n">atm2_name</span><span class="p">)</span> + <span class="p">])</span> + <span class="p">}</span> + <span class="c1"># Else add contrib to restraint</span> + <span class="k">elif</span> <span class="n">listflag</span><span class="p">:</span> + <span class="n">contrib_id</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">xmldists</span><span class="p">[</span><span class="n">restno</span><span class="p">][</span><span class="s2">"contrib"</span><span class="p">])</span> <span class="o">+</span> <span class="mi">1</span> + <span class="n">xmldists</span><span class="p">[</span><span class="n">restno</span><span class="p">][</span><span class="s2">"contrib"</span><span class="p">][</span><span class="n">contrib_id</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> + <span class="s2">"meta"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"weight"</span><span class="p">:</span> <span class="mf">1.0</span> + <span class="p">},</span> + <span class="s2">"spin_pair"</span><span class="p">:</span> <span class="n">collections</span><span class="o">.</span><span class="n">OrderedDict</span><span class="p">([</span> + <span class="p">(</span><span class="n">res1_id</span><span class="p">,</span> <span class="n">atm1_name</span><span class="p">),</span> + <span class="p">(</span><span class="n">res2_id</span><span class="p">,</span> <span class="n">atm2_name</span><span class="p">)</span> + <span class="p">])</span> + <span class="p">}</span> + + <span class="c1"># Generate distance restraint file using self.write_dist_xml</span> + <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">xmldists</span><span class="p">)</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Wrote </span><span class="si">%d</span><span class="s2"> xml distance restraints in </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> + <span class="nb">len</span><span class="p">(</span><span class="n">xmldists</span><span class="p">),</span> + <span class="n">xml_path</span><span class="p">)</span> + <span class="n">AriaXMLConverter</span><span class="o">.</span><span class="n">write_dist_xml</span><span class="p">(</span><span class="n">xmldists</span><span class="p">,</span> <span class="n">xml_path</span><span class="p">)</span> + <span class="n">xml_paths</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">xml_path</span><span class="p">)</span> + + <span class="k">return</span> <span class="n">xml_paths</span></div> + +<div class="viewcode-block" id="AriaEcXMLConverter.run_tbl2xml"><a class="viewcode-back" href="../../ariaec.html#ariaec.converter.AriaEcXMLConverter.run_tbl2xml">[docs]</a> <span class="k">def</span> <span class="nf">run_tbl2xml</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""Main command to convert tbl file(s) in ARIA XML Format"""</span> + <span class="c1"># Check if we have the correct args in self.settings</span> + <span class="n">outdir_path</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">tbl2xml</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"output_directory"</span><span class="p">]</span> + <span class="n">molecule_path</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">tbl2xml</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"molecule"</span><span class="p">]</span> + <span class="n">tbl_paths</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">tbl2xml</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"infiles"</span><span class="p">]</span> + <span class="n">list_name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">tbl2xml</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"listname"</span><span class="p">]</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">tbl2xml</span><span class="p">(</span><span class="n">outdir_path</span><span class="p">,</span> <span class="n">molecule_path</span><span class="p">,</span> <span class="n">tbl_paths</span><span class="p">,</span> <span class="n">list_name</span><span class="p">)</span></div></div> +</pre></div> + + </div> + <div class="articleComments"> + + </div> + </div> + <footer> + + + <hr/> + + <div role="contentinfo"> + <p> + © Copyright 2017, Fabrice Allain. + + </p> + </div> + Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. + +</footer> + + </div> + </div> + + </section> + + </div> + + + + + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT:'../../', + VERSION:'0.2', + COLLAPSE_INDEX:false, + FILE_SUFFIX:'.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt' + }; + </script> + <script type="text/javascript" src="../../_static/jquery.js"></script> + <script type="text/javascript" src="../../_static/underscore.js"></script> + <script type="text/javascript" src="../../_static/doctools.js"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + + + + <script type="text/javascript" src="../../_static/js/theme.js"></script> + + + + + <script type="text/javascript"> + jQuery(function () { + SphinxRtdTheme.StickyNav.enable(); + }); + </script> + + +</body> +</html> \ No newline at end of file diff --git a/examples-dev/olds/_build/html/_modules/ariaec/maplot.html b/examples-dev/olds/_build/html/_modules/ariaec/maplot.html new file mode 100644 index 0000000000000000000000000000000000000000..e4f17840856a130027cbcd2d651f9dd857da5584 --- /dev/null +++ b/examples-dev/olds/_build/html/_modules/ariaec/maplot.html @@ -0,0 +1,425 @@ + + +<!DOCTYPE html> +<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> +<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> +<head> + <meta charset="utf-8"> + + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <title>ariaec.maplot — AriaEc 0.2 documentation</title> + + + + + + + + + + + + + + + + + + <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> + + + + + + <link rel="index" title="Index" + href="../../genindex.html"/> + <link rel="search" title="Search" href="../../search.html"/> + <link rel="top" title="AriaEc 0.2 documentation" href="../../index.html"/> + <link rel="up" title="Module code" href="../index.html"/> + + + <script src="../../_static/js/modernizr.min.js"></script> + +</head> + +<body class="wy-body-for-nav" role="document"> + + + <div class="wy-grid-for-nav"> + + + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search"> + + + + <a href="../../index.html" class="icon icon-home"> AriaEc + + + + </a> + + + + + <div class="version"> + 0.2 + </div> + + + + +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + + + </div> + + <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> + + + + + + + <!-- Local TOC --> + <div class="local-toc"></div> + + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> + + + <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> + + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">AriaEc</a> + + </nav> + + + + <div class="wy-nav-content"> + <div class="rst-content"> + + + + + + + + + + + + + + + + +<div role="navigation" aria-label="breadcrumbs navigation"> + + <ul class="wy-breadcrumbs"> + + <li><a href="../../index.html">Docs</a> »</li> + + <li><a href="../index.html">Module code</a> »</li> + + <li>ariaec.maplot</li> + + + <li class="wy-breadcrumbs-aside"> + + + + </li> + + </ul> + + + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <h1>Source code for ariaec.maplot</h1><div class="highlight"><pre> +<span></span><span class="c1"># coding=utf-8</span> +<span class="sd">"""</span> +<span class="sd"> Input/Output aria_ec scripts</span> +<span class="sd">"""</span> +<span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span><span class="p">,</span> <span class="n">division</span><span class="p">,</span> <span class="n">print_function</span> + +<span class="kn">import</span> <span class="nn">sys</span> +<span class="kn">import</span> <span class="nn">json</span> +<span class="kn">import</span> <span class="nn">logging</span> +<span class="kn">from</span> <span class="nn">.common</span> <span class="k">import</span> <span class="n">get_filename</span> +<span class="kn">from</span> <span class="nn">.reader</span> <span class="k">import</span> <span class="n">MapFileListReader</span> +<span class="kn">from</span> <span class="nn">.protmap</span> <span class="k">import</span> <span class="n">MapFilter</span> +<span class="kn">from</span> <span class="nn">.protein</span> <span class="k">import</span> <span class="n">Protein</span> + +<span class="n">LOG</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span> + + +<div class="viewcode-block" id="AriaEcContactMap"><a class="viewcode-back" href="../../ariaec.html#ariaec.maplot.AriaEcContactMap">[docs]</a><span class="k">class</span> <span class="nc">AriaEcContactMap</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> + <span class="sd">"""Contact maplot class"""</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">settings</span><span class="p">):</span> + <span class="c1"># TODO: check_type settings (AriaEcSettings)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span> <span class="o">=</span> <span class="n">settings</span> + <span class="bp">self</span><span class="o">.</span><span class="n">protein</span> <span class="o">=</span> <span class="n">Protein</span><span class="p">(</span><span class="n">settings</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">file_reader</span> <span class="o">=</span> <span class="n">MapFileListReader</span><span class="p">(</span> + <span class="n">cont_def</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">contactdef</span><span class="o">.</span><span class="n">config</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">filter</span> <span class="o">=</span> <span class="n">MapFilter</span><span class="p">(</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">,</span> + <span class="n">nofilter</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no_filter"</span><span class="p">))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">protname</span> <span class="o">=</span> <span class="s1">''</span> + <span class="bp">self</span><span class="o">.</span><span class="n">allresmap</span> <span class="o">=</span> <span class="p">{}</span> + <span class="bp">self</span><span class="o">.</span><span class="n">refmap</span> <span class="o">=</span> <span class="kc">None</span> + <span class="bp">self</span><span class="o">.</span><span class="n">refname</span> <span class="o">=</span> <span class="kc">None</span> + <span class="bp">self</span><span class="o">.</span><span class="n">reftype</span> <span class="o">=</span> <span class="s1">''</span> + +<div class="viewcode-block" id="AriaEcContactMap.run"><a class="viewcode-back" href="../../ariaec.html#ariaec.maplot.AriaEcContactMap.run">[docs]</a> <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""Contact map analysis command"""</span> + <span class="c1"># Check input</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Settings:</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">config</span><span class="p">,</span> + <span class="n">indent</span><span class="o">=</span><span class="mi">4</span><span class="p">))</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Args:</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> + <span class="n">indent</span><span class="o">=</span><span class="mi">4</span><span class="p">))</span> + <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"onlyreport"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">make_infra</span><span class="p">()</span> + <span class="c1"># ----------------------------- Input -------------------------------- #</span> + <span class="bp">self</span><span class="o">.</span><span class="n">protname</span> <span class="o">=</span> <span class="n">get_filename</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"seq"</span><span class="p">,</span> <span class="kc">None</span><span class="p">))</span> + <span class="c1"># Load Sequence file</span> + <span class="bp">self</span><span class="o">.</span><span class="n">protein</span><span class="o">.</span><span class="n">set_aa_sequence</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"seq"</span><span class="p">,</span> <span class="kc">None</span><span class="p">))</span> + <span class="c1"># Load secondary structure prediction file</span> + <span class="bp">self</span><span class="o">.</span><span class="n">protein</span><span class="o">.</span><span class="n">set_sec_struct</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"sspred"</span><span class="p">,</span> + <span class="kc">None</span><span class="p">),</span> + <span class="n">ssdist_filename</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">ssdist</span><span class="p">,</span> + <span class="n">ssidx</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span> + <span class="s2">"ssidx"</span><span class="p">,</span> <span class="kc">False</span><span class="p">))</span> + <span class="c1"># ---------------------------- Processing ---------------------------- #</span> + + <span class="c1"># Reading step</span> + <span class="c1"># ------------</span> + <span class="bp">self</span><span class="o">.</span><span class="n">file_reader</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"infiles"</span><span class="p">),</span> + <span class="n">maptypes</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"contact_types"</span><span class="p">),</span> + <span class="n">protein</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">protein</span><span class="p">,</span> + <span class="n">groupby_method</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span> + <span class="s1">'groupby_method'</span><span class="p">],</span> + <span class="n">scsc</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">scsc_min</span><span class="p">)</span> + + <span class="k">for</span> <span class="n">idx</span><span class="p">,</span> <span class="n">fo</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">file_reader</span><span class="o">.</span><span class="n">maps</span><span class="p">):</span> + <span class="c1"># fo need a maplot in order to wite XML dist restraints</span> + <span class="c1"># TODO: filter pour toutes les map de mapdict !! (fonction remove</span> + <span class="c1"># s'applique sur l'humanidx contenant les residus)</span> + <span class="k">if</span> <span class="n">idx</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2"> map set as reference"</span><span class="p">,</span> <span class="n">fo</span><span class="o">.</span><span class="n">filetype</span><span class="o">.</span><span class="n">capitalize</span><span class="p">())</span> + <span class="bp">self</span><span class="o">.</span><span class="n">refmap</span> <span class="o">=</span> <span class="n">fo</span><span class="o">.</span><span class="n">mapdict</span> + <span class="bp">self</span><span class="o">.</span><span class="n">reftype</span> <span class="o">=</span> <span class="n">fo</span><span class="o">.</span><span class="n">filetype</span> + <span class="bp">self</span><span class="o">.</span><span class="n">refname</span> <span class="o">=</span> <span class="n">fo</span><span class="o">.</span><span class="n">filename</span> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">protname</span><span class="p">)</span> <span class="o">!=</span> <span class="nb">list</span> \ + <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">protname</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span> + + <span class="c1"># Filtering step</span> + <span class="c1"># --------------</span> + <span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"filter"</span><span class="p">)</span> <span class="ow">and</span> <span class="n">idx</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">or</span> \ + <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"filter"</span><span class="p">)</span> + <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">file_reader</span><span class="o">.</span><span class="n">maps</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">):</span> + <span class="c1"># Filtering all maplot except the reference map</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Filtering </span><span class="si">%s</span><span class="s2"> map"</span><span class="p">,</span> <span class="n">fo</span><span class="o">.</span><span class="n">filetype</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">fo</span><span class="o">.</span><span class="n">mapdict</span><span class="p">,</span> <span class="n">fo</span><span class="o">.</span><span class="n">filetype</span><span class="p">,</span> <span class="n">fo</span><span class="o">.</span><span class="n">contactlist</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">protein</span><span class="p">,</span> <span class="n">clashlist</span><span class="o">=</span><span class="n">fo</span><span class="o">.</span><span class="n">clashlist</span><span class="p">,</span> + <span class="n">outprefix</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">protname</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">protname</span><span class="p">)</span> <span class="o">==</span> <span class="nb">list</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">protname</span><span class="p">,</span> + <span class="n">outdir</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">outdir</span><span class="p">)</span> + <span class="c1"># else:</span> + <span class="c1"># Use only position filter</span> + <span class="c1"># self.filter(fo.mapdict, fo.filetype, fo.contactlist,</span> + <span class="c1"># self.protein, clashlist=fo.clashlist,</span> + <span class="c1"># protname=self.protname,</span> + <span class="c1"># outdir=self.settings.outdir, mapfilters="pos")</span> + + <span class="c1"># Save the loaded map into allresmap dict</span> + <span class="bp">self</span><span class="o">.</span><span class="n">allresmap</span><span class="p">[(</span><span class="n">fo</span><span class="o">.</span><span class="n">filename</span> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">protname</span><span class="p">)</span> <span class="o">!=</span> <span class="nb">list</span> <span class="k">else</span> + <span class="bp">self</span><span class="o">.</span><span class="n">protname</span><span class="p">[</span><span class="n">idx</span><span class="p">],</span> <span class="n">fo</span><span class="o">.</span><span class="n">filetype</span><span class="p">,</span> + <span class="n">fo</span><span class="o">.</span><span class="n">filepath</span><span class="p">)]</span> <span class="o">=</span> <span class="n">fo</span><span class="o">.</span><span class="n">mapdict</span> + + <span class="k">try</span><span class="p">:</span> + <span class="n">refmap</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">refmap</span><span class="p">[</span><span class="s2">"maplot"</span><span class="p">]</span> + <span class="k">except</span> <span class="ne">TypeError</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"First contact map should be a valid file"</span><span class="p">)</span> + <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> + + <span class="c1"># nb_c = int(len(self.protein.aa_sequence.sequence) *</span> + <span class="c1"># self.settings.setup.config.get("n_factor"))</span> + <span class="n">plotparams</span> <span class="o">=</span> <span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> + <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">'size_fig'</span><span class="p">,</span> <span class="s1">'plot_ext'</span><span class="p">,</span> <span class="s1">'plot_dpi'</span><span class="p">)}</span> + <span class="n">outdir</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">outdir</span> + + <span class="c1"># Reference contact map plot</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"save_fig"</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> \ + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"onlyreport"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> + <span class="n">refmap</span><span class="o">.</span><span class="n">saveplot</span><span class="p">(</span><span class="n">outdir</span><span class="o">=</span><span class="n">outdir</span><span class="p">,</span> + <span class="n">outprefix</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">protname</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">protname</span><span class="p">)</span> <span class="o">==</span> <span class="nb">list</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">protname</span><span class="p">,</span> + <span class="o">**</span><span class="n">plotparams</span><span class="p">)</span> + + <span class="c1"># Merge maps if asked by the user</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"merge"</span><span class="p">,</span> <span class="kc">None</span><span class="p">):</span> + <span class="c1"># Combine map with other maps</span> + <span class="n">mergelist</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"merge"</span><span class="p">)</span> + <span class="c1"># LOG.info("Merging contact maps (%s)" % ', '.join(mergelist))</span> + <span class="k">for</span> <span class="n">mergetype</span> <span class="ow">in</span> <span class="n">mergelist</span><span class="p">:</span> + <span class="k">if</span> <span class="n">mergetype</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">allresmap</span><span class="o">.</span><span class="n">keys</span><span class="p">())[</span><span class="mi">0</span><span class="p">]:</span> + <span class="n">mergemaps</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">allresmap</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">mergetype</span><span class="p">)</span> + <span class="n">mergecontactmap</span> <span class="o">=</span> <span class="n">mergemaps</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"maplot"</span><span class="p">)</span> + <span class="k">for</span> <span class="n">mapname</span><span class="p">,</span> <span class="n">mapt</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">allresmap</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span> + <span class="k">if</span> <span class="n">mapt</span> <span class="o">!=</span> <span class="bp">self</span><span class="o">.</span><span class="n">reftype</span><span class="p">:</span> + <span class="c1"># TODO: DON'T WORK !!!!</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Merging </span><span class="si">%s</span><span class="s2"> with </span><span class="si">%s</span><span class="s2"> map"</span><span class="p">,</span> + <span class="n">mergetype</span><span class="p">,</span> <span class="n">mapt</span><span class="p">)</span> + <span class="n">up_map</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">allresmap</span><span class="p">[</span><span class="n">mapt</span><span class="p">][</span><span class="s2">"maplot"</span><span class="p">]</span> + <span class="n">up_map</span><span class="p">[:]</span> <span class="o">=</span> <span class="n">up_map</span><span class="p">[:]</span> <span class="o">+</span> <span class="n">mergecontactmap</span><span class="p">[:]</span> + <span class="n">mergekey</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">_</span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">mapt</span><span class="p">,</span> <span class="n">mergetype</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">allresmap</span><span class="p">[</span><span class="n">mergekey</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> + <span class="bp">self</span><span class="o">.</span><span class="n">allresmap</span><span class="p">[</span><span class="n">mergekey</span><span class="p">][</span><span class="s2">"maplot"</span><span class="p">]</span> <span class="o">=</span> <span class="n">up_map</span> + <span class="k">raise</span> <span class="ne">NotImplementedError</span> + + <span class="c1"># ------------------------------ Output ------------------------------ #</span> + + <span class="k">for</span> <span class="n">mapname</span><span class="p">,</span> <span class="n">mapt</span><span class="p">,</span> <span class="n">mapath</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">allresmap</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span> + <span class="n">prefix</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"prefix"</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"prefix"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> + + <span class="k">if</span> <span class="n">mapname</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">refname</span><span class="p">:</span> + <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"onlyreport"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> + <span class="n">refmap</span><span class="o">.</span><span class="n">write_contacts</span><span class="p">(</span><span class="n">mapname</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span> + <span class="n">outdir</span><span class="o">=</span><span class="n">outdir</span><span class="p">,</span> + <span class="n">scoremap</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">refmap</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"scoremap"</span><span class="p">,</span> + <span class="kc">None</span><span class="p">))</span> + <span class="k">continue</span> + + <span class="n">prefix</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">_</span><span class="si">%s</span><span class="s2">vs</span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">protname</span><span class="p">,</span> <span class="n">mapt</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">reftype</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"prefix"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> + <span class="n">scoremap</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">allresmap</span><span class="p">[(</span><span class="n">mapname</span><span class="p">,</span> <span class="n">mapt</span><span class="p">,</span> <span class="n">mapath</span><span class="p">)]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span> + <span class="s1">'scoremap'</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> + <span class="c1"># if self.allresmap[mapt].get("maplot") is not None and \</span> + <span class="c1"># self.allresmap[mapt].get("scoremap") is not None:</span> + <span class="c1"># Get top contact map/list</span> + <span class="c1"># cmpmap = self.allresmap[mapt]["maplot"].topmap(</span> + <span class="c1"># self.allresmap[mapt]["scoremap"], nb_c)</span> + <span class="c1"># cmplist = self.allresmap[mapt]['scoremap'].sortedset(</span> + <span class="c1"># human_idx=True)[:nb_c]</span> + <span class="c1"># elif self.allresmap[mapt].get("maplot") is not None:</span> + <span class="c1"># If no score given, use all contact list</span> + <span class="n">cmpmap</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">allresmap</span><span class="p">[(</span><span class="n">mapname</span><span class="p">,</span> <span class="n">mapt</span><span class="p">,</span> <span class="n">mapath</span><span class="p">)][</span><span class="s2">"maplot"</span><span class="p">]</span> + <span class="n">cmplist</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">allresmap</span><span class="p">[(</span><span class="n">mapname</span><span class="p">,</span> <span class="n">mapt</span><span class="p">,</span> <span class="n">mapath</span><span class="p">)][</span> + <span class="s1">'maplot'</span><span class="p">]</span><span class="o">.</span><span class="n">contact_list</span><span class="p">(</span><span class="n">human_idx</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="c1"># else:</span> + <span class="c1"># LOG.warning("%s map doesn't have any score related. Can't "</span> + <span class="c1"># "define top list related to this map", mapt)</span> + <span class="c1"># continue</span> + + <span class="c1"># TODO: only one function for output files</span> + <span class="c1"># Write contact list in txt file</span> + <span class="n">refmap</span><span class="o">.</span><span class="n">report</span><span class="p">(</span><span class="n">cmpmap</span><span class="p">,</span> <span class="n">scoremap</span><span class="o">=</span><span class="n">scoremap</span><span class="p">,</span> + <span class="n">outdir</span><span class="o">=</span><span class="n">outdir</span><span class="p">,</span> <span class="n">outprefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span> + <span class="n">plotag</span><span class="o">=</span><span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span> + <span class="s2">"onlyreport"</span><span class="p">),</span> + <span class="n">plotdir</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">infra</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"graphics"</span><span class="p">,</span> <span class="n">outdir</span><span class="p">)</span> + <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span> + <span class="s2">"onlyreport"</span><span class="p">)</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">outdir</span><span class="p">)</span> + <span class="c1"># Contact map comparison plot</span> + <span class="c1"># TODO: elementwise error with compare method</span> + <span class="c1"># Write cmp stats</span> + <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"onlyreport"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> + <span class="n">cmpmap</span><span class="o">.</span><span class="n">write_contacts</span><span class="p">(</span><span class="n">mapname</span><span class="p">,</span> + <span class="n">scoremap</span><span class="o">=</span><span class="n">scoremap</span><span class="p">,</span> + <span class="n">outdir</span><span class="o">=</span><span class="n">outdir</span><span class="p">)</span> + <span class="n">cmpmap</span><span class="o">.</span><span class="n">compare_contactmap</span><span class="p">(</span><span class="n">refmap</span><span class="p">,</span> <span class="n">cmplist</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> + <span class="n">distmap</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">refmap</span><span class="p">[</span><span class="s2">"distmap"</span><span class="p">],</span> + <span class="n">human_idx</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> + <span class="n">outdir</span><span class="o">=</span><span class="n">outdir</span><span class="p">)</span> + <span class="n">refmap</span><span class="o">.</span><span class="n">compareplot</span><span class="p">(</span><span class="n">cmpmap</span><span class="p">,</span> <span class="n">outprefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span> + <span class="n">outdir</span><span class="o">=</span><span class="n">outdir</span><span class="p">,</span> + <span class="n">save_fig</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span> + <span class="s2">"save_fig"</span><span class="p">),</span> + <span class="n">alpha</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span> + <span class="s2">"alpha"</span><span class="p">),</span> + <span class="o">**</span><span class="n">plotparams</span><span class="p">)</span></div></div> + <span class="c1"># Contingency table</span> + <span class="c1"># print(cmpmap.to_series())</span> + <span class="c1"># LOG.info(pd.crosstab(cmpmap.values, refmap.values,</span> + <span class="c1"># rownames=[mapt], colnames=[self.reftype]))</span> +</pre></div> + + </div> + <div class="articleComments"> + + </div> + </div> + <footer> + + + <hr/> + + <div role="contentinfo"> + <p> + © Copyright 2017, Fabrice Allain. + + </p> + </div> + Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. + +</footer> + + </div> + </div> + + </section> + + </div> + + + + + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT:'../../', + VERSION:'0.2', + COLLAPSE_INDEX:false, + FILE_SUFFIX:'.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt' + }; + </script> + <script type="text/javascript" src="../../_static/jquery.js"></script> + <script type="text/javascript" src="../../_static/underscore.js"></script> + <script type="text/javascript" src="../../_static/doctools.js"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + + + + <script type="text/javascript" src="../../_static/js/theme.js"></script> + + + + + <script type="text/javascript"> + jQuery(function () { + SphinxRtdTheme.StickyNav.enable(); + }); + </script> + + +</body> +</html> \ No newline at end of file diff --git a/examples-dev/olds/_build/html/_modules/ariaec/ndconv.html b/examples-dev/olds/_build/html/_modules/ariaec/ndconv.html new file mode 100644 index 0000000000000000000000000000000000000000..139d782c09230211c3c3e7b5fb3750d91865af40 --- /dev/null +++ b/examples-dev/olds/_build/html/_modules/ariaec/ndconv.html @@ -0,0 +1,385 @@ + + +<!DOCTYPE html> +<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> +<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> +<head> + <meta charset="utf-8"> + + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <title>ariaec.ndconv — AriaEc 0.2 documentation</title> + + + + + + + + + + + + + + + + + + <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> + + + + + + <link rel="index" title="Index" + href="../../genindex.html"/> + <link rel="search" title="Search" href="../../search.html"/> + <link rel="top" title="AriaEc 0.2 documentation" href="../../index.html"/> + <link rel="up" title="Module code" href="../index.html"/> + + + <script src="../../_static/js/modernizr.min.js"></script> + +</head> + +<body class="wy-body-for-nav" role="document"> + + + <div class="wy-grid-for-nav"> + + + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search"> + + + + <a href="../../index.html" class="icon icon-home"> AriaEc + + + + </a> + + + + + <div class="version"> + 0.2 + </div> + + + + +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + + + </div> + + <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> + + + + + + + <!-- Local TOC --> + <div class="local-toc"></div> + + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> + + + <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> + + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">AriaEc</a> + + </nav> + + + + <div class="wy-nav-content"> + <div class="rst-content"> + + + + + + + + + + + + + + + + +<div role="navigation" aria-label="breadcrumbs navigation"> + + <ul class="wy-breadcrumbs"> + + <li><a href="../../index.html">Docs</a> »</li> + + <li><a href="../index.html">Module code</a> »</li> + + <li>ariaec.ndconv</li> + + + <li class="wy-breadcrumbs-aside"> + + + + </li> + + </ul> + + + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <h1>Source code for ariaec.ndconv</h1><div class="highlight"><pre> +<span></span><span class="c1"># coding=utf-8</span> +<span class="sd">"""</span> +<span class="sd"> Network deconvolution tool</span> +<span class="sd">"""</span> +<span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span><span class="p">,</span> <span class="n">division</span><span class="p">,</span> <span class="n">print_function</span> + +<span class="kn">import</span> <span class="nn">logging</span> +<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> + + +<span class="n">LOG</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span> + + +<div class="viewcode-block" id="net_deconv"><a class="viewcode-back" href="../../ariaec.html#ariaec.ndconv.net_deconv">[docs]</a><span class="k">def</span> <span class="nf">net_deconv</span><span class="p">(</span><span class="n">npmat</span><span class="p">,</span> <span class="n">beta</span><span class="o">=</span><span class="mf">0.99</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">control</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> This is a python implementation/translation of network deconvolution by</span> +<span class="sd"> MIT-KELLIS LAB</span> +<span class="sd"> </span> +<span class="sd"> </span> +<span class="sd"> LICENSE: MIT-KELLIS LAB</span> +<span class="sd"> </span> +<span class="sd"> </span> +<span class="sd"> AUTHORS:</span> +<span class="sd"> Algorithm was programmed by Soheil Feizi.</span> +<span class="sd"> Paper authors are S. Feizi, D. Marbach, M. Medard and M. Kellis</span> +<span class="sd"> Python implementation: Gideon Rosenthal</span> +<span class="sd"> </span> +<span class="sd"> REFERENCES:</span> +<span class="sd"> For more details, see the following paper:</span> +<span class="sd"> Network Deconvolution as a General Method to Distinguish</span> +<span class="sd"> Direct Dependencies over Networks</span> +<span class="sd"> By: Soheil Feizi, Daniel Marbach, Muriel Medard and Manolis Kellis</span> +<span class="sd"> Nature Biotechnology</span> +<span class="sd"> </span> +<span class="sd"> --------------------------------------------------------------------------</span> +<span class="sd"> ND.m: network deconvolution</span> +<span class="sd"> --------------------------------------------------------------------------</span> +<span class="sd"> </span> +<span class="sd"> DESCRIPTION:</span> +<span class="sd"> </span> +<span class="sd"> USAGE:</span> +<span class="sd"> mat_nd = ND(npmat)</span> +<span class="sd"> mat_nd = ND(npmat,beta)</span> +<span class="sd"> mat_nd = ND(npmat,beta,alpha,control)</span> +<span class="sd"> </span> +<span class="sd"> </span> +<span class="sd"> INPUT ARGUMENTS:</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> npmat :</span> +<span class="sd"> Input matrix, if it is a square matrix, the program assumes</span> +<span class="sd"> it is a relevance matrix where npmat(i,j) represents the</span> +<span class="sd"> similarity content between nodes i and j. Elements of</span> +<span class="sd"> matrix should be non-negative.</span> +<span class="sd"> optional parameters:</span> +<span class="sd"> beta :</span> +<span class="sd"> Scaling parameter, the program maps the largest absolute</span> +<span class="sd"> eigenvalue of the direct dependency matrix to beta. It</span> +<span class="sd"> should be between 0 and 1. (Default value = 0.99)</span> +<span class="sd"> alpha :</span> +<span class="sd"> fraction of edges of the observed dependency matrix to be</span> +<span class="sd"> kept in deconvolution process. (Default value = 1)</span> +<span class="sd"> control :</span> +<span class="sd"> if 0, displaying direct weights for observed</span> +<span class="sd"> interactions, if 1, displaying direct weights for both</span> +<span class="sd"> observed and</span> +<span class="sd"> non-observed interactions.</span> +<span class="sd"> OUTPUT ARGUMENTS:</span> +<span class="sd"> mat_nd Output deconvolved matrix (direct dependency matrix). Its</span> +<span class="sd"> components</span> +<span class="sd"> represent direct edge weights of observed interactions.</span> +<span class="sd"> Choosing top direct interactions (a cut-off) depends on</span> +<span class="sd"> the application and</span> +<span class="sd"> is not implemented in this code.</span> +<span class="sd"> To apply ND on regulatory networks, follow steps explained in</span> +<span class="sd"> Supplementary notes</span> +<span class="sd"> 1.4.1 and 2.1 and 2.3 of the paper.</span> +<span class="sd"> In this implementation, input matrices are made symmetric.</span> +<span class="sd"> **************************************************************************</span> +<span class="sd"> loading scaling and thresholding parameters (Default value = 0)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="kn">import</span> <span class="nn">scipy.stats.mstats</span> <span class="k">as</span> <span class="nn">stat</span> + <span class="kn">from</span> <span class="nn">numpy</span> <span class="k">import</span> <span class="n">linalg</span> <span class="k">as</span> <span class="n">la</span> + + <span class="k">if</span> <span class="n">beta</span> <span class="o">>=</span> <span class="mi">1</span> <span class="ow">or</span> <span class="n">beta</span> <span class="o"><=</span> <span class="mi">0</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s1">'error: beta should be in (0,1)'</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">alpha</span> <span class="o">></span> <span class="mi">1</span> <span class="ow">or</span> <span class="n">alpha</span> <span class="o"><=</span> <span class="mi">0</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s1">'error: alpha should be in (0,1)'</span><span class="p">)</span> + + <span class="sd">'''</span> +<span class="sd"> ***********************************</span> +<span class="sd"> Processing the input matrix</span> +<span class="sd"> diagonal values are filtered</span> +<span class="sd"> '''</span> + + <span class="c1"># n = npmat.shape[0]</span> + <span class="n">np</span><span class="o">.</span><span class="n">fill_diagonal</span><span class="p">(</span><span class="n">npmat</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> + + <span class="sd">'''</span> +<span class="sd"> Thresholding the input matrix</span> +<span class="sd"> '''</span> + <span class="n">y</span> <span class="o">=</span> <span class="n">stat</span><span class="o">.</span><span class="n">mquantiles</span><span class="p">(</span><span class="n">npmat</span><span class="p">[:],</span> <span class="n">prob</span><span class="o">=</span><span class="p">[</span><span class="mi">1</span> <span class="o">-</span> <span class="n">alpha</span><span class="p">])</span> + <span class="n">th</span> <span class="o">=</span> <span class="n">npmat</span> <span class="o">>=</span> <span class="n">y</span> + <span class="n">mat_th</span> <span class="o">=</span> <span class="n">npmat</span> <span class="o">*</span> <span class="n">th</span> + + <span class="sd">'''</span> +<span class="sd"> making the matrix symetric if already not</span> +<span class="sd"> '''</span> + <span class="n">mat_th</span> <span class="o">=</span> <span class="p">(</span><span class="n">mat_th</span> <span class="o">+</span> <span class="n">mat_th</span><span class="o">.</span><span class="n">T</span><span class="p">)</span> <span class="o">/</span> <span class="mi">2</span> + + <span class="sd">'''</span> +<span class="sd"> ***********************************</span> +<span class="sd"> eigen decomposition</span> +<span class="sd"> '''</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">'Decomposition and deconvolution...'</span><span class="p">)</span> + + <span class="c1"># noinspection PyTypeChecker</span> + <span class="n">dv</span><span class="p">,</span> <span class="n">u</span> <span class="o">=</span> <span class="n">la</span><span class="o">.</span><span class="n">eigh</span><span class="p">(</span><span class="n">mat_th</span><span class="p">)</span> + <span class="n">d</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">diag</span><span class="p">(</span><span class="n">dv</span><span class="p">)</span> + <span class="n">lam_n</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">diag</span><span class="p">(</span><span class="n">d</span><span class="p">)),</span> <span class="mi">0</span><span class="p">))</span> + <span class="n">lam_p</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">diag</span><span class="p">(</span><span class="n">d</span><span class="p">)),</span> <span class="mi">0</span><span class="p">))</span> + + <span class="n">m1</span> <span class="o">=</span> <span class="n">lam_p</span> <span class="o">*</span> <span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="n">beta</span><span class="p">)</span> <span class="o">/</span> <span class="n">beta</span> + <span class="n">m2</span> <span class="o">=</span> <span class="n">lam_n</span> <span class="o">*</span> <span class="p">(</span><span class="mi">1</span> <span class="o">+</span> <span class="n">beta</span><span class="p">)</span> <span class="o">/</span> <span class="n">beta</span> + <span class="n">m</span> <span class="o">=</span> <span class="nb">max</span><span class="p">(</span><span class="n">m1</span><span class="p">,</span> <span class="n">m2</span><span class="p">)</span> + + <span class="c1"># network deconvolution</span> + <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">d</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]):</span> + <span class="n">d</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">d</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="n">i</span><span class="p">])</span> <span class="o">/</span> <span class="p">(</span><span class="n">m</span> <span class="o">+</span> <span class="n">d</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="n">i</span><span class="p">])</span> + + <span class="n">mat_new1</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">u</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="n">la</span><span class="o">.</span><span class="n">inv</span><span class="p">(</span><span class="n">u</span><span class="p">)))</span> + + <span class="sd">'''</span> + +<span class="sd"> ***********************************</span> +<span class="sd"> displaying direct weights</span> +<span class="sd"> '''</span> + <span class="k">if</span> <span class="n">control</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> + <span class="n">ind_edges</span> <span class="o">=</span> <span class="p">(</span><span class="n">mat_th</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="o">*</span> <span class="mf">1.0</span> + <span class="n">ind_nonedges</span> <span class="o">=</span> <span class="p">(</span><span class="n">mat_th</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="o">*</span> <span class="mf">1.0</span> + <span class="n">m1</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">npmat</span> <span class="o">*</span> <span class="n">ind_nonedges</span><span class="p">))</span> + <span class="n">m2</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">mat_new1</span><span class="p">))</span> + <span class="n">mat_new2</span> <span class="o">=</span> <span class="p">(</span><span class="n">mat_new1</span> <span class="o">+</span> <span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">m1</span> <span class="o">-</span> <span class="n">m2</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span> <span class="o">*</span> <span class="n">ind_edges</span> <span class="o">+</span> <span class="p">(</span> + <span class="n">npmat</span> <span class="o">*</span> <span class="n">ind_nonedges</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">m2</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">mat_new1</span><span class="p">))</span> + <span class="n">mat_new2</span> <span class="o">=</span> <span class="p">(</span><span class="n">mat_new1</span> <span class="o">+</span> <span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="o">-</span><span class="n">m2</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span> + + <span class="sd">'''</span> +<span class="sd"> ***********************************</span> +<span class="sd"> linearly mapping the deconvolved matrix to be between 0 and 1</span> +<span class="sd"> '''</span> + <span class="n">m1</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">mat_new2</span><span class="p">))</span> + <span class="n">m2</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">mat_new2</span><span class="p">))</span> + <span class="n">mat_nd</span> <span class="o">=</span> <span class="p">(</span><span class="n">mat_new2</span> <span class="o">-</span> <span class="n">m1</span><span class="p">)</span> <span class="o">/</span> <span class="p">(</span><span class="n">m2</span> <span class="o">-</span> <span class="n">m1</span><span class="p">)</span> + + <span class="k">return</span> <span class="n">mat_nd</span></div> +</pre></div> + + </div> + <div class="articleComments"> + + </div> + </div> + <footer> + + + <hr/> + + <div role="contentinfo"> + <p> + © Copyright 2017, Fabrice Allain. + + </p> + </div> + Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. + +</footer> + + </div> + </div> + + </section> + + </div> + + + + + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT:'../../', + VERSION:'0.2', + COLLAPSE_INDEX:false, + FILE_SUFFIX:'.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt' + }; + </script> + <script type="text/javascript" src="../../_static/jquery.js"></script> + <script type="text/javascript" src="../../_static/underscore.js"></script> + <script type="text/javascript" src="../../_static/doctools.js"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + + + + <script type="text/javascript" src="../../_static/js/theme.js"></script> + + + + + <script type="text/javascript"> + jQuery(function () { + SphinxRtdTheme.StickyNav.enable(); + }); + </script> + + +</body> +</html> \ No newline at end of file diff --git a/examples-dev/olds/_build/html/_modules/ariaec/pdbdist.html b/examples-dev/olds/_build/html/_modules/ariaec/pdbdist.html new file mode 100644 index 0000000000000000000000000000000000000000..e669fdc0a6fdbf34be5783377f2ddc9b5db0e8c8 --- /dev/null +++ b/examples-dev/olds/_build/html/_modules/ariaec/pdbdist.html @@ -0,0 +1,646 @@ + + +<!DOCTYPE html> +<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> +<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> +<head> + <meta charset="utf-8"> + + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <title>ariaec.pdbdist — AriaEc 0.2 documentation</title> + + + + + + + + + + + + + + + + + + <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> + + + + + + <link rel="index" title="Index" + href="../../genindex.html"/> + <link rel="search" title="Search" href="../../search.html"/> + <link rel="top" title="AriaEc 0.2 documentation" href="../../index.html"/> + <link rel="up" title="Module code" href="../index.html"/> + + + <script src="../../_static/js/modernizr.min.js"></script> + +</head> + +<body class="wy-body-for-nav" role="document"> + + + <div class="wy-grid-for-nav"> + + + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search"> + + + + <a href="../../index.html" class="icon icon-home"> AriaEc + + + + </a> + + + + + <div class="version"> + 0.2 + </div> + + + + +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + + + </div> + + <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> + + + + + + + <!-- Local TOC --> + <div class="local-toc"></div> + + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> + + + <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> + + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">AriaEc</a> + + </nav> + + + + <div class="wy-nav-content"> + <div class="rst-content"> + + + + + + + + + + + + + + + + +<div role="navigation" aria-label="breadcrumbs navigation"> + + <ul class="wy-breadcrumbs"> + + <li><a href="../../index.html">Docs</a> »</li> + + <li><a href="../index.html">Module code</a> »</li> + + <li>ariaec.pdbdist</li> + + + <li class="wy-breadcrumbs-aside"> + + + + </li> + + </ul> + + + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <h1>Source code for ariaec.pdbdist</h1><div class="highlight"><pre> +<span></span><span class="c1"># coding=utf-8</span> +<span class="sd">"""</span> +<span class="sd"> PDB distance distribution generation</span> +<span class="sd">"""</span> + +<span class="kn">import</span> <span class="nn">os</span> +<span class="kn">import</span> <span class="nn">sys</span> +<span class="kn">import</span> <span class="nn">logging</span> +<span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span> +<span class="kn">import</span> <span class="nn">pbxplore</span> <span class="k">as</span> <span class="nn">pbx</span> +<span class="kn">from</span> <span class="nn">glob</span> <span class="k">import</span> <span class="n">glob</span> + +<span class="kn">from</span> <span class="nn">Bio.PDB</span> <span class="k">import</span> <span class="n">PDBList</span><span class="p">,</span> <span class="n">PDBParser</span><span class="p">,</span> <span class="n">Selection</span><span class="p">,</span> <span class="n">is_aa</span><span class="p">,</span> <span class="n">NeighborSearch</span><span class="p">,</span> \ + <span class="n">MMCIFParser</span> +<span class="kn">from</span> <span class="nn">Bio.PDB.DSSP</span> <span class="k">import</span> <span class="n">dssp_dict_from_pdb_file</span> +<span class="kn">from</span> <span class="nn">future.utils</span> <span class="k">import</span> <span class="n">iteritems</span> +<span class="kn">from</span> <span class="nn">collections</span> <span class="k">import</span> <span class="n">defaultdict</span><span class="p">,</span> <span class="n">OrderedDict</span> + +<span class="c1"># from .base import ppdict</span> +<span class="kn">from</span> <span class="nn">.common</span> <span class="k">import</span> <span class="n">Capturing</span> +<span class="kn">from</span> <span class="nn">.reader</span> <span class="k">import</span> <span class="n">CulledPdbFile</span> +<span class="kn">from</span> <span class="nn">.protmap</span> <span class="k">import</span> <span class="n">ResAtmMap</span> + +<span class="kn">from</span> <span class="nn">aria.legacy.AminoAcid</span> <span class="k">import</span> <span class="n">AminoAcid</span> + +<span class="n">LOG</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span> + + +<div class="viewcode-block" id="PDBDist"><a class="viewcode-back" href="../../ariaec.html#ariaec.pdbdist.PDBDist">[docs]</a><span class="k">class</span> <span class="nc">PDBDist</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Extract pdb distance distribution from culled list of pdb files provided by</span> +<span class="sd"> PICSES server [G. Wang and R. L. Dunbrack, Jr. PISCES: a protein sequence</span> +<span class="sd"> culling server. Bioinformatics, 19:1589-1591, 2003.] with Bio.PDB tools</span> +<span class="sd"> [Hamelryck, T., Manderick, B. (2003) PDB pdbparser and structure class</span> +<span class="sd"> implemented in Python. Bioinformatics 19: 2308–2310]</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">settings</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span> <span class="o">=</span> <span class="n">settings</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">_obsoletedir</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbdist</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span> + <span class="s1">'obsolete_directory'</span><span class="p">,</span> <span class="s1">'/tmp/obsolete'</span><span class="p">)</span> + <span class="c1"># Setting trash directory for old downloaded pdbs</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">access</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_obsoletedir</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">F_OK</span><span class="p">):</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2"> directory does not exist. Making a new directory"</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_obsoletedir</span><span class="p">)</span> + <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_obsoletedir</span><span class="p">)</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">pdblist</span> <span class="o">=</span> <span class="n">PDBList</span><span class="p">(</span><span class="n">obsolete_pdb</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_obsoletedir</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">pdbparser</span> <span class="o">=</span> <span class="n">PDBParser</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mmcifparser</span> <span class="o">=</span> <span class="n">MMCIFParser</span><span class="p">()</span> + +<div class="viewcode-block" id="PDBDist.get_proteinblocks"><a class="viewcode-back" href="../../ariaec.html#ariaec.pdbdist.PDBDist.get_proteinblocks">[docs]</a> <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">get_proteinblocks</span><span class="p">(</span><span class="n">pdb</span><span class="p">,</span> <span class="n">chain</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Get Protein Block assignment index for chain with pbxplore</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> pdb : pdb file path</span> +<span class="sd"> </span> +<span class="sd"> chain : str</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">with</span> <span class="n">Capturing</span><span class="p">()</span> <span class="k">as</span> <span class="n">output</span><span class="p">:</span> + <span class="n">chain</span> <span class="o">=</span> <span class="p">[</span><span class="n">ch</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="k">for</span> <span class="n">ch</span> <span class="ow">in</span> <span class="n">pbx</span><span class="o">.</span><span class="n">chains_from_files</span><span class="p">([</span><span class="n">pdb</span><span class="p">])</span> + <span class="k">if</span> <span class="n">ch</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="n">chain</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> + <span class="k">if</span> <span class="n">output</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">output</span><span class="p">)</span> + + <span class="c1"># Assign protein blocks</span> + <span class="n">tmpblocks</span> <span class="o">=</span> <span class="n">pbx</span><span class="o">.</span><span class="n">assign</span><span class="p">(</span><span class="n">chain</span><span class="o">.</span><span class="n">get_phi_psi_angles</span><span class="p">())</span> + <span class="c1"># Get related list of resid</span> + <span class="n">sequence</span> <span class="o">=</span> <span class="nb">set</span><span class="p">([</span><span class="n">atm</span><span class="o">.</span><span class="n">resid</span> <span class="k">for</span> <span class="n">atm</span> <span class="ow">in</span> <span class="n">chain</span><span class="o">.</span><span class="n">atoms</span><span class="p">])</span> + <span class="c1"># In case of missing residues, define result as default dict</span> + <span class="n">pblocks</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="s1">''</span><span class="p">)</span> + + <span class="k">for</span> <span class="n">idx</span><span class="p">,</span> <span class="n">res_id</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">sequence</span><span class="p">):</span> + <span class="n">pblocks</span><span class="p">[</span><span class="n">res_id</span><span class="p">]</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="n">tmpblocks</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span> + + <span class="k">return</span> <span class="n">pblocks</span></div> + + <span class="c1"># TODO: similar function in another part of the package, have to merge them</span> +<div class="viewcode-block" id="PDBDist.get_secstructs"><a class="viewcode-back" href="../../ariaec.html#ariaec.pdbdist.PDBDist.get_secstructs">[docs]</a> <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">get_secstructs</span><span class="p">(</span><span class="n">backbone</span><span class="p">,</span> <span class="n">dssp_dict</span><span class="p">,</span> <span class="n">chain</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Return related secondary structure dictionary for each backbone residue</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> backbone : :obj: `list` of :obj: `Bio.PDB.Residue.Residue`</span> +<span class="sd"> List of bacbkone residues</span> +<span class="sd"> dssp_dict :</span> +<span class="sd"> </span> +<span class="sd"> chain :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Computing secondary structure index"</span><span class="p">)</span> + <span class="n">ss_idx</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="s1">''</span><span class="p">)</span> + <span class="n">ss_count</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'H'</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'E'</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'X'</span><span class="p">:</span> <span class="mi">1</span><span class="p">}</span> + + <span class="c1"># Sort backbone by resid</span> + <span class="n">backbone</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">backbone</span><span class="p">,</span> <span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">resx</span><span class="p">:</span> <span class="n">resx</span><span class="o">.</span><span class="n">id</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> + + <span class="k">for</span> <span class="n">idx</span><span class="p">,</span> <span class="n">res_x</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">backbone</span><span class="p">):</span> + + <span class="n">resid_x</span> <span class="o">=</span> <span class="n">res_x</span><span class="o">.</span><span class="n">id</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> + <span class="c1"># Get secondary structure in dssp dict or set ss as X element</span> + <span class="n">ss_x</span> <span class="o">=</span> <span class="n">dssp_dict</span><span class="o">.</span><span class="n">get</span><span class="p">((</span><span class="n">chain</span><span class="p">,</span> <span class="p">(</span><span class="s2">" "</span><span class="p">,</span> <span class="n">resid_x</span><span class="p">,</span> <span class="s2">" "</span><span class="p">)),</span> <span class="p">(</span><span class="s2">""</span><span class="p">,</span> <span class="s2">"X"</span><span class="p">))[</span><span class="mi">1</span><span class="p">]</span> + <span class="n">ss_x</span> <span class="o">=</span> <span class="s2">"X"</span> <span class="k">if</span> <span class="n">ss_x</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">"H"</span><span class="p">,</span> <span class="s2">"E"</span><span class="p">]</span> <span class="k">else</span> <span class="n">ss_x</span> + <span class="c1"># Udate secondary structure index for residue x</span> + <span class="n">ss_idx</span><span class="p">[</span><span class="n">resid_x</span><span class="p">]</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%s%d</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">ss_x</span><span class="p">,</span> <span class="n">ss_count</span><span class="p">[</span><span class="n">ss_x</span><span class="p">])</span> + + <span class="c1"># Check if next residue still belongs to the same secondary</span> + <span class="c1"># structure</span> + <span class="k">if</span> <span class="n">idx</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="n">backbone</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">:</span> + <span class="n">resid_j</span> <span class="o">=</span> <span class="n">backbone</span><span class="p">[</span><span class="n">idx</span> <span class="o">+</span> <span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">id</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> + <span class="n">ss_j</span> <span class="o">=</span> <span class="n">dssp_dict</span><span class="o">.</span><span class="n">get</span><span class="p">((</span><span class="n">chain</span><span class="p">,</span> <span class="p">(</span><span class="s2">" "</span><span class="p">,</span> <span class="n">resid_j</span><span class="p">,</span> <span class="s2">" "</span><span class="p">)),</span> <span class="p">(</span><span class="s2">""</span><span class="p">,</span> <span class="s2">"X"</span><span class="p">))[</span><span class="mi">1</span><span class="p">]</span> + <span class="n">ss_j</span> <span class="o">=</span> <span class="s2">"X"</span> <span class="k">if</span> <span class="n">ss_j</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">"H"</span><span class="p">,</span> <span class="s2">"E"</span><span class="p">]</span> <span class="k">else</span> <span class="n">ss_j</span> + + <span class="k">if</span> <span class="n">ss_x</span> <span class="o">!=</span> <span class="n">ss_j</span><span class="p">:</span> + <span class="c1"># If end of secondary structure element, increase related ss</span> + <span class="c1"># count</span> + <span class="n">ss_count</span><span class="p">[</span><span class="n">ss_x</span><span class="p">]</span> <span class="o">+=</span> <span class="mi">1</span> + + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">ss_idx</span><span class="p">)</span> + <span class="k">return</span> <span class="n">ss_idx</span></div> + +<div class="viewcode-block" id="PDBDist.pdbdists"><a class="viewcode-back" href="../../ariaec.html#ariaec.pdbdist.PDBDist.pdbdists">[docs]</a> <span class="k">def</span> <span class="nf">pdbdists</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pdb</span><span class="p">,</span> <span class="n">pdbid</span><span class="p">,</span> <span class="n">chain</span><span class="p">,</span> <span class="n">pair_list</span><span class="o">=</span><span class="s2">"all"</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Get distance matrix from pdb file and write distances into output file</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> pdb : str</span> +<span class="sd"> Path of pdb file</span> +<span class="sd"> pdbid : str</span> +<span class="sd"> PDB id</span> +<span class="sd"> chain : str</span> +<span class="sd"> Chain id</span> +<span class="sd"> pair_list : {'all', 'min', 'heavy'}</span> +<span class="sd"> Defining if we generate a distance distribution for a minimal set</span> +<span class="sd"> of atom pairs, heavy pairs or all atom pairs (Default value = "all")</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> +<span class="sd"> dists: :obj: `list` of :obj: `OrderedDict`</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># TODO: Do we have to take disordered atoms into account ?</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Compute atom distances for chain </span><span class="si">%s</span><span class="s2"> of </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">chain</span><span class="p">,</span> <span class="n">pdbid</span><span class="p">)</span> + <span class="c1"># out = ""</span> + <span class="n">dists</span> <span class="o">=</span> <span class="p">[]</span> + <span class="n">cutoff</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbdist</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"contact_cutoff"</span><span class="p">)</span> + <span class="c1"># Check if dssp executable exists otherwise we can't find secondary</span> + <span class="c1"># structures</span> + <span class="n">dssp_exec</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbdist</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"dssp_exec"</span><span class="p">)</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">access</span><span class="p">(</span><span class="n">dssp_exec</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">F_OK</span><span class="p">):</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"DSSP executable not found. Check if dssp_exec parameter"</span> + <span class="s2">" in config file is correct !"</span><span class="p">)</span> + <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> + + <span class="c1"># Get chain structure object with Bio.PDB pdbparser or mmcifparser</span> + <span class="c1"># (related to model 0)</span> + <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">pdb</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">'.pdb'</span><span class="p">,</span> <span class="s1">'.ent'</span><span class="p">):</span> + <span class="n">structure</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pdbparser</span><span class="o">.</span><span class="n">get_structure</span><span class="p">(</span><span class="n">pdbid</span><span class="p">,</span> <span class="n">pdb</span><span class="p">)[</span><span class="mi">0</span><span class="p">][</span><span class="n">chain</span><span class="p">]</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">structure</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">mmcifparser</span><span class="o">.</span><span class="n">get_structure</span><span class="p">(</span><span class="n">pdbid</span><span class="p">,</span> <span class="n">pdb</span><span class="p">)[</span><span class="mi">0</span><span class="p">][</span><span class="n">chain</span><span class="p">]</span> + + <span class="c1"># Get list of residues by ignoring heteroatoms, water molecules</span> + <span class="c1"># by looking at the hetero-flag in residue id (H_ for hetero atoms or</span> + <span class="c1"># W_ for water molecules) with only one resx object by amino acid (ca</span> + <span class="c1"># filter). Also ignore insertion mutants</span> + <span class="n">residues</span> <span class="o">=</span> <span class="p">[</span><span class="n">res</span> <span class="k">for</span> <span class="n">res</span> <span class="ow">in</span> <span class="n">structure</span><span class="o">.</span><span class="n">get_residues</span><span class="p">()</span> + <span class="k">if</span> <span class="n">res</span><span class="o">.</span><span class="n">get_id</span><span class="p">()[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">'H'</span><span class="p">,</span> <span class="s1">'W'</span><span class="p">]</span> + <span class="ow">and</span> <span class="n">res</span><span class="o">.</span><span class="n">get_id</span><span class="p">()[</span><span class="mi">2</span><span class="p">]</span> <span class="o">==</span> <span class="s1">' '</span> + <span class="ow">and</span> <span class="n">is_aa</span><span class="p">(</span><span class="n">res</span><span class="p">)</span> <span class="ow">and</span> <span class="n">res</span><span class="o">.</span><span class="n">has_id</span><span class="p">(</span><span class="s1">'CA'</span><span class="p">)]</span> + + <span class="c1"># Unfold atom list related to selected residues</span> + <span class="n">atoms</span> <span class="o">=</span> <span class="n">Selection</span><span class="o">.</span><span class="n">unfold_entities</span><span class="p">(</span><span class="n">residues</span><span class="p">,</span> <span class="s2">"A"</span><span class="p">)</span> + + <span class="c1"># Get dssp dictionary and related dssp keys from pdb file</span> + <span class="n">logging</span><span class="o">.</span><span class="n">captureWarnings</span><span class="p">(</span><span class="kc">True</span><span class="p">)</span> + + <span class="k">try</span><span class="p">:</span> + <span class="n">dssp_dict</span><span class="p">,</span> <span class="n">dssp_keys</span> <span class="o">=</span> <span class="n">dssp_dict_from_pdb_file</span><span class="p">(</span> + <span class="n">pdb</span><span class="p">,</span> <span class="n">DSSP</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbdist</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"dssp_exec"</span><span class="p">))</span> + <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">msg</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span> + <span class="k">return</span> <span class="kc">None</span> + + <span class="c1"># Compute secondary structure index</span> + <span class="n">ss_idx</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_secstructs</span><span class="p">(</span><span class="n">residues</span><span class="p">,</span> <span class="n">dssp_dict</span><span class="p">,</span> <span class="n">chain</span><span class="p">)</span> + <span class="n">pb_idx</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_proteinblocks</span><span class="p">(</span><span class="n">pdb</span><span class="p">,</span> <span class="n">chain</span><span class="p">)</span> + + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Protein Blocks assignment (</span><span class="si">%s</span><span class="s2">):</span><span class="se">\n</span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">pb_idx</span><span class="p">),</span> <span class="n">pb_idx</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Secondary structure index (</span><span class="si">%s</span><span class="s2">):</span><span class="se">\n</span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">ss_idx</span><span class="p">),</span> <span class="n">ss_idx</span><span class="p">)</span> + + <span class="c1"># TODO: could be a better idea to use protmap.AtmMap class</span> + <span class="c1"># Initialize square checking matrix (if a resx has already been seen)</span> + <span class="n">atoms_idx</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">Index</span><span class="p">([</span><span class="n">atmx</span><span class="o">.</span><span class="n">get_serial_number</span><span class="p">()</span> <span class="k">for</span> <span class="n">atmx</span> <span class="ow">in</span> <span class="n">atoms</span><span class="p">])</span> + <span class="n">seen</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="nb">int</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="n">atoms_idx</span><span class="p">,</span> + <span class="n">columns</span><span class="o">=</span><span class="n">atoms_idx</span><span class="p">)</span> + + <span class="c1"># Initialize Neighbor searching object</span> + <span class="n">neighsearch</span> <span class="o">=</span> <span class="n">NeighborSearch</span><span class="p">(</span><span class="n">atoms</span><span class="p">)</span> + + <span class="k">for</span> <span class="n">resx</span> <span class="ow">in</span> <span class="n">residues</span><span class="p">:</span> + + <span class="n">resx_name</span> <span class="o">=</span> <span class="n">AminoAcid</span><span class="p">(</span><span class="n">resx</span><span class="o">.</span><span class="n">get_resname</span><span class="p">())[</span><span class="mi">0</span><span class="p">]</span> + <span class="n">resx_id</span> <span class="o">=</span> <span class="n">resx</span><span class="o">.</span><span class="n">id</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> + <span class="n">ssx</span> <span class="o">=</span> <span class="n">ss_idx</span><span class="p">[</span><span class="n">resx_id</span><span class="p">]</span> + <span class="n">pblocx</span> <span class="o">=</span> <span class="n">pb_idx</span><span class="p">[</span><span class="n">resx_id</span><span class="p">]</span> + + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Start at residue </span><span class="si">%s</span><span class="s2"> (</span><span class="si">%s</span><span class="s2">) with </span><span class="si">%s</span><span class="s2"> atoms"</span><span class="p">,</span> <span class="n">resx_id</span><span class="p">,</span> + <span class="n">resx_name</span><span class="p">,</span> <span class="n">resx</span><span class="o">.</span><span class="n">get_list</span><span class="p">())</span> + + <span class="k">for</span> <span class="n">atmx</span> <span class="ow">in</span> <span class="n">resx</span><span class="o">.</span><span class="n">get_list</span><span class="p">():</span> + + <span class="n">atmx_id</span> <span class="o">=</span> <span class="n">atmx</span><span class="o">.</span><span class="n">get_serial_number</span><span class="p">()</span> + <span class="n">atmx_name</span> <span class="o">=</span> <span class="n">atmx</span><span class="o">.</span><span class="n">get_name</span><span class="p">()</span> + + <span class="c1"># Find neighboring res around atom in resi within defined cutoff</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Looking for residues in contact with atom </span><span class="si">%s</span><span class="s2"> of res "</span> + <span class="s2">"</span><span class="si">%s</span><span class="s2"> (</span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> <span class="n">atmx_name</span><span class="p">,</span> <span class="n">resx_name</span><span class="p">,</span> <span class="n">resx_id</span><span class="p">)</span> + <span class="n">neighbors</span> <span class="o">=</span> <span class="n">neighsearch</span><span class="o">.</span><span class="n">search</span><span class="p">(</span> + <span class="n">atmx</span><span class="o">.</span><span class="n">get_coord</span><span class="p">(),</span> <span class="n">cutoff</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="s2">"R"</span><span class="p">)</span> + <span class="c1"># Select long range contacts</span> + <span class="n">longr_contacts</span> <span class="o">=</span> <span class="p">[</span><span class="n">res</span> <span class="k">for</span> <span class="n">res</span> <span class="ow">in</span> <span class="n">neighbors</span> <span class="k">if</span> + <span class="nb">abs</span><span class="p">(</span><span class="n">res</span><span class="o">.</span><span class="n">id</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">resx_id</span><span class="p">)</span> <span class="o">></span> <span class="mi">5</span><span class="p">]</span> + + <span class="c1"># For each residue in contact with the selected atom</span> + <span class="k">for</span> <span class="n">resy</span> <span class="ow">in</span> <span class="n">longr_contacts</span><span class="p">:</span> + + <span class="n">resy_name</span> <span class="o">=</span> <span class="n">AminoAcid</span><span class="p">(</span><span class="n">resy</span><span class="o">.</span><span class="n">get_resname</span><span class="p">())[</span><span class="mi">0</span><span class="p">]</span> + <span class="n">resy_id</span> <span class="o">=</span> <span class="n">resy</span><span class="o">.</span><span class="n">id</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> + <span class="n">ssy</span> <span class="o">=</span> <span class="n">ss_idx</span><span class="p">[</span><span class="n">resy_id</span><span class="p">]</span> + <span class="n">pblocy</span> <span class="o">=</span> <span class="n">pb_idx</span><span class="p">[</span><span class="n">resy_id</span><span class="p">]</span> + + <span class="c1"># Ignore disulfide bridges and unkonwn residues</span> + <span class="k">if</span> <span class="p">(</span><span class="n">resx_name</span> <span class="o">==</span> <span class="s2">"CYS"</span> <span class="ow">and</span> <span class="n">resy_name</span> <span class="o">==</span> <span class="s2">"CYS"</span><span class="p">)</span> \ + <span class="ow">or</span> <span class="ow">not</span> <span class="n">resx_name</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">resy_name</span><span class="p">:</span> + <span class="k">continue</span> + + <span class="n">scx_name</span><span class="p">,</span> <span class="n">scy_name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">scsc_min</span><span class="p">[</span><span class="n">resx_name</span><span class="p">][</span> + <span class="n">resy_name</span><span class="p">]</span> + + <span class="k">if</span> <span class="p">(</span><span class="n">pair_list</span> <span class="o">==</span> <span class="s2">"min"</span> <span class="ow">and</span> + <span class="n">atmx_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"CA"</span><span class="p">,</span> <span class="s2">"CB"</span><span class="p">,</span> <span class="n">scx_name</span><span class="p">))</span> <span class="ow">or</span> \ + <span class="p">(</span><span class="n">pair_list</span> <span class="o">==</span> <span class="s2">"heavy"</span> + <span class="ow">and</span> <span class="ow">not</span> <span class="n">ResAtmMap</span><span class="o">.</span><span class="n">heavy_reg</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">atmx_name</span><span class="p">)):</span> + <span class="k">continue</span> + + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Contact detected for atom </span><span class="si">%s</span><span class="s2"> of res </span><span class="si">%s</span><span class="s2"> (</span><span class="si">%s</span><span class="s2">) with"</span> + <span class="s2">" res </span><span class="si">%s</span><span class="s2"> (</span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> + <span class="n">atmx_name</span><span class="p">,</span> <span class="n">resx_id</span><span class="p">,</span> <span class="n">resx_name</span><span class="p">,</span> <span class="n">resy_id</span><span class="p">,</span> <span class="n">resy_name</span><span class="p">)</span> + + <span class="c1"># Define secondary structure type</span> + <span class="n">ss_type</span> <span class="o">=</span> <span class="n">ssx</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">ssy</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> + <span class="k">if</span> <span class="n">ssx</span> <span class="o">!=</span> <span class="n">ssy</span><span class="p">:</span> + <span class="k">if</span> <span class="n">ss_type</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"HH"</span><span class="p">,</span> <span class="s2">"EE"</span><span class="p">,</span> <span class="s2">"HE"</span><span class="p">,</span> <span class="s2">"EH"</span><span class="p">):</span> + <span class="c1"># Contact between helice or beta strand</span> + <span class="n">ss_type</span> <span class="o">=</span> <span class="s2">"HE"</span> <span class="k">if</span> <span class="n">ss_type</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"HH"</span><span class="p">,</span> <span class="s2">"EE"</span><span class="p">)</span> \ + <span class="k">else</span> <span class="n">ss_type</span> + <span class="k">else</span><span class="p">:</span> + <span class="c1"># Contact with loops or other secondary</span> + <span class="c1"># structure</span> + <span class="n">ss_type</span> <span class="o">=</span> <span class="s2">"XH"</span> <span class="k">if</span> <span class="s2">"H"</span> <span class="ow">in</span> <span class="n">ss_type</span> <span class="k">else</span> <span class="s2">"XE"</span> \ + <span class="k">if</span> <span class="s2">"E"</span> <span class="ow">in</span> <span class="n">ss_type</span> <span class="k">else</span> <span class="s2">"XX"</span> + <span class="k">else</span><span class="p">:</span> + <span class="c1"># Same secondary structure</span> + <span class="n">ss_type</span> <span class="o">=</span> <span class="n">ssx</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> + + <span class="c1"># PB type</span> + <span class="n">pb_type</span> <span class="o">=</span> <span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="nb">sorted</span><span class="p">(</span><span class="n">pblocx</span> <span class="o">+</span> <span class="n">pblocy</span><span class="p">))</span> + + <span class="k">for</span> <span class="n">atmy</span> <span class="ow">in</span> <span class="n">resy</span><span class="o">.</span><span class="n">get_list</span><span class="p">():</span> + + <span class="n">atmy_id</span> <span class="o">=</span> <span class="n">atmy</span><span class="o">.</span><span class="n">get_serial_number</span><span class="p">()</span> + <span class="n">atmy_name</span> <span class="o">=</span> <span class="n">atmy</span><span class="o">.</span><span class="n">get_name</span><span class="p">()</span> + <span class="c1"># Filter atom pairs if pair_list is not equal to "all"</span> + + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Contact filter: </span><span class="si">%s</span><span class="s2">-</span><span class="si">%s</span><span class="s2"> (</span><span class="si">%s</span><span class="s2">,</span><span class="si">%s</span><span class="s2">) </span><span class="si">%s</span><span class="s2">-</span><span class="si">%s</span><span class="s2"> (</span><span class="si">%s</span><span class="s2">,</span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> + <span class="n">resx_name</span><span class="p">,</span> <span class="n">resy_name</span><span class="p">,</span> <span class="n">resx_id</span><span class="p">,</span> <span class="n">resy_id</span><span class="p">,</span> + <span class="n">atmx_name</span><span class="p">,</span> <span class="n">atmy_name</span><span class="p">,</span> <span class="n">atmx_id</span><span class="p">,</span> <span class="n">atmy_id</span><span class="p">)</span> + + <span class="k">if</span> <span class="p">(</span><span class="n">pair_list</span> <span class="o">==</span> <span class="s2">"min"</span> <span class="ow">and</span> + <span class="n">atmy_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"CA"</span><span class="p">,</span> <span class="s2">"CB"</span><span class="p">,</span> <span class="n">scy_name</span><span class="p">))</span> <span class="ow">or</span> \ + <span class="p">(</span><span class="n">pair_list</span> <span class="o">==</span> <span class="s2">"heavy"</span> + <span class="ow">and</span> <span class="ow">not</span> <span class="n">ResAtmMap</span><span class="o">.</span><span class="n">heavy_reg</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">atmy_name</span><span class="p">)):</span> + <span class="n">seen</span><span class="p">[</span><span class="n">atmx_id</span><span class="p">][</span><span class="n">atmy_id</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span> + <span class="n">seen</span><span class="p">[</span><span class="n">atmy_id</span><span class="p">][</span><span class="n">atmx_id</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span> + <span class="k">continue</span> + + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"...valid"</span><span class="p">)</span> + + <span class="k">if</span> <span class="ow">not</span> <span class="n">seen</span><span class="p">[</span><span class="n">atmx_id</span><span class="p">][</span><span class="n">atmy_id</span><span class="p">]:</span> + <span class="c1"># If contact between two atoms not already seen,</span> + <span class="c1"># write distance in the output file</span> + <span class="n">dist</span> <span class="o">=</span> <span class="n">atmx</span> <span class="o">-</span> <span class="n">atmy</span> + + <span class="n">dists</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">OrderedDict</span><span class="p">([</span> + <span class="p">(</span><span class="s1">'pdbid'</span><span class="p">,</span> <span class="n">pdbid</span><span class="p">),</span> <span class="p">(</span><span class="s1">'ss_type'</span><span class="p">,</span> <span class="n">ss_type</span><span class="p">),</span> + <span class="p">(</span><span class="s1">'ssx'</span><span class="p">,</span> <span class="n">ssx</span><span class="p">),</span> <span class="p">(</span><span class="s1">'ssy'</span><span class="p">,</span> <span class="n">ssy</span><span class="p">),</span> + <span class="p">(</span><span class="s1">'pb_type'</span><span class="p">,</span> <span class="n">pb_type</span><span class="p">),</span> <span class="p">(</span><span class="s1">'pblocx'</span><span class="p">,</span> <span class="n">pblocx</span><span class="p">),</span> + <span class="p">(</span><span class="s1">'pblocy'</span><span class="p">,</span> <span class="n">pblocy</span><span class="p">),</span> <span class="p">(</span><span class="s1">'resx_id'</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">resx_id</span><span class="p">)),</span> + <span class="p">(</span><span class="s1">'resy_id'</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">resy_id</span><span class="p">)),</span> + <span class="p">(</span><span class="s1">'resx_name'</span><span class="p">,</span> <span class="n">resx_name</span><span class="p">),</span> + <span class="p">(</span><span class="s1">'resy_name'</span><span class="p">,</span> <span class="n">resy_name</span><span class="p">),</span> + <span class="p">(</span><span class="s1">'atmx_id'</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">atmx_id</span><span class="p">)),</span> + <span class="p">(</span><span class="s1">'atmy_id'</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">atmy_id</span><span class="p">)),</span> + <span class="p">(</span><span class="s1">'atmx_name'</span><span class="p">,</span> <span class="n">atmx_name</span><span class="p">),</span> + <span class="p">(</span><span class="s1">'atmy_name'</span><span class="p">,</span> <span class="n">atmy_name</span><span class="p">),</span> + <span class="p">(</span><span class="s1">'dist'</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">dist</span><span class="p">))</span> + <span class="p">]))</span> + + <span class="n">seen</span><span class="p">[</span><span class="n">atmx_id</span><span class="p">][</span><span class="n">atmy_id</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span> + <span class="n">seen</span><span class="p">[</span><span class="n">atmy_id</span><span class="p">][</span><span class="n">atmx_id</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span> + <span class="k">return</span> <span class="n">dists</span></div> + +<div class="viewcode-block" id="PDBDist.run"><a class="viewcode-back" href="../../ariaec.html#ariaec.pdbdist.PDBDist.run">[docs]</a> <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""main method"""</span> + + <span class="c1"># Set pdb directory</span> + <span class="n">outdir</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbdist</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"output_directory"</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">getcwd</span><span class="p">())</span> + <span class="n">pdbdir</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbdist</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'pdbdir'</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> + <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbdist</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'pdbdir'</span><span class="p">)</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">access</span><span class="p">(</span><span class="n">pdbdir</span><span class="p">,</span> + <span class="n">os</span><span class="o">.</span><span class="n">F_OK</span><span class="p">):</span> + + <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbdist</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"download_pdbs"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span> + <span class="s2">"PDB directory not given and download inactivated."</span> + <span class="s2">" PDBDist command can't download pdb files."</span><span class="p">)</span> + <span class="k">return</span> <span class="kc">None</span> + <span class="k">else</span><span class="p">:</span> + <span class="c1"># We have to download all files so we set outdir as pdbdir</span> + <span class="n">pdbdir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">outdir</span><span class="p">),</span> <span class="s1">'pdbs'</span><span class="p">)</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">access</span><span class="p">(</span><span class="n">pdbdir</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">F_OK</span><span class="p">):</span> + <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">pdbdir</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">pdbdir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">pdbdir</span><span class="p">)</span> + + <span class="n">pair_flag</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbdist</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"pair_list"</span><span class="p">,</span> <span class="s2">"all"</span><span class="p">)</span> + <span class="n">distpath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">outdir</span><span class="p">,</span> <span class="s2">"pdbdists.dat"</span><span class="p">)</span> + <span class="n">distpath</span> <span class="o">=</span> <span class="n">distpath</span> <span class="k">if</span> <span class="n">pair_flag</span> <span class="ow">in</span> <span class="n">distpath</span> <span class="k">else</span> \ + <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">distpath</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="s2">"_"</span> <span class="o">+</span> <span class="n">pair_flag</span> <span class="o">+</span> \ + <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">distpath</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span> + + <span class="c1"># Load cullpdb file</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Loading culled list of pdb file(s)"</span><span class="p">)</span> + <span class="n">cullfile</span> <span class="o">=</span> <span class="n">CulledPdbFile</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbdist</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"cullpdbs"</span><span class="p">))</span> + <span class="n">cullfile</span><span class="o">.</span><span class="n">load</span><span class="p">()</span> + + <span class="c1"># Load all pdb files and generate distance file</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Looking for pdb entries into </span><span class="si">%s</span><span class="s2"> folder"</span><span class="p">,</span> <span class="n">pdbdir</span><span class="p">)</span> + <span class="n">header</span> <span class="o">=</span> <span class="s2">""</span> + + <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">distpath</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">)</span> <span class="k">as</span> <span class="n">distfile</span><span class="p">:</span> + + <span class="k">for</span> <span class="n">idline</span><span class="p">,</span> <span class="n">pdbent</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="n">cullfile</span><span class="o">.</span><span class="n">lines</span><span class="p">):</span> + + <span class="n">pdbid</span> <span class="o">=</span> <span class="n">pdbent</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"pdb_id"</span><span class="p">)</span> + + <span class="c1"># Download file if necessary</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">glob</span><span class="p">(</span><span class="s1">'</span><span class="si">%s</span><span class="s1">/*</span><span class="si">%s</span><span class="s1">*'</span> <span class="o">%</span> <span class="p">(</span><span class="n">pdbdir</span><span class="p">,</span> <span class="n">pdbid</span><span class="o">.</span><span class="n">lower</span><span class="p">())):</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Download pdb entry for </span><span class="si">%s</span><span class="s2"> pdb"</span><span class="p">,</span> <span class="n">pdbid</span><span class="p">)</span> + <span class="k">try</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">pdblist</span><span class="o">.</span><span class="n">retrieve_pdb_file</span><span class="p">(</span><span class="n">pdbid</span><span class="p">,</span> <span class="n">pdir</span><span class="o">=</span><span class="n">pdbdir</span><span class="p">,</span> + <span class="n">file_format</span><span class="o">=</span><span class="s2">"pdb"</span><span class="p">)</span> + <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">msg</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span> + <span class="k">continue</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">glob</span><span class="p">(</span><span class="s1">'</span><span class="si">%s</span><span class="s1">/*</span><span class="si">%s</span><span class="s1">*'</span> <span class="o">%</span> <span class="p">(</span><span class="n">pdbdir</span><span class="p">,</span> <span class="n">pdbid</span><span class="o">.</span><span class="n">lower</span><span class="p">())):</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Error during download, try to download in "</span> + <span class="s2">"mmCIF format"</span><span class="p">)</span> + <span class="k">try</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">pdblist</span><span class="o">.</span><span class="n">retrieve_pdb_file</span><span class="p">(</span><span class="n">pdbid</span><span class="p">,</span> <span class="n">pdir</span><span class="o">=</span><span class="n">pdbdir</span><span class="p">,</span> + <span class="n">file_format</span><span class="o">=</span><span class="s2">"mmCif"</span><span class="p">)</span> + <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">msg</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">msg</span><span class="p">)</span> + <span class="k">continue</span> + + <span class="n">pdbpaths</span> <span class="o">=</span> <span class="n">glob</span><span class="p">(</span><span class="s1">'</span><span class="si">%s</span><span class="s1">/*</span><span class="si">%s</span><span class="s1">*'</span> <span class="o">%</span> <span class="p">(</span><span class="n">pdbdir</span><span class="p">,</span> <span class="n">pdbid</span><span class="o">.</span><span class="n">lower</span><span class="p">()))</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Found </span><span class="si">%s</span><span class="s2"> file(s) related to </span><span class="si">%s</span><span class="s2"> pdb entry into </span><span class="si">%s</span><span class="s2"> folder "</span> + <span class="s2">"(</span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">pdbpaths</span><span class="p">),</span> <span class="n">pdbid</span><span class="p">,</span> <span class="n">pdbdir</span><span class="p">,</span> <span class="n">pdbpaths</span><span class="p">)</span> + + <span class="c1"># Get distance matrix from pdb file and write distances into</span> + <span class="c1"># output file</span> + <span class="n">dists</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pdbdists</span><span class="p">(</span> + <span class="n">pdbpaths</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">pdbid</span><span class="p">,</span> <span class="n">pdbent</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"chain_id"</span><span class="p">),</span> + <span class="n">pair_list</span><span class="o">=</span><span class="n">pair_flag</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">idline</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Writing header line"</span><span class="p">)</span> + <span class="n">header</span> <span class="o">=</span> <span class="p">[</span><span class="n">key</span> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">dists</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">()]</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">","</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">header</span><span class="p">))</span> + <span class="n">distfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="se">\n</span><span class="s2">"</span> <span class="o">%</span> <span class="s2">","</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">header</span><span class="p">))</span> + + <span class="k">for</span> <span class="n">dist</span> <span class="ow">in</span> <span class="n">dists</span><span class="p">:</span> + <span class="n">distfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="se">\n</span><span class="s2">"</span> <span class="o">%</span> <span class="s2">","</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">dist</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">header</span><span class="p">]))</span> + + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbdist</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"remove_pdbs"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Remove </span><span class="si">%s</span><span class="s2"> pdb file"</span><span class="p">,</span> <span class="n">pdbid</span><span class="p">)</span> + <span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">pdbpaths</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> + + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"PDBdist finished"</span><span class="p">)</span></div></div> +</pre></div> + + </div> + <div class="articleComments"> + + </div> + </div> + <footer> + + + <hr/> + + <div role="contentinfo"> + <p> + © Copyright 2017, Fabrice Allain. + + </p> + </div> + Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. + +</footer> + + </div> + </div> + + </section> + + </div> + + + + + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT:'../../', + VERSION:'0.2', + COLLAPSE_INDEX:false, + FILE_SUFFIX:'.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt' + }; + </script> + <script type="text/javascript" src="../../_static/jquery.js"></script> + <script type="text/javascript" src="../../_static/underscore.js"></script> + <script type="text/javascript" src="../../_static/doctools.js"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + + + + <script type="text/javascript" src="../../_static/js/theme.js"></script> + + + + + <script type="text/javascript"> + jQuery(function () { + SphinxRtdTheme.StickyNav.enable(); + }); + </script> + + +</body> +</html> \ No newline at end of file diff --git a/examples-dev/olds/_build/html/_modules/ariaec/pdbqual.html b/examples-dev/olds/_build/html/_modules/ariaec/pdbqual.html new file mode 100644 index 0000000000000000000000000000000000000000..2623c8eae410fa1cf21eb03659b804a7d1853578 --- /dev/null +++ b/examples-dev/olds/_build/html/_modules/ariaec/pdbqual.html @@ -0,0 +1,278 @@ + + +<!DOCTYPE html> +<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> +<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> +<head> + <meta charset="utf-8"> + + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <title>ariaec.pdbqual — AriaEc 0.2 documentation</title> + + + + + + + + + + + + + + + + + + <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> + + + + + + <link rel="index" title="Index" + href="../../genindex.html"/> + <link rel="search" title="Search" href="../../search.html"/> + <link rel="top" title="AriaEc 0.2 documentation" href="../../index.html"/> + <link rel="up" title="Module code" href="../index.html"/> + + + <script src="../../_static/js/modernizr.min.js"></script> + +</head> + +<body class="wy-body-for-nav" role="document"> + + + <div class="wy-grid-for-nav"> + + + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search"> + + + + <a href="../../index.html" class="icon icon-home"> AriaEc + + + + </a> + + + + + <div class="version"> + 0.2 + </div> + + + + +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + + + </div> + + <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> + + + + + + + <!-- Local TOC --> + <div class="local-toc"></div> + + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> + + + <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> + + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">AriaEc</a> + + </nav> + + + + <div class="wy-nav-content"> + <div class="rst-content"> + + + + + + + + + + + + + + + + +<div role="navigation" aria-label="breadcrumbs navigation"> + + <ul class="wy-breadcrumbs"> + + <li><a href="../../index.html">Docs</a> »</li> + + <li><a href="../index.html">Module code</a> »</li> + + <li>ariaec.pdbqual</li> + + + <li class="wy-breadcrumbs-aside"> + + + + </li> + + </ul> + + + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <h1>Source code for ariaec.pdbqual</h1><div class="highlight"><pre> +<span></span><span class="c1"># coding=utf-8</span> +<span class="sd">"""</span> +<span class="sd">Created on 9/5/16</span> +<span class="sd">@author: fallain</span> + +<span class="sd">Derived from qual.py script by Dr. Benjamin Bardiaux</span> +<span class="sd">"""</span> +<span class="kn">import</span> <span class="nn">os</span> +<span class="kn">import</span> <span class="nn">shutil</span> +<span class="kn">import</span> <span class="nn">logging</span> + +<span class="kn">from</span> <span class="nn">aria.legacy.QualityChecks</span> <span class="k">import</span> <span class="n">QualityChecks</span> +<span class="kn">from</span> <span class="nn">.common</span> <span class="k">import</span> <span class="n">CommandProtocol</span> + + +<span class="n">LOG</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span> + + +<div class="viewcode-block" id="AriaEcPdbqual"><a class="viewcode-back" href="../../ariaec.html#ariaec.pdbqual.AriaEcPdbqual">[docs]</a><span class="k">class</span> <span class="nc">AriaEcPdbqual</span><span class="p">(</span><span class="n">CommandProtocol</span><span class="p">):</span> + <span class="sd">"""Quality pdb tool"""</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="nb">super</span><span class="p">(</span><span class="n">AriaEcPdbqual</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> + +<div class="viewcode-block" id="AriaEcPdbqual.run"><a class="viewcode-back" href="../../ariaec.html#ariaec.pdbqual.AriaEcPdbqual.run">[docs]</a> <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">""":return:"""</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Starting quality runs with </span><span class="si">%s</span><span class="s2"> file(s)"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbqual</span><span class="p">[</span><span class="s2">"infiles"</span><span class="p">])</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Copying file(s) to output directory"</span><span class="p">)</span> + <span class="k">for</span> <span class="n">infile</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbqual</span><span class="p">[</span><span class="s2">"infiles"</span><span class="p">]:</span> + <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">infile</span><span class="p">)</span> <span class="o">!=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbqual</span><span class="p">[</span><span class="s2">"output_directory"</span><span class="p">]):</span> + <span class="n">shutil</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="n">infile</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbqual</span><span class="p">[</span><span class="s2">"output_directory"</span><span class="p">])</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbqual</span><span class="p">[</span><span class="s2">"output_directory"</span><span class="p">])</span> + <span class="n">QualityChecks</span><span class="o">.</span><span class="n">runChecks</span><span class="p">(</span> + <span class="n">workingDirectory</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbqual</span><span class="p">[</span><span class="s2">"output_directory"</span><span class="p">],</span> + <span class="n">trashDirectory</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbqual</span><span class="p">[</span><span class="s2">"trash_directory"</span><span class="p">],</span> + <span class="n">prosaOnOff</span><span class="o">=</span><span class="mi">1</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbqual</span><span class="p">[</span><span class="s2">"prosa"</span><span class="p">]</span> <span class="k">else</span> <span class="mi">0</span><span class="p">,</span> + <span class="n">procheckExe</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">main</span><span class="p">[</span><span class="s2">"procheck_executable"</span><span class="p">],</span> + <span class="n">whatIfExe</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">main</span><span class="p">[</span><span class="s2">"whatif_executable"</span><span class="p">],</span> + <span class="n">clashlistExe</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">main</span><span class="p">[</span><span class="s2">"clashlist_executable"</span><span class="p">],</span> + <span class="n">prosaExe</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">main</span><span class="p">[</span><span class="s2">"prosa_executable"</span><span class="p">]</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">main</span><span class="p">[</span><span class="s2">"prosa_executable"</span><span class="p">]</span> <span class="k">else</span> <span class="s2">""</span><span class="p">,</span> + <span class="n">cshExe</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbqual</span><span class="p">[</span><span class="s2">"csh_executable"</span><span class="p">],</span> + <span class="n">howManyPdb</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbqual</span><span class="p">[</span><span class="s2">"infiles"</span><span class="p">]),</span> + <span class="n">verbose</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> + <span class="n">fileList</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbqual</span><span class="p">[</span><span class="s2">"infiles"</span><span class="p">],</span> + <span class="n">skipPrefix</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbqual</span><span class="p">[</span><span class="s2">"skip_prefix"</span><span class="p">]</span> + <span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2"> generated"</span><span class="p">,</span> + <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbqual</span><span class="p">[</span><span class="s2">"output_directory"</span><span class="p">],</span> + <span class="n">QualityChecks</span><span class="o">.</span><span class="n">FILENAME_REPORT</span><span class="p">))</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Removing infile(s) in output directory </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbqual</span><span class="p">[</span><span class="s2">"output_directory"</span><span class="p">])</span> + <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span> + <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbqual</span><span class="p">[</span><span class="s2">"output_directory"</span><span class="p">],</span> + <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">infile</span><span class="p">)))</span> + <span class="k">for</span> <span class="n">infile</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbqual</span><span class="p">[</span><span class="s2">"infiles"</span><span class="p">]</span> + <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">pdbqual</span><span class="p">[</span><span class="s2">"output_directory"</span><span class="p">],</span> + <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span><span class="n">infile</span><span class="p">)))]</span></div></div> +</pre></div> + + </div> + <div class="articleComments"> + + </div> + </div> + <footer> + + + <hr/> + + <div role="contentinfo"> + <p> + © Copyright 2017, Fabrice Allain. + + </p> + </div> + Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. + +</footer> + + </div> + </div> + + </section> + + </div> + + + + + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT:'../../', + VERSION:'0.2', + COLLAPSE_INDEX:false, + FILE_SUFFIX:'.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt' + }; + </script> + <script type="text/javascript" src="../../_static/jquery.js"></script> + <script type="text/javascript" src="../../_static/underscore.js"></script> + <script type="text/javascript" src="../../_static/doctools.js"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + + + + <script type="text/javascript" src="../../_static/js/theme.js"></script> + + + + + <script type="text/javascript"> + jQuery(function () { + SphinxRtdTheme.StickyNav.enable(); + }); + </script> + + +</body> +</html> \ No newline at end of file diff --git a/examples-dev/olds/_build/html/_modules/ariaec/protein.html b/examples-dev/olds/_build/html/_modules/ariaec/protein.html new file mode 100644 index 0000000000000000000000000000000000000000..88f8a22b4bf69cedfe5d8381c252bbcdfdf5a0c8 --- /dev/null +++ b/examples-dev/olds/_build/html/_modules/ariaec/protein.html @@ -0,0 +1,861 @@ + + +<!DOCTYPE html> +<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> +<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> +<head> + <meta charset="utf-8"> + + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <title>ariaec.protein — AriaEc 0.2 documentation</title> + + + + + + + + + + + + + + + + + + <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> + + + + + + <link rel="index" title="Index" + href="../../genindex.html"/> + <link rel="search" title="Search" href="../../search.html"/> + <link rel="top" title="AriaEc 0.2 documentation" href="../../index.html"/> + <link rel="up" title="Module code" href="../index.html"/> + + + <script src="../../_static/js/modernizr.min.js"></script> + +</head> + +<body class="wy-body-for-nav" role="document"> + + + <div class="wy-grid-for-nav"> + + + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search"> + + + + <a href="../../index.html" class="icon icon-home"> AriaEc + + + + </a> + + + + + <div class="version"> + 0.2 + </div> + + + + +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + + + </div> + + <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> + + + + + + + <!-- Local TOC --> + <div class="local-toc"></div> + + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> + + + <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> + + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">AriaEc</a> + + </nav> + + + + <div class="wy-nav-content"> + <div class="rst-content"> + + + + + + + + + + + + + + + + +<div role="navigation" aria-label="breadcrumbs navigation"> + + <ul class="wy-breadcrumbs"> + + <li><a href="../../index.html">Docs</a> »</li> + + <li><a href="../index.html">Module code</a> »</li> + + <li>ariaec.protein</li> + + + <li class="wy-breadcrumbs-aside"> + + + + </li> + + </ul> + + + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <h1>Source code for ariaec.protein</h1><div class="highlight"><pre> +<span></span><span class="c1"># coding=utf-8</span> +<span class="sd">"""</span> +<span class="sd"> Secondary structure list</span> +<span class="sd">"""</span> + +<span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span><span class="p">,</span> <span class="n">division</span><span class="p">,</span> <span class="n">print_function</span><span class="p">,</span> \ + <span class="n">unicode_literals</span> + +<span class="kn">import</span> <span class="nn">os</span> +<span class="kn">import</span> <span class="nn">sys</span> +<span class="kn">import</span> <span class="nn">re</span> +<span class="kn">import</span> <span class="nn">logging</span> +<span class="kn">import</span> <span class="nn">pkg_resources</span> <span class="k">as</span> <span class="nn">pkgr</span> +<span class="kn">import</span> <span class="nn">aria.legacy.SequenceList</span> <span class="k">as</span> <span class="nn">SequenceList</span> +<span class="kn">import</span> <span class="nn">aria.legacy.AminoAcid</span> <span class="k">as</span> <span class="nn">AmnAcd</span> +<span class="kn">from</span> <span class="nn">six</span> <span class="k">import</span> <span class="n">iteritems</span><span class="p">,</span> <span class="n">text_type</span> +<span class="kn">from</span> <span class="nn">.common</span> <span class="k">import</span> <span class="p">(</span><span class="n">reg_load</span><span class="p">,</span> <span class="n">ppdict</span><span class="p">)</span> +<span class="c1"># import skbio.Protein as skprot</span> +<span class="c1"># TODO: interface skbio ??</span> + + +<span class="n">LOG</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span> + + +<span class="c1"># TODO: implement psipred format 3.5</span> +<div class="viewcode-block" id="SsList"><a class="viewcode-back" href="../../ariaec.html#ariaec.protein.SsList">[docs]</a><span class="k">class</span> <span class="nc">SsList</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> + <span class="sd">"""Reader for secondary prediction structure files"""</span> + <span class="n">psipred_reg</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s1">'^(?P<up_index>\d+)'</span> + <span class="sa">r</span><span class="s1">'\s+(?P<up_residue>[AC-IK-NP-TVWYZ])'</span> + <span class="sa">r</span><span class="s1">'\s+(?P<ss_pred>[HEC])'</span> + <span class="sa">r</span><span class="s1">'\s+(?P<ss_conf>\d?)'</span><span class="p">)</span> + <span class="n">psipred2_reg</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s1">'^(?P<ss_pred>[HEC]+)'</span><span class="p">)</span> + <span class="n">indxplus_reg</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span> + <span class="sa">r</span><span class="s1">'^(?P<up_index>\d+)\s+(?P<up_residue>[AC-IK-NP-TVWYZ])\s+'</span> + <span class="sa">r</span><span class="s1">'(?P<ss_pred>[CEH])\s+(?P<ss_conf>\d)\s+(?P<msa_index>[\d\-]+)\s+'</span> + <span class="sa">r</span><span class="s1">'(?P<msa_consper>[\d\-]+)\s+(?P<msa_cons>[*~\-])\s+'</span> + <span class="sa">r</span><span class="s1">'(?P<in_const>[*~\-])\s+(?P<pdb_atom>[\d\-]+)\s+'</span> + <span class="sa">r</span><span class="s1">'(?P<pdb_chain>[\-\w])\s+(?P<pdb_index>[\d\-]+\w?)\s+'</span> + <span class="sa">r</span><span class="s1">'(?P<pdb_residue>[AC-IK-NP-TVWYZ\-])\s+(?P<pdb_x_pos>[\d.\-]+)\s+'</span> + <span class="sa">r</span><span class="s1">'(?P<pdb_y_pos>[\d.\-]+)\s+(?P<pdb_z_pos>[\d\-.]+)'</span><span class="p">)</span> + <span class="n">ss_dist_reg</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">"\s+(\d+\.\d+) \( (\d+\.\d+)\)"</span><span class="p">)</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sett</span><span class="p">):</span> + <span class="sd">"""</span> + +<span class="sd"> :param sett:</span> +<span class="sd"> :return:</span> +<span class="sd"> """</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span> <span class="o">=</span> <span class="n">sett</span> + <span class="bp">self</span><span class="o">.</span><span class="n">ss_matrix</span> <span class="o">=</span> <span class="p">[]</span> + <span class="bp">self</span><span class="o">.</span><span class="n">ssdict</span> <span class="o">=</span> <span class="p">{}</span> + <span class="bp">self</span><span class="o">.</span><span class="n">ssdist</span> <span class="o">=</span> <span class="p">{}</span> + <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span> <span class="o">=</span> <span class="s1">''</span> + + <span class="k">def</span> <span class="nf">__bool__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="k">return</span> <span class="kc">True</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">ss_matrix</span> <span class="k">else</span> <span class="kc">False</span> + + <span class="k">def</span> <span class="nf">__nonzero__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="fm">__bool__</span><span class="p">()</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">index</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">""":return:"""</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">ss_matrix</span><span class="p">:</span> + <span class="c1"># Assuming human idx (1 ...) correspond to ss_matrix first column !!!</span> + <span class="k">return</span> <span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="n">_</span><span class="p">)</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="bp">self</span><span class="o">.</span><span class="n">ss_matrix</span><span class="p">)[</span><span class="mi">0</span><span class="p">]]</span> + <span class="k">else</span><span class="p">:</span> + <span class="k">return</span> <span class="p">[]</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">sequence</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> """</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">ss_matrix</span><span class="p">:</span> + <span class="k">return</span> <span class="p">[</span><span class="n">_</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="bp">self</span><span class="o">.</span><span class="n">ss_matrix</span><span class="p">)[</span><span class="mi">2</span><span class="p">]]</span> + <span class="k">else</span><span class="p">:</span> + <span class="k">return</span> <span class="p">[]</span> + +<div class="viewcode-block" id="SsList.check_filetype"><a class="viewcode-back" href="../../ariaec.html#ariaec.protein.SsList.check_filetype">[docs]</a> <span class="k">def</span> <span class="nf">check_filetype</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> filename :</span> +<span class="sd"> return:</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">filename</span><span class="p">)[</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">:]</span></div> + <span class="c1"># TODO: check if given file is supported</span> + +<div class="viewcode-block" id="SsList.read"><a class="viewcode-back" href="../../ariaec.html#ariaec.protein.SsList.read">[docs]</a> <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> filename :</span> +<span class="sd"> return:</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="bp">self</span><span class="o">.</span><span class="n">check_filetype</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Reading secondary structure file </span><span class="si">%s</span><span class="s2"> [</span><span class="si">%s</span><span class="s2">]"</span><span class="p">,</span> + <span class="n">filename</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span><span class="p">)</span> + <span class="c1"># TODO: better read with getattr</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span> <span class="o">==</span> <span class="s2">"indextableplus"</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">read_indextableplus</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">read_psipred</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span> + + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Secondary structure list:</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s2">"</span> + <span class="s2">"Secondary structure dict:</span><span class="se">\n</span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">ss_matrix</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">ssdict</span><span class="p">)</span></div> + +<div class="viewcode-block" id="SsList.read_psipred"><a class="viewcode-back" href="../../ariaec.html#ariaec.protein.SsList.read_psipred">[docs]</a> <span class="k">def</span> <span class="nf">read_psipred</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> filename :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">ssdict</span> <span class="o">=</span> <span class="n">reg_load</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">psipred_reg</span><span class="p">,</span> <span class="n">filename</span><span class="p">)</span> + <span class="c1"># TODO: supprimer psipred_list dans les futures implementations</span> + <span class="n">ss_index_dict</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'H'</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'C'</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'E'</span><span class="p">:</span> <span class="mi">1</span><span class="p">}</span> + <span class="k">for</span> <span class="n">line_id</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ssdict</span><span class="o">.</span><span class="n">keys</span><span class="p">()):</span> + <span class="c1"># Modif champ ss_pred</span> + <span class="c1"># Si line_id</span> + <span class="k">if</span> <span class="n">line_id</span> <span class="o">></span> <span class="mi">1</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">ssdict</span><span class="p">[</span><span class="n">line_id</span><span class="p">][</span><span class="s1">'ss_pred'</span><span class="p">]</span> <span class="ow">not</span> <span class="ow">in</span> \ + <span class="bp">self</span><span class="o">.</span><span class="n">ssdict</span><span class="p">[</span><span class="n">line_id</span> <span class="o">-</span> <span class="mi">1</span><span class="p">][</span><span class="s1">'ss_pred'</span><span class="p">]:</span> + <span class="c1"># If next ss isn't the same, increment relative struct in</span> + <span class="c1"># ss_index_dict</span> + <span class="n">ss_index_dict</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">ssdict</span><span class="p">[</span><span class="n">line_id</span> <span class="o">-</span> <span class="mi">1</span><span class="p">][</span><span class="s1">'ss_pred'</span><span class="p">][</span><span class="mi">0</span><span class="p">]]</span> <span class="o">+=</span> <span class="mi">1</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">ssdict</span><span class="p">[</span><span class="n">line_id</span><span class="p">][</span><span class="s1">'ss_pred'</span><span class="p">]</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> + <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ssdict</span><span class="p">[</span><span class="n">line_id</span><span class="p">][</span><span class="s1">'ss_pred'</span><span class="p">],</span> + <span class="nb">str</span><span class="p">(</span><span class="n">ss_index_dict</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">ssdict</span><span class="p">[</span><span class="n">line_id</span><span class="p">][</span><span class="s1">'ss_pred'</span><span class="p">]])))</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">ss_matrix</span><span class="o">.</span><span class="n">append</span><span class="p">([</span><span class="bp">self</span><span class="o">.</span><span class="n">ssdict</span><span class="p">[</span><span class="n">line_id</span><span class="p">][</span><span class="s1">'up_index'</span><span class="p">],</span> + <span class="bp">self</span><span class="o">.</span><span class="n">ssdict</span><span class="p">[</span><span class="n">line_id</span><span class="p">][</span><span class="s1">'up_residue'</span><span class="p">],</span> + <span class="bp">self</span><span class="o">.</span><span class="n">ssdict</span><span class="p">[</span><span class="n">line_id</span><span class="p">][</span><span class="s1">'ss_pred'</span><span class="p">],</span> + <span class="bp">self</span><span class="o">.</span><span class="n">ssdict</span><span class="p">[</span><span class="n">line_id</span><span class="p">][</span><span class="s1">'ss_conf'</span><span class="p">]])</span></div> + +<div class="viewcode-block" id="SsList.write_ssfasta"><a class="viewcode-back" href="../../ariaec.html#ariaec.protein.SsList.write_ssfasta">[docs]</a> <span class="k">def</span> <span class="nf">write_ssfasta</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="s2">"pdbid"</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> filename :</span> +<span class="sd"> param desc:</span> +<span class="sd"> desc :</span> +<span class="sd"> (Default value = "pdbid")</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="s1">'w'</span><span class="p">))</span> <span class="k">as</span> <span class="n">psipred</span><span class="p">:</span> + <span class="n">psipred</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="s2">"> </span><span class="si">%s</span><span class="se">\n</span><span class="s2">"</span> <span class="o">%</span> <span class="n">desc</span><span class="p">))</span> + <span class="n">psipred</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">_</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="bp">self</span><span class="o">.</span><span class="n">ss_matrix</span><span class="p">)[</span><span class="mi">2</span><span class="p">]])))</span></div> + +<div class="viewcode-block" id="SsList.read_indextableplus"><a class="viewcode-back" href="../../ariaec.html#ariaec.protein.SsList.read_indextableplus">[docs]</a> <span class="k">def</span> <span class="nf">read_indextableplus</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> filename :</span> +<span class="sd"> return:</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">c</span> <span class="o">=</span> <span class="mi">0</span> + <span class="n">error_list</span> <span class="o">=</span> <span class="p">[]</span> + <span class="n">ss_index_dict</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'H'</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'C'</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'E'</span><span class="p">:</span> <span class="mi">1</span><span class="p">}</span> + <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> + <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">f</span><span class="p">:</span> + <span class="n">indxplus_match</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indxplus_reg</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">line</span><span class="p">)</span> + <span class="k">if</span> <span class="n">line</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">"up_"</span><span class="p">):</span> + <span class="k">continue</span> + <span class="k">elif</span> <span class="n">indxplus_match</span><span class="p">:</span> + + <span class="c1"># TODO: Other method to replace ss code ?</span> + <span class="c1"># => build indx_list with group_dict !</span> + <span class="n">ss</span> <span class="o">=</span> <span class="n">indxplus_match</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="s1">'ss_pred'</span><span class="p">)</span> + <span class="n">ss_start</span> <span class="o">=</span> <span class="n">indxplus_match</span><span class="o">.</span><span class="n">start</span><span class="p">(</span><span class="s1">'ss_pred'</span><span class="p">)</span> + <span class="n">line</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">line</span><span class="p">[:</span><span class="n">ss_start</span><span class="p">],</span> <span class="n">ss</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">ss_index_dict</span><span class="p">[</span><span class="n">ss</span><span class="p">]),</span> + <span class="n">line</span><span class="p">[</span><span class="n">ss_start</span> <span class="o">+</span> <span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">]])</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">ss_matrix</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">ss_matrix</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">2</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">!=</span> <span class="n">ss</span><span class="p">:</span> + <span class="c1"># Si ss est une structure secondaire diff, on incremente</span> + <span class="c1"># la valeur de l'ancienne dans ss_index_dict</span> + <span class="n">ss_index_dict</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">ss_matrix</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">2</span><span class="p">][</span><span class="mi">0</span><span class="p">]]</span> <span class="o">+=</span> <span class="mi">1</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">ss_matrix</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">())</span> + <span class="n">c</span> <span class="o">+=</span> <span class="mi">1</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">error_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ss_matrix</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> + <span class="k">try</span><span class="p">:</span> + <span class="k">assert</span> <span class="n">c</span> <span class="o">==</span> <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ss_matrix</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span> + <span class="k">except</span> <span class="ne">AssertionError</span><span class="p">:</span> + <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="s1">'Uneven number of matching lines (</span><span class="si">%d</span><span class="s1">) '</span> + <span class="s1">'vs up_index (</span><span class="si">%d</span><span class="s1">) : lines </span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="n">c</span><span class="p">,</span> + <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ss_matrix</span><span class="p">[</span> + <span class="o">-</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]),</span> + <span class="nb">str</span><span class="p">(</span><span class="n">error_list</span><span class="p">)))</span></div> + + <span class="k">def</span> <span class="nf">_read_ssdist</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">infile</span><span class="p">,</span> <span class="n">filename</span><span class="o">=</span><span class="s1">''</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> infile :</span> +<span class="sd"> param filename:</span> +<span class="sd"> filename :</span> +<span class="sd"> (Default value = '')</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Reading distance file </span><span class="si">{0}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">filename</span><span class="p">))</span> + <span class="n">c</span> <span class="o">=</span> <span class="mi">0</span> + <span class="n">atom_list</span> <span class="o">=</span> <span class="p">[]</span> + <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">infile</span><span class="p">:</span> + <span class="n">c</span> <span class="o">+=</span> <span class="mi">1</span> + <span class="n">line_list</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">'</span><span class="se">\t</span><span class="s1">'</span><span class="p">)</span> + <span class="n">dist_sdev_list</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ss_dist_reg</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="n">line</span><span class="p">)</span> + <span class="k">if</span> <span class="n">line</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">'i'</span><span class="p">):</span> + <span class="n">atom_list</span> <span class="o">=</span> <span class="p">[</span><span class="n">elt</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">for</span> <span class="n">elt</span> <span class="ow">in</span> <span class="n">line_list</span><span class="p">[</span><span class="mi">1</span><span class="p">:]]</span> + <span class="k">elif</span> <span class="n">re</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="sa">r</span><span class="s1">'^([HE],[HE]\+\d)'</span><span class="p">,</span> <span class="n">line</span><span class="p">):</span> + <span class="n">bond_type</span> <span class="o">=</span> <span class="n">line</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="mi">5</span><span class="p">]</span> + <span class="bp">self</span><span class="o">.</span><span class="n">ssdist</span><span class="p">[</span><span class="n">bond_type</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> + <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="p">(</span><span class="n">dist</span><span class="p">,</span> <span class="n">sdev</span><span class="p">)</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">dist_sdev_list</span><span class="p">):</span> + <span class="n">dist</span><span class="p">,</span> <span class="n">sdev</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">dist</span><span class="p">),</span> <span class="nb">float</span><span class="p">(</span><span class="n">sdev</span><span class="p">)</span> + <span class="k">if</span> <span class="n">sdev</span> <span class="o"><</span> <span class="mf">0.1</span><span class="p">:</span> + <span class="c1"># TODO: explain more why we choose 0.1 as treshold !</span> + <span class="n">dist</span><span class="p">,</span> <span class="n">sdev</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span> + <span class="bp">self</span><span class="o">.</span><span class="n">ssdist</span><span class="p">[</span><span class="n">bond_type</span><span class="p">][</span><span class="n">atom_list</span><span class="p">[</span><span class="n">i</span><span class="p">]]</span> <span class="o">=</span> <span class="p">(</span><span class="n">dist</span><span class="p">,</span> <span class="n">sdev</span><span class="p">)</span> + <span class="k">try</span><span class="p">:</span> + <span class="k">assert</span> <span class="nb">len</span><span class="p">(</span><span class="n">dist_sdev_list</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">atom_list</span><span class="p">)</span> + <span class="k">except</span> <span class="ne">AssertionError</span><span class="p">:</span> + <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span> + <span class="s1">'Error at </span><span class="si">%s</span><span class="s1">, line </span><span class="si">%d</span><span class="s1"> : uneven number of columns '</span> + <span class="s1">'between current line and header'</span> <span class="o">%</span> <span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="n">c</span><span class="p">))</span> + +<div class="viewcode-block" id="SsList.read_ssdist"><a class="viewcode-back" href="../../ariaec.html#ariaec.protein.SsList.read_ssdist">[docs]</a> <span class="k">def</span> <span class="nf">read_ssdist</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ssdistpath</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Read average dist file generated using PDB</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> ssdistpath :</span> +<span class="sd"> return: (Default value = None)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">filename</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">ssdistpath</span><span class="p">)</span> <span class="k">if</span> <span class="n">ssdistpath</span> <span class="k">else</span> <span class="kc">None</span> + + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Loading ss dist file"</span><span class="p">)</span> + <span class="k">try</span><span class="p">:</span> + <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_read_ssdist</span><span class="p">(</span><span class="n">f</span><span class="p">,</span> <span class="n">filename</span><span class="o">=</span><span class="n">filename</span><span class="p">)</span> + <span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">message</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">message</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"Can't load given ss dist file..."</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"Loading default ss dist file"</span><span class="p">)</span> + <span class="k">with</span> <span class="n">pkgr</span><span class="o">.</span><span class="n">resource_stream</span><span class="p">(</span><span class="vm">__name__</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">SS_DIST</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_read_ssdist</span><span class="p">(</span><span class="n">f</span><span class="p">,</span> <span class="n">filename</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">SS_DIST</span><span class="p">)</span></div> + +<div class="viewcode-block" id="SsList.seq_sublist"><a class="viewcode-back" href="../../ariaec.html#ariaec.protein.SsList.seq_sublist">[docs]</a> <span class="k">def</span> <span class="nf">seq_sublist</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sequence</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Check and adjust sslist with given sequence</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> sequence :</span> +<span class="sd"> input amino acid sequence (one letter format)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Adjust sslist related to sequence </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">sequence</span><span class="p">))</span> + <span class="n">tableplus_inv</span> <span class="o">=</span> <span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="bp">self</span><span class="o">.</span><span class="n">ss_matrix</span><span class="p">)</span> + <span class="c1"># Get amino acid sequence related to secondary structure prediction</span> + <span class="n">tableplus_seq</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">tableplus_inv</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> + + <span class="k">if</span> <span class="n">sequence</span> <span class="ow">in</span> <span class="n">tableplus_seq</span><span class="p">:</span> + <span class="n">imin</span> <span class="o">=</span> <span class="n">tableplus_seq</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">sequence</span><span class="p">)</span> + <span class="n">imax</span> <span class="o">=</span> <span class="n">imin</span> <span class="o">+</span> <span class="nb">len</span><span class="p">(</span><span class="n">sequence</span><span class="p">)</span> + <span class="k">try</span><span class="p">:</span> + <span class="k">assert</span> <span class="n">tableplus_seq</span><span class="p">[</span><span class="n">imin</span><span class="p">:</span><span class="n">imax</span><span class="p">]</span> <span class="o">==</span> <span class="n">sequence</span> + <span class="k">except</span> <span class="ne">AssertionError</span><span class="p">:</span> + <span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="s1">'Missing residues in indextableplus file'</span><span class="p">)</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">ss_matrix</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ss_matrix</span><span class="p">[</span><span class="n">imin</span><span class="p">:</span><span class="n">imax</span><span class="p">]</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Secondary structure matrix relative to given "</span> + <span class="s2">"sequence:</span><span class="se">\n</span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">ss_matrix</span><span class="p">)</span></div></div> + <span class="c1"># TODO: read_dssp</span> + + +<div class="viewcode-block" id="AminoAcidSequence"><a class="viewcode-back" href="../../ariaec.html#ariaec.protein.AminoAcidSequence">[docs]</a><span class="k">class</span> <span class="nc">AminoAcidSequence</span><span class="p">(</span><span class="n">SequenceList</span><span class="o">.</span><span class="n">SequenceList</span><span class="p">,</span> <span class="nb">object</span><span class="p">):</span> + <span class="sd">"""Amino acid sequence"""</span> + <span class="n">startres_reg</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">"^\s*residue\s+(?P<name>[A-Za-z]{1,4})"</span><span class="p">,</span> <span class="n">flags</span><span class="o">=</span><span class="n">re</span><span class="o">.</span><span class="n">I</span><span class="p">)</span> + <span class="n">end_reg</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">"^\s*end"</span><span class="p">,</span> <span class="n">flags</span><span class="o">=</span><span class="n">re</span><span class="o">.</span><span class="n">I</span><span class="p">)</span> + <span class="n">restatement_reg</span> <span class="o">=</span> <span class="p">{</span> + <span class="s2">"atom"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">"atom\s+(?P<name>\w{1,4})\s*(?:.*?"</span> + <span class="sa">r</span><span class="s2">"(?:(?:type=(?P<type>\w{1,4}))|"</span> + <span class="sa">r</span><span class="s2">"(?:"</span> + <span class="sa">r</span><span class="s2">"(?:charge= ?)(?P<charge>-?\d\.\d{1,3}))|"</span> + <span class="sa">r</span><span class="s2">"(?:(?:mass=)(?P<mass>[- ]\d\.\d{1,3}))|"</span> + <span class="sa">r</span><span class="s2">"(?:(?:excl\s*=\s*)\((?P<exclude>[^(]+)\)))){1,4}"</span> + <span class="sa">r</span><span class="s2">"\s*end"</span><span class="p">,</span> + <span class="n">flags</span><span class="o">=</span><span class="n">re</span><span class="o">.</span><span class="n">I</span><span class="p">),</span> + <span class="s2">"bond"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">"bond\s+(?P<atm1>\w{1,4})\s+(?P<atm2>\w{1,4})"</span><span class="p">,</span> + <span class="n">flags</span><span class="o">=</span><span class="n">re</span><span class="o">.</span><span class="n">I</span><span class="p">),</span> + <span class="s2">"improper"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">"improper\s+(?P<atm1>\w{1,4})"</span> + <span class="sa">r</span><span class="s2">"\s+(?P<atm2>\w{1,4})\s+(?P<atm3>\w{1,4})"</span> + <span class="sa">r</span><span class="s2">"\s+(?P<atm4>\w{1,4})"</span><span class="p">,</span> <span class="n">flags</span><span class="o">=</span><span class="n">re</span><span class="o">.</span><span class="n">I</span><span class="p">),</span> + <span class="s2">"dihedral"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">"dihedral\s+(?P<atm1>\w{1,4})"</span> + <span class="sa">r</span><span class="s2">"\s+(?P<atm2>\w{1,4})\s+(?P<atm3>\w{1,4})"</span> + <span class="sa">r</span><span class="s2">"\s+(?P<atm4>\w{1,4})"</span><span class="p">,</span> <span class="n">flags</span><span class="o">=</span><span class="n">re</span><span class="o">.</span><span class="n">I</span><span class="p">),</span> + <span class="s2">"dono"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">"dono\s+(?P<hatm>\w{1,4})\s+(?:(?P<heavatm>\w{1,"</span> + <span class="sa">r</span><span class="s2">"4})|(?:</span><span class="se">\"</span><span class="s2">\s*</span><span class="se">\"</span><span class="s2">))?"</span><span class="p">,</span> <span class="n">flags</span><span class="o">=</span><span class="n">re</span><span class="o">.</span><span class="n">I</span><span class="p">),</span> + <span class="s2">"acce"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">"^\s*acce\s+(?P<accatm>\w{1,4})\s+(?:(?P<antatm>\w{1,"</span> + <span class="sa">r</span><span class="s2">"4})|(?:</span><span class="se">\"</span><span class="s2">\s*</span><span class="se">\"</span><span class="s2">))"</span><span class="p">,</span> <span class="n">flags</span><span class="o">=</span><span class="n">re</span><span class="o">.</span><span class="n">I</span><span class="p">)</span> + <span class="p">}</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">topologyfile</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> + +<span class="sd"> :param topologyfile:</span> +<span class="sd"> :param args:</span> +<span class="sd"> :param kwargs:</span> +<span class="sd"> :return:</span> +<span class="sd"> """</span> + <span class="nb">super</span><span class="p">(</span><span class="n">AminoAcidSequence</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_topfile</span> <span class="o">=</span> <span class="n">topologyfile</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_topology</span> <span class="o">=</span> <span class="kc">None</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_topok</span> <span class="o">=</span> <span class="kc">False</span> + <span class="bp">self</span><span class="o">.</span><span class="n">sequence</span> <span class="o">=</span> <span class="s1">''</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">humanidx</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">""":return:"""</span> + <span class="k">return</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sequence</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">topology</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Topology dict with 3l code as dict key</span> +<span class="sd"> :return:</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_topology</span> <span class="ow">or</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_topok</span><span class="p">:</span> + <span class="n">topo</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">readtopo</span><span class="p">()</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">aalist</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_topology</span> <span class="o">=</span> <span class="p">[(</span><span class="n">aa</span><span class="p">,</span> <span class="n">topo</span><span class="p">[</span><span class="n">aa</span><span class="p">])</span> <span class="k">for</span> <span class="n">aa</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">aalist</span><span class="p">]</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_topok</span> <span class="o">=</span> <span class="kc">True</span> + <span class="k">else</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_topology</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">iteritems</span><span class="p">(</span><span class="n">topo</span><span class="p">))</span> + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_topology</span> + + <span class="k">def</span> <span class="nf">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span> + <span class="sd">"""</span> + +<span class="sd"> :param key:</span> +<span class="sd"> :return:</span> +<span class="sd"> """</span> + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">aalist</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> + + <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> + +<span class="sd"> :return:</span> +<span class="sd"> """</span> + <span class="k">return</span> <span class="s2">"Amino Acid sequence </span><span class="si">%s</span><span class="s2"> (</span><span class="si">%d</span><span class="s2">)"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sequence</span><span class="p">,</span> + <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sequence</span><span class="p">))</span> + +<div class="viewcode-block" id="AminoAcidSequence.readtopo"><a class="viewcode-back" href="../../ariaec.html#ariaec.protein.AminoAcidSequence.readtopo">[docs]</a> <span class="k">def</span> <span class="nf">readtopo</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Parse topology file for amino acids</span> +<span class="sd"> :return:</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">topo</span> <span class="o">=</span> <span class="p">{}</span> + <span class="k">with</span> <span class="n">pkgr</span><span class="o">.</span><span class="n">resource_stream</span><span class="p">(</span><span class="vm">__name__</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_topfile</span><span class="p">)</span> <span class="k">as</span> <span class="n">tpf</span><span class="p">:</span> + <span class="n">res_flag</span> <span class="o">=</span> <span class="kc">False</span> + <span class="n">resname</span> <span class="o">=</span> <span class="s2">""</span> + <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">tpf</span><span class="p">:</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">res_flag</span><span class="p">:</span> + <span class="n">match</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">startres_reg</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">line</span><span class="p">)</span> + <span class="k">if</span> <span class="n">match</span><span class="p">:</span> + <span class="n">res_flag</span> <span class="o">=</span> <span class="kc">True</span> + <span class="n">resname</span> <span class="o">=</span> <span class="n">match</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="s2">"name"</span><span class="p">)</span> + <span class="n">topo</span><span class="p">[</span><span class="n">resname</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> + <span class="k">else</span><span class="p">:</span> + <span class="c1"># Check if end of residue statement</span> + <span class="n">match</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">end_reg</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">line</span><span class="p">)</span> + <span class="k">if</span> <span class="n">match</span><span class="p">:</span> + <span class="n">res_flag</span> <span class="o">=</span> <span class="kc">False</span> + <span class="n">resname</span> <span class="o">=</span> <span class="s2">""</span> + <span class="k">continue</span> + <span class="c1"># Walk along reg dict</span> + <span class="k">for</span> <span class="n">regid</span><span class="p">,</span> <span class="n">reg</span> <span class="ow">in</span> <span class="n">iteritems</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">restatement_reg</span><span class="p">):</span> + <span class="k">if</span> <span class="n">regid</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">topo</span><span class="p">[</span><span class="n">resname</span><span class="p">]:</span> + <span class="n">topo</span><span class="p">[</span><span class="n">resname</span><span class="p">][</span><span class="n">regid</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span> + <span class="k">if</span> <span class="n">regid</span> <span class="o">==</span> <span class="s2">"bond"</span><span class="p">:</span> + <span class="n">match</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">findall</span><span class="p">(</span><span class="n">reg</span><span class="p">,</span> <span class="n">line</span><span class="p">)</span> + <span class="k">if</span> <span class="n">match</span><span class="p">:</span> + <span class="n">topo</span><span class="p">[</span><span class="n">resname</span><span class="p">][</span><span class="n">regid</span><span class="p">]</span> <span class="o">+=</span> <span class="n">match</span> + <span class="k">break</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">match</span> <span class="o">=</span> <span class="n">reg</span><span class="o">.</span><span class="n">search</span><span class="p">(</span><span class="n">line</span><span class="p">)</span> + <span class="k">if</span> <span class="n">match</span><span class="p">:</span> + <span class="k">if</span> <span class="n">regid</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"improper"</span><span class="p">,</span> <span class="s2">"dihedral"</span><span class="p">):</span> + <span class="c1"># Add tuple into list since we need atm order</span> + <span class="n">topo</span><span class="p">[</span><span class="n">resname</span><span class="p">][</span><span class="n">regid</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">match</span><span class="o">.</span><span class="n">groups</span><span class="p">())</span> + <span class="k">else</span><span class="p">:</span> + <span class="c1"># Add dict</span> + <span class="n">topo</span><span class="p">[</span><span class="n">resname</span><span class="p">][</span><span class="n">regid</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">match</span><span class="o">.</span><span class="n">groupdict</span><span class="p">())</span> + <span class="k">break</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Topology used:</span><span class="se">\n</span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">ppdict</span><span class="p">(</span><span class="n">topo</span><span class="p">))</span> + <span class="k">return</span> <span class="n">topo</span></div> + +<div class="viewcode-block" id="AminoAcidSequence.read"><a class="viewcode-back" href="../../ariaec.html#ariaec.protein.AminoAcidSequence.read">[docs]</a> <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> filename :</span> +<span class="sd"> return:</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># TODO: smarter reader checking type of file (fasta, etc ...)</span> + <span class="c1"># TODO: capturing has some troubles with unicode ...</span> + <span class="c1"># with Capturing() as output:</span> + <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">filename</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s1">'.seq'</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">ReadSeq</span><span class="p">(</span><span class="n">text_type</span><span class="p">(</span><span class="n">filename</span><span class="p">))</span> + <span class="k">else</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">ReadFasta</span><span class="p">(</span><span class="n">text_type</span><span class="p">(</span><span class="n">filename</span><span class="p">))</span> + <span class="c1"># LOG.info(''.join(output))</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">sequence</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">((</span><span class="n">AmnAcd</span><span class="o">.</span><span class="n">AminoAcid</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">_</span><span class="p">))[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> + <span class="bp">self</span><span class="o">.</span><span class="n">aalist</span><span class="p">))</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Amino acid sequence:</span><span class="se">\t</span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">sequence</span><span class="p">)</span></div></div> + + +<div class="viewcode-block" id="Protein"><a class="viewcode-back" href="../../ariaec.html#ariaec.protein.Protein">[docs]</a><span class="k">class</span> <span class="nc">Protein</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> + <span class="sd">"""Protein class"""</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sett</span><span class="p">):</span> + <span class="sd">"""</span> + +<span class="sd"> :param sett:</span> +<span class="sd"> :return:</span> +<span class="sd"> """</span> + <span class="bp">self</span><span class="o">.</span><span class="n">aa_sequence</span> <span class="o">=</span> <span class="n">AminoAcidSequence</span><span class="p">(</span><span class="n">sett</span><span class="o">.</span><span class="n">TOPO</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">sec_struct</span> <span class="o">=</span> <span class="n">SsList</span><span class="p">(</span><span class="n">sett</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">index</span> <span class="o">=</span> <span class="p">[]</span> <span class="c1"># Index starting from 1</span> + <span class="bp">self</span><span class="o">.</span><span class="n">seqfile_path</span> <span class="o">=</span> <span class="sa">u</span><span class="s1">''</span> + +<div class="viewcode-block" id="Protein.sync_index"><a class="viewcode-back" href="../../ariaec.html#ariaec.protein.Protein.sync_index">[docs]</a> <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">sync_index</span><span class="p">(</span><span class="n">index1</span><span class="p">,</span> <span class="n">index2</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Return humanidx with upper min from existing humanidx</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> index1 :</span> +<span class="sd"> param index2:</span> +<span class="sd"> index2 :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">if</span> <span class="n">index1</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">index2</span><span class="p">:</span> + <span class="k">return</span> <span class="n">index1</span> + <span class="k">elif</span> <span class="n">index2</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">index1</span><span class="p">:</span> + <span class="k">return</span> <span class="n">index2</span> + <span class="k">elif</span> <span class="ow">not</span> <span class="n">index1</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">index2</span><span class="p">:</span> + <span class="k">return</span> <span class="p">[]</span> + <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">index1</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">index2</span><span class="p">):</span> + <span class="k">if</span> <span class="nb">min</span><span class="p">(</span><span class="n">index1</span><span class="p">)</span> <span class="o"><</span> <span class="nb">min</span><span class="p">(</span><span class="n">index2</span><span class="p">):</span> + <span class="k">return</span> <span class="n">index2</span> + <span class="k">else</span><span class="p">:</span> + <span class="k">return</span> <span class="n">index1</span> + <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">index1</span><span class="p">)</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="n">index2</span><span class="p">):</span> + <span class="k">raise</span> <span class="ne">IndexError</span><span class="p">(</span> + <span class="s2">"Please check humanidx list from input files. They "</span> + <span class="s2">"are not the same length !"</span><span class="p">)</span></div> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">topology</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">""":return:"""</span> + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">topology</span> + +<div class="viewcode-block" id="Protein.set_aa_sequence"><a class="viewcode-back" href="../../ariaec.html#ariaec.protein.Protein.set_aa_sequence">[docs]</a> <span class="k">def</span> <span class="nf">set_aa_sequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="p">,</span> <span class="n">ssidx</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> filename :</span> +<span class="sd"> param ssidx:</span> +<span class="sd"> ssidx :</span> +<span class="sd"> (Default value = False)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="bp">self</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">index</span> <span class="o">=</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">sequence</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">sec_struct</span><span class="o">.</span><span class="n">ss_matrix</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">sec_struct</span><span class="o">.</span><span class="n">seq_sublist</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">sequence</span><span class="p">)</span> + <span class="k">if</span> <span class="n">ssidx</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Using secondary structure index for amino acid "</span> + <span class="s2">"sequence"</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sync_index</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">humanidx</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">sec_struct</span><span class="o">.</span><span class="n">index</span><span class="p">)</span></div> + +<div class="viewcode-block" id="Protein.set_sec_struct"><a class="viewcode-back" href="../../ariaec.html#ariaec.protein.Protein.set_sec_struct">[docs]</a> <span class="k">def</span> <span class="nf">set_sec_struct</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="p">,</span> <span class="n">ssdist_filename</span><span class="o">=</span><span class="s1">''</span><span class="p">,</span> <span class="n">ssidx</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> filename :</span> +<span class="sd"> param ssdist_filename:</span> +<span class="sd"> ssidx :</span> +<span class="sd"> return: (Default value = False)</span> +<span class="sd"> ssdist_filename :</span> +<span class="sd"> (Default value = '')</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># TODO: Add test checking if both amino acid and sec_struct sequence</span> + <span class="c1"># have the same length after seq_sublist call</span> + <span class="c1"># Read secondary structure prediction file</span> + <span class="bp">self</span><span class="o">.</span><span class="n">sec_struct</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span> + <span class="k">if</span> <span class="n">ssdist_filename</span><span class="p">:</span> + <span class="c1"># Read secondary distance matrix</span> + <span class="bp">self</span><span class="o">.</span><span class="n">sec_struct</span><span class="o">.</span><span class="n">read_ssdist</span><span class="p">(</span><span class="n">ssdist_filename</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"No secondary structure distance file found. Please "</span> + <span class="s2">"check configuration file"</span><span class="p">)</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">sequence</span><span class="p">:</span> + <span class="c1"># Synchronise sec structure sequence with aa sequence</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Align secondary structure sequence with protein "</span> + <span class="s2">"sequence"</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">sec_struct</span><span class="o">.</span><span class="n">seq_sublist</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">sequence</span><span class="p">)</span> + <span class="k">if</span> <span class="n">ssidx</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Using secondary structure index for amino acid "</span> + <span class="s2">"sequence"</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sync_index</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">humanidx</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">sec_struct</span><span class="o">.</span><span class="n">index</span><span class="p">)</span></div> + +<div class="viewcode-block" id="Protein.write_seq"><a class="viewcode-back" href="../../ariaec.html#ariaec.protein.Protein.write_seq">[docs]</a> <span class="k">def</span> <span class="nf">write_seq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">outfile</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> outfile :</span> +<span class="sd"> return:</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># TODO: same as above, trouble with unicode calls inside capturing</span> + <span class="c1"># with Capturing() as output:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">WriteSeq</span><span class="p">(</span><span class="n">text_type</span><span class="p">(</span><span class="n">outfile</span><span class="p">))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">seqfile_path</span> <span class="o">=</span> <span class="s1">'</span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="n">outfile</span></div></div> + + +<span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s2">"__main__"</span><span class="p">:</span> + <span class="kn">from</span> <span class="nn">.settings</span> <span class="k">import</span> <span class="n">AriaEcSettings</span> + <span class="n">settings</span> <span class="o">=</span> <span class="n">AriaEcSettings</span><span class="p">(</span><span class="s2">"setup"</span><span class="p">)</span> + <span class="n">prot</span> <span class="o">=</span> <span class="n">Protein</span><span class="p">(</span><span class="n">settings</span><span class="p">)</span> + <span class="n">prot</span><span class="o">.</span><span class="n">set_aa_sequence</span><span class="p">(</span><span class="s2">"../examples/data/BPT1_BOVIN.fa"</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">prot</span><span class="o">.</span><span class="n">aa_sequence</span><span class="p">)</span> +</pre></div> + + </div> + <div class="articleComments"> + + </div> + </div> + <footer> + + + <hr/> + + <div role="contentinfo"> + <p> + © Copyright 2017, Fabrice Allain. + + </p> + </div> + Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. + +</footer> + + </div> + </div> + + </section> + + </div> + + + + + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT:'../../', + VERSION:'0.2', + COLLAPSE_INDEX:false, + FILE_SUFFIX:'.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt' + }; + </script> + <script type="text/javascript" src="../../_static/jquery.js"></script> + <script type="text/javascript" src="../../_static/underscore.js"></script> + <script type="text/javascript" src="../../_static/doctools.js"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + + + + <script type="text/javascript" src="../../_static/js/theme.js"></script> + + + + + <script type="text/javascript"> + jQuery(function () { + SphinxRtdTheme.StickyNav.enable(); + }); + </script> + + +</body> +</html> \ No newline at end of file diff --git a/examples-dev/olds/_build/html/_modules/ariaec/protmap.html b/examples-dev/olds/_build/html/_modules/ariaec/protmap.html new file mode 100644 index 0000000000000000000000000000000000000000..bd9f8bd696ca8b6fba5b0c9016b3f247db5d4768 --- /dev/null +++ b/examples-dev/olds/_build/html/_modules/ariaec/protmap.html @@ -0,0 +1,2743 @@ + + +<!DOCTYPE html> +<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> +<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> +<head> + <meta charset="utf-8"> + + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <title>ariaec.protmap — AriaEc 0.2 documentation</title> + + + + + + + + + + + + + + + + + + <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> + + + + + + <link rel="index" title="Index" + href="../../genindex.html"/> + <link rel="search" title="Search" href="../../search.html"/> + <link rel="top" title="AriaEc 0.2 documentation" href="../../index.html"/> + <link rel="up" title="Module code" href="../index.html"/> + + + <script src="../../_static/js/modernizr.min.js"></script> + +</head> + +<body class="wy-body-for-nav" role="document"> + + + <div class="wy-grid-for-nav"> + + + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search"> + + + + <a href="../../index.html" class="icon icon-home"> AriaEc + + + + </a> + + + + + <div class="version"> + 0.2 + </div> + + + + +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + + + </div> + + <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> + + + + + + + <!-- Local TOC --> + <div class="local-toc"></div> + + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> + + + <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> + + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">AriaEc</a> + + </nav> + + + + <div class="wy-nav-content"> + <div class="rst-content"> + + + + + + + + + + + + + + + + +<div role="navigation" aria-label="breadcrumbs navigation"> + + <ul class="wy-breadcrumbs"> + + <li><a href="../../index.html">Docs</a> »</li> + + <li><a href="../index.html">Module code</a> »</li> + + <li>ariaec.protmap</li> + + + <li class="wy-breadcrumbs-aside"> + + + + </li> + + </ul> + + + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <h1>Source code for ariaec.protmap</h1><div class="highlight"><pre> +<span></span><span class="c1"># coding=utf-8</span> +<span class="sd">"""</span> +<span class="sd"> ARIA Evolutionary Constraints Tools</span> +<span class="sd">"""</span> +<span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span><span class="p">,</span> <span class="n">division</span><span class="p">,</span> <span class="n">print_function</span> +<span class="kn">from</span> <span class="nn">collections</span> <span class="k">import</span> <span class="n">defaultdict</span> +<span class="kn">from</span> <span class="nn">copy</span> <span class="k">import</span> <span class="n">deepcopy</span> + +<span class="kn">import</span> <span class="nn">os</span> +<span class="kn">import</span> <span class="nn">re</span> +<span class="kn">import</span> <span class="nn">csv</span> +<span class="kn">import</span> <span class="nn">six</span> +<span class="kn">import</span> <span class="nn">string</span> +<span class="kn">import</span> <span class="nn">logging</span> +<span class="kn">import</span> <span class="nn">textwrap</span> +<span class="kn">import</span> <span class="nn">datetime</span> +<span class="kn">import</span> <span class="nn">operator</span> +<span class="kn">import</span> <span class="nn">itertools</span> +<span class="kn">import</span> <span class="nn">collections</span> + +<span class="kn">import</span> <span class="nn">matplotlib</span> +<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> +<span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span> +<span class="kn">import</span> <span class="nn">seaborn</span> <span class="k">as</span> <span class="nn">sns</span> +<span class="kn">import</span> <span class="nn">sklearn.metrics</span> <span class="k">as</span> <span class="nn">skm</span> + +<span class="kn">import</span> <span class="nn">aria.ConversionTable</span> <span class="k">as</span> <span class="nn">ConversionTable</span> +<span class="kn">import</span> <span class="nn">aria.legacy.AminoAcid</span> <span class="k">as</span> <span class="nn">AminoAcid</span> + +<span class="kn">from</span> <span class="nn">matplotlib</span> <span class="k">import</span> <span class="n">pyplot</span> <span class="k">as</span> <span class="n">plt</span> +<span class="kn">from</span> <span class="nn">matplotlib.lines</span> <span class="k">import</span> <span class="n">Line2D</span> + +<span class="kn">from</span> <span class="nn">.common</span> <span class="k">import</span> <span class="p">(</span><span class="n">tickmin</span><span class="p">,</span> <span class="n">tickrot</span><span class="p">,</span> <span class="n">titleprint</span><span class="p">,</span> <span class="n">addtup</span><span class="p">)</span> +<span class="kn">from</span> <span class="nn">.ndconv</span> <span class="k">import</span> <span class="n">net_deconv</span> + + +<span class="n">matplotlib</span><span class="o">.</span><span class="n">use</span><span class="p">(</span><span class="s2">"Agg"</span><span class="p">,</span> <span class="n">warn</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +<span class="n">LOG</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span> +<span class="c1"># TODO: check dataframe symmetry or always use unstack</span> +<span class="c1"># TODO: objet MapContainer contenant les differentes maps en attributs ! (et</span> +<span class="c1"># non en clef de dict)</span> + + +<div class="viewcode-block" id="Map"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.Map">[docs]</a><span class="k">class</span> <span class="nc">Map</span><span class="p">(</span><span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">):</span> + <span class="sd">"""Distance/contact matrix"""</span> + + <span class="n">mtype_choices</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'contact'</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span> <span class="s1">'distance'</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="s2">"score"</span><span class="p">:</span> <span class="nb">float</span><span class="p">}</span> + +<div class="viewcode-block" id="Map.update"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.Map.update">[docs]</a> <span class="k">def</span> <span class="nf">update</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> args :</span> +<span class="sd"> param kwargs:</span> +<span class="sd"> *args :</span> +<span class="sd"> </span> +<span class="sd"> **kwargs :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="nb">super</span><span class="p">(</span><span class="n">Map</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></div> + + <span class="c1"># def _constructor_expanddim(self):</span> + <span class="c1"># super(Map, self)._constructor_expanddim()</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">columns</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">mtype</span><span class="o">=</span><span class="s1">'distance'</span><span class="p">,</span> + <span class="n">duplicate_levels</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">sym</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> + <span class="n">desc</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> index</span> +<span class="sd"> columns</span> +<span class="sd"> mtype</span> +<span class="sd"> duplicate_levels</span> +<span class="sd"> Allow duplicate levels in dataframe</span> +<span class="sd"> data</span> +<span class="sd"> dtype</span> +<span class="sd"> sym</span> +<span class="sd"> desc</span> +<span class="sd"> path</span> +<span class="sd"> """</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">dtype</span><span class="p">:</span> + <span class="n">dtype</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">check_type</span><span class="p">(</span><span class="n">mtype</span><span class="p">)</span> + <span class="c1"># TODO: should probably init to np.NaN</span> + <span class="k">if</span> <span class="n">data</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> + <span class="n">data</span> <span class="o">=</span> <span class="kc">False</span> <span class="k">if</span> <span class="n">dtype</span> <span class="o">==</span> <span class="nb">bool</span> <span class="k">else</span> <span class="n">np</span><span class="o">.</span><span class="n">NaN</span> + <span class="nb">super</span><span class="p">(</span><span class="n">Map</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="n">data</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="n">dtype</span><span class="p">,</span> <span class="n">index</span><span class="o">=</span><span class="n">index</span><span class="p">,</span> + <span class="n">columns</span><span class="o">=</span><span class="n">columns</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">duplicate_levels</span> <span class="o">=</span> <span class="n">duplicate_levels</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mtype</span> <span class="o">=</span> <span class="n">mtype</span> + <span class="bp">self</span><span class="o">.</span><span class="n">dtype</span> <span class="o">=</span> <span class="n">dtype</span> + <span class="k">if</span> <span class="n">mtype</span> <span class="o">==</span> <span class="s2">"score"</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">sort_list</span> <span class="o">=</span> <span class="p">[]</span> + <span class="bp">self</span><span class="o">.</span><span class="n">sym</span> <span class="o">=</span> <span class="n">sym</span> + <span class="bp">self</span><span class="o">.</span><span class="n">desc</span> <span class="o">=</span> <span class="n">desc</span> + <span class="bp">self</span><span class="o">.</span><span class="n">path</span> <span class="o">=</span> <span class="n">path</span> + + <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="k">return</span> <span class="nb">super</span><span class="p">(</span><span class="n">Map</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__str__</span><span class="p">()</span> + +<div class="viewcode-block" id="Map.sortedset"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.Map.sortedset">[docs]</a> <span class="k">def</span> <span class="nf">sortedset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">human_idx</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> human_idx :</span> +<span class="sd"> (Default value = False)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># Remove duplicate in sort_list</span> + <span class="sd">"""</span> + +<span class="sd"> :param human_idx:</span> +<span class="sd"> :return:</span> +<span class="sd"> """</span> + <span class="n">n</span> <span class="o">=</span> <span class="mi">1</span> <span class="k">if</span> <span class="n">human_idx</span> <span class="k">else</span> <span class="mi">0</span> + <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s2">"sort_list"</span><span class="p">):</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">sym</span><span class="p">:</span> + <span class="c1"># Use OrderedDict to keep the order</span> + <span class="k">return</span> <span class="p">[(</span><span class="n">x</span> <span class="o">+</span> <span class="n">n</span><span class="p">,</span> <span class="n">y</span> <span class="o">+</span> <span class="n">n</span><span class="p">)</span> + <span class="k">for</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span> <span class="ow">in</span> + <span class="n">collections</span><span class="o">.</span><span class="n">OrderedDict</span><span class="o">.</span><span class="n">fromkeys</span><span class="p">(</span><span class="nb">frozenset</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> + <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> + <span class="bp">self</span><span class="o">.</span><span class="n">sort_list</span><span class="p">)]</span> + <span class="k">else</span><span class="p">:</span> + <span class="c1"># Asym matrix, no need to remove duplicate</span> + <span class="k">return</span> <span class="p">[(</span><span class="n">x</span> <span class="o">+</span> <span class="n">n</span><span class="p">,</span> <span class="n">y</span> <span class="o">+</span> <span class="n">n</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">sort_list</span><span class="p">]</span> + <span class="k">else</span><span class="p">:</span> + <span class="k">return</span> <span class="kc">None</span></div> + +<div class="viewcode-block" id="Map.check_type"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.Map.check_type">[docs]</a> <span class="k">def</span> <span class="nf">check_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mtype</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> mtype :</span> +<span class="sd"> return:</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">mtype_choices</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">mtype</span><span class="p">)</span> + <span class="k">if</span> <span class="n">value</span><span class="p">:</span> + <span class="k">return</span> <span class="n">value</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"Map type should be in list </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mtype_choices</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span> + <span class="k">return</span> <span class="kc">None</span></div> + +<div class="viewcode-block" id="Map.reduce"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.Map.reduce">[docs]</a> <span class="k">def</span> <span class="nf">reduce</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""Low complexcity dataframe"""</span> + <span class="k">raise</span> <span class="ne">NotImplementedError</span></div> + +<div class="viewcode-block" id="Map.copy"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.Map.copy">[docs]</a> <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Copy the current map</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> **kwargs :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">raise</span> <span class="ne">NotImplementedError</span></div> + +<div class="viewcode-block" id="Map.remove"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.Map.remove">[docs]</a> <span class="k">def</span> <span class="nf">remove</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">rm_list</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> rm_list :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># Reset values at positions in rm_list</span> + <span class="sd">"""</span> + +<span class="sd"> :param rm_list:</span> +<span class="sd"> """</span> + <span class="n">value</span> <span class="o">=</span> <span class="kc">False</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dtype</span> <span class="o">==</span> <span class="nb">bool</span> <span class="k">else</span> <span class="n">np</span><span class="o">.</span><span class="n">NaN</span> + <span class="k">for</span> <span class="n">contact</span> <span class="ow">in</span> <span class="n">rm_list</span><span class="p">:</span> + <span class="n">idx1</span><span class="p">,</span> <span class="n">idx2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">index</span><span class="p">[</span><span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">]],</span> <span class="bp">self</span><span class="o">.</span><span class="n">index</span><span class="p">[</span><span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">]]</span> + <span class="bp">self</span><span class="o">.</span><span class="n">set_value</span><span class="p">(</span><span class="n">idx1</span><span class="p">,</span> <span class="n">idx2</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span> + <span class="c1"># self.iat[(contact[0], contact[1])] = value</span> + <span class="c1"># self.iat[(contact[1], contact[0])] = value</span> + <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">'sort_list'</span><span class="p">):</span> + <span class="c1"># ! sort_list start at 1</span> + <span class="k">if</span> <span class="p">(</span><span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">sort_list</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">sort_list</span><span class="o">.</span><span class="n">remove</span><span class="p">((</span><span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span> + <span class="k">if</span> <span class="p">(</span><span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">sort_list</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">sym</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">sort_list</span><span class="o">.</span><span class="n">remove</span><span class="p">((</span><span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">]))</span></div> + +<div class="viewcode-block" id="Map.to_series"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.Map.to_series">[docs]</a> <span class="k">def</span> <span class="nf">to_series</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""Return panda series related to lower triangle values"""</span> + <span class="n">df</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> + <span class="n">df</span> <span class="o">=</span> <span class="n">df</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="nb">float</span><span class="p">)</span> + <span class="c1"># remove values from upper triangle</span> + <span class="n">df</span><span class="o">.</span><span class="n">values</span><span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">triu_indices_from</span><span class="p">(</span><span class="n">df</span><span class="p">,</span> <span class="n">k</span><span class="o">=</span><span class="mi">1</span><span class="p">)]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">nan</span> + <span class="c1"># pd.series with only lower triangle values</span> + <span class="k">return</span> <span class="n">df</span><span class="o">.</span><span class="n">unstack</span><span class="p">()</span><span class="o">.</span><span class="n">dropna</span><span class="p">()</span></div> + +<div class="viewcode-block" id="Map.topmap"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.Map.topmap">[docs]</a> <span class="k">def</span> <span class="nf">topmap</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">scoremap</span><span class="p">,</span> <span class="n">nb_topcontact</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> scoremap :</span> +<span class="sd"> param nb_topcontact:</span> +<span class="sd"> nb_topcontact :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dtype</span> <span class="o">!=</span> <span class="nb">bool</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Error when retrieving top contact map. The type of "</span> + <span class="s2">"the given map is not a contact type!"</span><span class="p">)</span> + <span class="k">return</span> <span class="bp">self</span> + <span class="bp">self</span><span class="p">[:]</span> <span class="o">=</span> <span class="kc">False</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">shape</span> <span class="o">==</span> <span class="n">scoremap</span><span class="o">.</span><span class="n">shape</span><span class="p">:</span> + <span class="n">pair_list</span> <span class="o">=</span> <span class="n">scoremap</span><span class="o">.</span><span class="n">sortedset</span><span class="p">()[:</span><span class="n">nb_topcontact</span><span class="p">]</span> + <span class="k">for</span> <span class="n">contact</span> <span class="ow">in</span> <span class="n">pair_list</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">iat</span><span class="p">[(</span><span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">])]</span> <span class="o">=</span> <span class="kc">True</span> + <span class="bp">self</span><span class="o">.</span><span class="n">iat</span><span class="p">[(</span><span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">])]</span> <span class="o">=</span> <span class="kc">True</span> + <span class="k">return</span> <span class="bp">self</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"Given scoremap has not the same dimension !"</span><span class="p">)</span> + <span class="k">return</span> <span class="kc">None</span></div> + +<div class="viewcode-block" id="Map.subfill"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.Map.subfill">[docs]</a> <span class="k">def</span> <span class="nf">subfill</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pairdict</span><span class="p">,</span> <span class="n">level</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Fill map with dict giving</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> pairdict :</span> +<span class="sd"> param level:</span> +<span class="sd"> level :</span> +<span class="sd"> (Default value = 0)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">pairdict</span> <span class="o">=</span> <span class="p">{</span><span class="n">k</span><span class="o">.</span><span class="n">upper</span><span class="p">():</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">pairdict</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span> + <span class="k">if</span> <span class="s2">"def"</span> <span class="ow">in</span> <span class="n">pairdict</span><span class="p">:</span> + <span class="bp">self</span><span class="p">[:]</span> <span class="o">=</span> <span class="n">pairdict</span><span class="p">[</span><span class="s2">"def"</span><span class="p">]</span> + <span class="k">for</span> <span class="n">idxval</span> <span class="ow">in</span> <span class="n">pairdict</span><span class="p">:</span> + <span class="n">idx</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">get_level_values</span><span class="p">(</span><span class="n">level</span><span class="p">)</span> <span class="o">==</span> <span class="n">idxval</span> + <span class="bp">self</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">idx</span><span class="p">,</span> <span class="n">idx</span><span class="p">]</span> <span class="o">=</span> <span class="n">pairdict</span><span class="p">[</span><span class="n">idxval</span><span class="p">]</span></div> + +<div class="viewcode-block" id="Map.set_value"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.Map.set_value">[docs]</a> <span class="k">def</span> <span class="nf">set_value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">col</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> index :</span> +<span class="sd"> param col:</span> +<span class="sd"> value :</span> +<span class="sd"> param kwargs:</span> +<span class="sd"> col :</span> +<span class="sd"> </span> +<span class="sd"> **kwargs :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="nb">super</span><span class="p">(</span><span class="n">Map</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">set_value</span><span class="p">(</span><span class="n">index</span><span class="p">,</span> <span class="n">col</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">sym</span><span class="p">:</span> + <span class="nb">super</span><span class="p">(</span><span class="n">Map</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">set_value</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></div></div> + + +<span class="c1"># TODO: Matrices PosAaAtmMap, AaAtmMap, AtmMap</span> +<div class="viewcode-block" id="ProteinMap"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ProteinMap">[docs]</a><span class="k">class</span> <span class="nc">ProteinMap</span><span class="p">(</span><span class="n">Map</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Abstract class for protein contact map objects</span> +<span class="sd"> """</span> + <span class="c1"># TODO: matrix should be not only for heavy atoms</span> + <span class="c1"># Matrix only for heavy atoms.</span> + <span class="n">heavy_reg</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">"[CNOS][ABGDEZH][0-9]?"</span><span class="p">)</span> + <span class="n">all_reg</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">"^((?!cns|dyana).*)$"</span><span class="p">)</span> + <span class="c1"># TODO: Autre methodes de dist</span> + <span class="n">distance_method</span> <span class="o">=</span> <span class="s1">'euclidean'</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sequence</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="k">if</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"index"</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> + <span class="n">kwargs</span><span class="p">[</span><span class="s2">"index"</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"columns"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">create_index</span><span class="p">(</span> + <span class="n">sequence</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> + <span class="nb">super</span><span class="p">(</span><span class="n">ProteinMap</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">contact_flags</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"flaglist"</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_maplot</span> <span class="o">=</span> <span class="kc">None</span> + + <span class="c1"># def _constructor_expanddim(self):</span> + <span class="c1"># return self._constructor_expanddim()</span> + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">sequence</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Specific sequence related to the map in a string</span> +<span class="sd"> Returns</span> +<span class="sd"> -------</span> +<span class="sd"> str</span> + +<span class="sd"> """</span> + <span class="k">raise</span> <span class="ne">NotImplementedError</span> + +<div class="viewcode-block" id="ProteinMap.create_heatmap"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ProteinMap.create_heatmap">[docs]</a> <span class="k">def</span> <span class="nf">create_heatmap</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Generate heatmap</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + + +<span class="sd"> """</span> + <span class="k">raise</span> <span class="ne">NotImplementedError</span></div> + +<div class="viewcode-block" id="ProteinMap.contact_map"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ProteinMap.contact_map">[docs]</a> <span class="k">def</span> <span class="nf">contact_map</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">contactdef</span><span class="p">,</span> <span class="n">scsc_min</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Generate contact map</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> contactdef :</span> +<span class="sd"> param scsc_min:</span> +<span class="sd"> scsc_min :</span> +<span class="sd"> (Default value = None)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + + +<span class="sd"> """</span> + <span class="k">raise</span> <span class="ne">NotImplementedError</span></div> + +<div class="viewcode-block" id="ProteinMap.create_index"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ProteinMap.create_index">[docs]</a> <span class="k">def</span> <span class="nf">create_index</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sequence</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> sequence</span> +<span class="sd"> kwargs</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> """</span> + <span class="c1"># Indexation matrice (tous les atomes ou tous les residus)</span> + <span class="k">raise</span> <span class="ne">NotImplementedError</span></div> + +<div class="viewcode-block" id="ProteinMap.reduce"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ProteinMap.reduce">[docs]</a> <span class="k">def</span> <span class="nf">reduce</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""Lower index level if multi index"""</span> + <span class="c1"># TODO: check if multiindex</span> + <span class="n">columns</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'-'</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">columns</span><span class="p">]</span> + <span class="n">index</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'-'</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">idx</span><span class="p">)</span> <span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">index</span><span class="p">]</span> + <span class="k">return</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s1">'__init__'</span><span class="p">)(</span><span class="bp">self</span><span class="o">.</span><span class="n">sequence</span><span class="p">,</span> + <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">,</span> + <span class="n">data</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">as_matrix</span><span class="p">(),</span> + <span class="n">index</span><span class="o">=</span><span class="n">index</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">desc</span><span class="p">,</span> + <span class="n">sym</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">sym</span><span class="p">,</span> <span class="n">mtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">mtype</span><span class="p">,</span> + <span class="n">columns</span><span class="o">=</span><span class="n">columns</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">)</span></div> + +<div class="viewcode-block" id="ProteinMap.copy"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ProteinMap.copy">[docs]</a> <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Copy dataframe and related attributes of the map</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> **kwargs :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">df</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">Map</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> + <span class="k">return</span> <span class="n">ProteinMap</span><span class="p">(</span> + <span class="n">sequence</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">sequence</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">df</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">desc</span><span class="p">,</span> + <span class="n">sym</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">sym</span><span class="p">,</span> <span class="n">mtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">mtype</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">)</span></div> + +<div class="viewcode-block" id="ProteinMap.plotflush"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ProteinMap.plotflush">[docs]</a> <span class="k">def</span> <span class="nf">plotflush</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""Flush contact map plot"""</span> + <span class="n">plt</span><span class="o">.</span><span class="n">clf</span><span class="p">()</span> + <span class="n">plt</span><span class="o">.</span><span class="n">cla</span><span class="p">()</span> + <span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_maplot</span> <span class="o">=</span> <span class="kc">None</span></div> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">maplot</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">linewidths</span><span class="o">=</span><span class="mf">0.0</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Contact map plot</span> +<span class="sd"> :return:</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> linewidths :</span> +<span class="sd"> (Default value = 0.0)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># Contact map Plot</span> + <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_maplot</span><span class="p">:</span> + <span class="c1"># Flush matplot</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Build maplot"</span><span class="p">)</span> + <span class="n">minticks</span> <span class="o">=</span> <span class="n">tickmin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">shift</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="c1"># Nb graduations</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">_maplot</span> <span class="o">=</span> <span class="n">sns</span><span class="o">.</span><span class="n">heatmap</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">square</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">cbar</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> + <span class="n">linewidths</span><span class="o">=</span><span class="n">linewidths</span><span class="p">,</span> <span class="n">vmax</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">vmin</span><span class="o">=-</span><span class="mi">1</span><span class="p">,</span> + <span class="n">cmap</span><span class="o">=</span><span class="n">sns</span><span class="o">.</span><span class="n">diverging_palette</span><span class="p">(</span><span class="mi">20</span><span class="p">,</span> <span class="mi">220</span><span class="p">,</span> <span class="n">n</span><span class="o">=</span><span class="mi">7</span><span class="p">,</span> + <span class="n">as_cmap</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> + <span class="n">xticklabels</span><span class="o">=</span><span class="n">minticks</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> + <span class="n">yticklabels</span><span class="o">=</span><span class="n">minticks</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> + <span class="n">linecolor</span><span class="o">=</span><span class="s2">"grey"</span><span class="p">)</span> + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_maplot</span> + +<div class="viewcode-block" id="ProteinMap.saveplot"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ProteinMap.saveplot">[docs]</a> <span class="k">def</span> <span class="nf">saveplot</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">outdir</span><span class="o">=</span><span class="s1">''</span><span class="p">,</span> <span class="n">outprefix</span><span class="o">=</span><span class="s2">"protein"</span><span class="p">,</span> <span class="n">size_fig</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> + <span class="n">plot_ext</span><span class="o">=</span><span class="s2">"pdf"</span><span class="p">,</span> <span class="n">plot_dpi</span><span class="o">=</span><span class="mi">200</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Save plot</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> outdir :</span> +<span class="sd"> param outprefix: (Default value = '')</span> +<span class="sd"> size_fig :</span> +<span class="sd"> param plot_ext: (Default value = 10)</span> +<span class="sd"> plot_dpi :</span> +<span class="sd"> (Default value = 200)</span> +<span class="sd"> outprefix :</span> +<span class="sd"> (Default value = "protein")</span> +<span class="sd"> plot_ext :</span> +<span class="sd"> (Default value = "pdf")</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">plotpath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">outdir</span><span class="p">,</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">.maplot.</span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span> + <span class="n">outprefix</span><span class="p">,</span> <span class="n">plot_ext</span><span class="p">))</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Generate contact map plot (</span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> <span class="n">plotpath</span><span class="p">)</span> + <span class="n">f</span><span class="p">,</span> <span class="n">ax</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">subplots</span><span class="p">()</span> + <span class="n">tickrot</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">axes</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">figure</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">set_size_inches</span><span class="p">(</span><span class="n">size_fig</span><span class="p">,</span> <span class="n">size_fig</span><span class="p">)</span> + <span class="n">map_title</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%s</span><span class="s2"> contacts map"</span> <span class="o">%</span> <span class="n">outprefix</span> + <span class="bp">self</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">set_title</span><span class="p">(</span><span class="n">map_title</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span> + + <span class="n">f</span><span class="o">.</span><span class="n">tight_layout</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">figure</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="n">plotpath</span><span class="p">,</span> <span class="n">dpi</span><span class="o">=</span><span class="n">plot_dpi</span><span class="p">)</span> + <span class="n">plt</span><span class="o">.</span><span class="n">close</span><span class="p">(</span><span class="s1">'all'</span><span class="p">)</span></div> + +<div class="viewcode-block" id="ProteinMap.contactset"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ProteinMap.contactset">[docs]</a> <span class="k">def</span> <span class="nf">contactset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">human_idx</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Remove duplicate in contact_list</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> human_idx :</span> +<span class="sd"> return: (Default value = False)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> +<span class="sd"> list</span> +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">contacts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">contact_list</span><span class="p">(</span><span class="n">human_idx</span><span class="p">)</span> + <span class="k">if</span> <span class="n">contacts</span><span class="p">:</span> + <span class="n">contacts</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="nb">set</span><span class="p">((</span><span class="nb">tuple</span><span class="p">(</span><span class="nb">sorted</span><span class="p">((</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">)))</span> + <span class="k">for</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span> <span class="ow">in</span> <span class="n">contacts</span><span class="p">)))</span> + <span class="k">return</span> <span class="n">contacts</span></div> + +<div class="viewcode-block" id="ProteinMap.contact_list"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ProteinMap.contact_list">[docs]</a> <span class="k">def</span> <span class="nf">contact_list</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">human_idx</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Return contact list</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> human_idx :</span> +<span class="sd"> return: (Default value = False)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> +<span class="sd"> list</span> +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">contact_list</span> <span class="o">=</span> <span class="p">[]</span> + <span class="n">n</span> <span class="o">=</span> <span class="mi">1</span> <span class="k">if</span> <span class="n">human_idx</span> <span class="k">else</span> <span class="mi">0</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dtype</span> <span class="ow">is</span> <span class="nb">bool</span><span class="p">:</span> + <span class="c1"># for irow, row in enumerate(self):</span> + <span class="k">for</span> <span class="n">irow</span><span class="p">,</span> <span class="n">row</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">index</span><span class="p">):</span> + <span class="k">for</span> <span class="n">icol</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="p">[</span><span class="n">row</span><span class="p">]):</span> + <span class="k">if</span> <span class="n">value</span><span class="p">:</span> + <span class="n">contact_list</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">irow</span> <span class="o">+</span> <span class="n">n</span><span class="p">,</span> <span class="n">icol</span> <span class="o">+</span> <span class="n">n</span><span class="p">))</span> + <span class="k">return</span> <span class="n">contact_list</span></div> + +<div class="viewcode-block" id="ProteinMap.compareplot"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ProteinMap.compareplot">[docs]</a> <span class="k">def</span> <span class="nf">compareplot</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">protmap</span><span class="p">,</span> <span class="n">save_fig</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Compare 2 contact map and plot differences</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> protmap :</span> +<span class="sd"> param save_fig:</span> +<span class="sd"> alpha :</span> +<span class="sd"> param kwargs: (Default value = None)</span> +<span class="sd"> save_fig :</span> +<span class="sd"> (Default value = True)</span> +<span class="sd"> **kwargs :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="bp">self</span><span class="o">.</span><span class="n">plotflush</span><span class="p">()</span> + <span class="c1"># Contact map plot</span> + <span class="k">if</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">protmap</span><span class="p">,</span> <span class="s2">"shape"</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">shape</span> <span class="o">!=</span> <span class="n">protmap</span><span class="o">.</span><span class="n">shape</span><span class="p">:</span> + <span class="n">logging</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"Cant't compare </span><span class="si">%s</span><span class="s2"> map with </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span> + <span class="n">protmap</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">))</span> + <span class="k">return</span> <span class="kc">None</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">cmplist</span> <span class="o">=</span> <span class="n">protmap</span><span class="o">.</span><span class="n">contact_list</span><span class="p">(</span><span class="n">human_idx</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + + <span class="n">ymax</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sequence</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span> + <span class="k">if</span> <span class="n">protmap</span><span class="o">.</span><span class="n">contact_flags</span><span class="p">:</span> + <span class="n">flags</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="n">protmap</span><span class="o">.</span><span class="n">contact_flags</span><span class="o">.</span><span class="n">values</span><span class="p">())</span> + <span class="c1"># Color palette</span> + <span class="n">pal</span> <span class="o">=</span> <span class="n">sns</span><span class="o">.</span><span class="n">color_palette</span><span class="p">(</span><span class="s2">"hls"</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">flags</span><span class="p">))</span> + <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">flag</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">flags</span><span class="p">):</span> + <span class="n">conlist</span> <span class="o">=</span> <span class="p">[</span><span class="n">contact</span> <span class="k">for</span> <span class="n">contact</span> <span class="ow">in</span> <span class="n">protmap</span><span class="o">.</span><span class="n">contact_flags</span> <span class="k">if</span> + <span class="n">protmap</span><span class="o">.</span><span class="n">contact_flags</span><span class="p">[</span><span class="n">contact</span><span class="p">]</span> <span class="o">==</span> <span class="n">flag</span><span class="p">]</span> + <span class="n">xind</span> <span class="o">=</span> <span class="p">[</span><span class="n">x</span> <span class="o">-</span> <span class="o">.</span><span class="mi">5</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> + <span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="n">conlist</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="n">conlist</span><span class="p">)[</span><span class="mi">1</span><span class="p">]]</span> + <span class="n">yind</span> <span class="o">=</span> <span class="p">[</span><span class="n">ymax</span> <span class="o">-</span> <span class="n">y</span> <span class="o">+</span> <span class="mf">1.5</span> <span class="k">for</span> <span class="n">y</span> <span class="ow">in</span> + <span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="n">conlist</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="n">conlist</span><span class="p">)[</span><span class="mi">0</span><span class="p">]]</span> + <span class="n">color</span> <span class="o">=</span> <span class="n">pal</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> + <span class="n">mark</span> <span class="o">=</span> <span class="n">Line2D</span><span class="o">.</span><span class="n">filled_markers</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> + <span class="k">for</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">xind</span><span class="p">,</span> <span class="n">yind</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">s</span><span class="o">=</span><span class="mi">8</span><span class="p">,</span> <span class="n">c</span><span class="o">=</span><span class="n">color</span><span class="p">,</span> + <span class="n">linewidths</span><span class="o">=</span><span class="mf">0.1</span><span class="p">,</span> <span class="n">alpha</span><span class="o">=</span><span class="n">alpha</span><span class="p">,</span> + <span class="n">marker</span><span class="o">=</span><span class="n">mark</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Contact list: </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">cmplist</span><span class="p">)</span> + <span class="n">xind</span> <span class="o">=</span> <span class="p">[</span><span class="n">x</span> <span class="o">-</span> <span class="o">.</span><span class="mi">5</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> + <span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="n">cmplist</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="n">cmplist</span><span class="p">)[</span><span class="mi">1</span><span class="p">]]</span> + <span class="n">yind</span> <span class="o">=</span> <span class="p">[</span><span class="n">ymax</span> <span class="o">-</span> <span class="n">y</span> <span class="o">+</span> <span class="mf">1.5</span> <span class="k">for</span> <span class="n">y</span> <span class="ow">in</span> + <span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="n">cmplist</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="n">cmplist</span><span class="p">)[</span><span class="mi">0</span><span class="p">]]</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Xind: </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">xind</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Yind: </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">yind</span><span class="p">)</span> + <span class="n">color</span> <span class="o">=</span> <span class="s2">"red"</span> + <span class="c1"># width = [0.3 for _ in xind]</span> + <span class="c1"># for x, y, h in zip(xind, yind, width):</span> + <span class="k">for</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">xind</span><span class="p">,</span> <span class="n">yind</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">axes</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">s</span><span class="o">=</span><span class="mi">30</span><span class="p">,</span> <span class="n">c</span><span class="o">=</span><span class="n">color</span><span class="p">,</span> + <span class="n">linewidths</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> + <span class="n">alpha</span><span class="o">=</span><span class="n">alpha</span><span class="p">)</span> + <span class="k">if</span> <span class="n">save_fig</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">saveplot</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></div> + + <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">_write_report</span><span class="p">(</span><span class="n">reportpath</span><span class="p">,</span> <span class="o">**</span><span class="n">scores</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Write report file from score dict</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> reportpath :</span> +<span class="sd"> </span> +<span class="sd"> scores :</span> +<span class="sd"> </span> +<span class="sd"> **scores :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">reportpath</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">)</span> <span class="k">as</span> <span class="n">reportf</span><span class="p">:</span> + <span class="n">msg</span> <span class="o">=</span> <span class="n">string</span><span class="o">.</span><span class="n">Formatter</span><span class="p">()</span><span class="o">.</span><span class="n">vformat</span><span class="p">(</span><span class="s2">"""</span><span class="se">\</span> +<span class="s2">## Report </span><span class="si">{map1name}</span><span class="s2"> vs. </span><span class="si">{map2name}</span><span class="s2"></span> +<span class="s2">##</span> +<span class="s2">## Date: </span><span class="si">{date}</span><span class="s2"></span> +<span class="s2">##</span> +<span class="s2">## Plots: </span><span class="si">{outdir}</span><span class="s2"></span> +<span class="s2">## Reference map: </span><span class="si">{map1path}</span><span class="s2"></span> +<span class="s2">## Contact map: </span><span class="si">{map2path}</span><span class="s2"></span> +<span class="s2">##</span> +<span class="s2">## -----------------------------------------------------------------------------</span> +<span class="s2">##</span> +<span class="s2">## Sequence:</span> +<span class="s2">## </span><span class="si">{seq}</span><span class="s2"></span> +<span class="s2">## Protein length: </span><span class="si">{protlen}</span><span class="s2"></span> +<span class="s2">##</span> +<span class="s2">## -----------------------------------------------------------------------------</span> +<span class="s2">##</span> +<span class="s2">## Matthews correlation coefficient (MCC): </span><span class="si">{mcc}</span><span class="s2"></span> +<span class="s2">## F1 score: </span><span class="si">{f1s}</span><span class="s2"></span> +<span class="s2">## F2 score: </span><span class="si">{f2s}</span><span class="s2"></span> +<span class="s2">## F0.5 score: </span><span class="si">{f05s}</span><span class="s2"></span> +<span class="s2">##</span> +<span class="s2">## Precision: </span><span class="si">{precision}</span><span class="s2"></span> +<span class="s2">## Recall (Sensibility): </span><span class="si">{recall}</span><span class="s2"></span> +<span class="s2">## Accuracy: </span><span class="si">{accuracy}</span><span class="s2"></span> +<span class="s2">##</span> +<span class="s2">## Hamming loss: </span><span class="si">{hamm}</span><span class="s2"></span> +<span class="s2">## Hinge loss: </span><span class="si">{hin}</span><span class="s2"></span> +<span class="s2">##</span> +<span class="s2">## -----------------------------------------------------------------------------</span> +<span class="s2">##</span> +<span class="s2">## Plot scores</span> +<span class="s2">##</span> +<span class="s2">## ROC Area Under Curve: </span><span class="si">{roc_auc}</span><span class="s2"></span> +<span class="s2">## Average precision score: </span><span class="si">{aver_prec}</span><span class="s2"></span> +<span class="s2">##</span> +<span class="s2">## -----------------------------------------------------------------------------</span> +<span class="s2">##</span> +<span class="s2">## Precision recall curve</span> +<span class="s2">##</span> +<span class="s2">## Precision values:</span> +<span class="s2">## </span><span class="si">{allprec}</span><span class="s2"></span> +<span class="s2">## Recall values:</span> +<span class="s2">## </span><span class="si">{allrec}</span><span class="s2"></span> +<span class="s2">## Score tresholds (</span><span class="si">{map2name}</span><span class="s2">):</span> +<span class="s2">## </span><span class="si">{prthres}</span><span class="s2"></span> +<span class="s2">##</span> +<span class="s2">## -----------------------------------------------------------------------------</span> +<span class="s2">##</span> +<span class="s2">## ROC curve</span> +<span class="s2">##</span> +<span class="s2">## True Positive Rate (Sensibility) values:</span> +<span class="s2">## </span><span class="si">{alltpr}</span><span class="s2"></span> +<span class="s2">## False Positive Rate (1 - Specificity) values:</span> +<span class="s2">## </span><span class="si">{allfpr}</span><span class="s2"></span> +<span class="s2">## Score tresholds (</span><span class="si">{map2name}</span><span class="s2">):</span> +<span class="s2">## </span><span class="si">{rocthres}</span><span class="s2">"""</span><span class="p">,</span> <span class="p">(),</span> <span class="n">defaultdict</span><span class="p">(</span><span class="nb">str</span><span class="p">,</span> <span class="o">**</span><span class="n">scores</span><span class="p">))</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> <span class="n">msg</span><span class="p">)</span> + <span class="n">reportf</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span> + +<div class="viewcode-block" id="ProteinMap.classification_metrics"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ProteinMap.classification_metrics">[docs]</a> <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">classification_metrics</span><span class="p">(</span><span class="n">y_true</span><span class="p">,</span> <span class="n">y_pred</span><span class="p">,</span> <span class="n">y_scores</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Compute classification metrics</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> y_true : numpy array of true values</span> +<span class="sd"> </span> +<span class="sd"> y_pred : numpy array of predicted values</span> +<span class="sd"> </span> +<span class="sd"> y_scores : numpy array of prediction scores</span> +<span class="sd"> (Default value = None)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">metrics</span> <span class="o">=</span> <span class="p">{}</span> + + <span class="k">if</span> <span class="mi">1</span> <span class="ow">in</span> <span class="n">y_pred</span> <span class="ow">and</span> <span class="mi">1</span> <span class="ow">in</span> <span class="n">y_true</span><span class="p">:</span> + <span class="n">metrics</span><span class="o">.</span><span class="n">update</span><span class="p">({</span> + <span class="s1">'accuracy'</span><span class="p">:</span> <span class="n">skm</span><span class="o">.</span><span class="n">accuracy_score</span><span class="p">(</span><span class="n">y_true</span><span class="p">,</span> <span class="n">y_pred</span><span class="p">),</span> + <span class="s1">'precision'</span><span class="p">:</span> <span class="n">skm</span><span class="o">.</span><span class="n">precision_score</span><span class="p">(</span><span class="n">y_true</span><span class="p">,</span> <span class="n">y_pred</span><span class="p">),</span> + <span class="s1">'recall'</span><span class="p">:</span> <span class="n">skm</span><span class="o">.</span><span class="n">recall_score</span><span class="p">(</span><span class="n">y_true</span><span class="p">,</span> <span class="n">y_pred</span><span class="p">),</span> + <span class="s1">'mcc'</span><span class="p">:</span> <span class="n">skm</span><span class="o">.</span><span class="n">matthews_corrcoef</span><span class="p">(</span><span class="n">y_true</span><span class="p">,</span> <span class="n">y_pred</span><span class="p">),</span> + <span class="s1">'f1s'</span><span class="p">:</span> <span class="n">skm</span><span class="o">.</span><span class="n">f1_score</span><span class="p">(</span><span class="n">y_true</span><span class="p">,</span> <span class="n">y_pred</span><span class="p">),</span> + <span class="s1">'f2s'</span><span class="p">:</span> <span class="n">skm</span><span class="o">.</span><span class="n">fbeta_score</span><span class="p">(</span><span class="n">y_true</span><span class="p">,</span> <span class="n">y_pred</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> + <span class="s1">'f05s'</span><span class="p">:</span> <span class="n">skm</span><span class="o">.</span><span class="n">fbeta_score</span><span class="p">(</span><span class="n">y_true</span><span class="p">,</span> <span class="n">y_pred</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">),</span> + <span class="s1">'hamm'</span><span class="p">:</span> <span class="n">skm</span><span class="o">.</span><span class="n">hamming_loss</span><span class="p">(</span><span class="n">y_true</span><span class="p">,</span> <span class="n">y_pred</span><span class="p">),</span> + <span class="s1">'hin'</span><span class="p">:</span> <span class="n">skm</span><span class="o">.</span><span class="n">hinge_loss</span><span class="p">(</span><span class="n">y_true</span><span class="p">,</span> <span class="n">y_pred</span><span class="p">)</span> + <span class="p">})</span> + + <span class="k">if</span> <span class="n">y_scores</span><span class="p">:</span> + <span class="c1"># ROC plot</span> + <span class="c1"># Replace nan values in y_scores</span> + <span class="n">y_scores</span><span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">y_scores</span><span class="p">)]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">floor</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">nanmin</span><span class="p">(</span><span class="n">y_scores</span><span class="p">))</span> + <span class="n">metrics</span><span class="o">.</span><span class="n">update</span><span class="p">({</span> + <span class="s1">'roc_auc'</span><span class="p">:</span> <span class="n">skm</span><span class="o">.</span><span class="n">roc_auc_score</span><span class="p">(</span><span class="n">y_true</span><span class="p">,</span> <span class="n">y_scores</span><span class="p">),</span> + <span class="s1">'aver_prec'</span><span class="p">:</span> <span class="n">skm</span><span class="o">.</span><span class="n">average_precision_score</span><span class="p">(</span><span class="n">y_true</span><span class="p">,</span> <span class="n">y_scores</span><span class="p">)</span> + <span class="p">})</span> + <span class="n">metrics</span><span class="p">[</span><span class="s1">'allfpr'</span><span class="p">],</span> <span class="n">metrics</span><span class="p">[</span><span class="s1">'alltpr'</span><span class="p">],</span> <span class="n">metrics</span><span class="p">[</span><span class="s1">'rocthres'</span><span class="p">]</span> <span class="o">=</span> \ + <span class="n">skm</span><span class="o">.</span><span class="n">roc_curve</span><span class="p">(</span><span class="n">y_true</span><span class="p">,</span> <span class="n">y_scores</span><span class="p">,</span> <span class="n">pos_label</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> + <span class="n">metrics</span><span class="p">[</span><span class="s1">'allprec'</span><span class="p">],</span> <span class="n">metrics</span><span class="p">[</span><span class="s1">'allrec'</span><span class="p">],</span> <span class="n">metrics</span><span class="p">[</span><span class="s1">'prthres'</span><span class="p">]</span> <span class="o">=</span> \ + <span class="n">skm</span><span class="o">.</span><span class="n">precision_recall_curve</span><span class="p">(</span><span class="n">y_true</span><span class="p">,</span> <span class="n">y_scores</span><span class="p">)</span> + + <span class="k">return</span> <span class="n">metrics</span></div> + + <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">_metrics_plot</span><span class="p">(</span><span class="n">metrics</span><span class="p">,</span> <span class="n">mapnames</span><span class="o">=</span><span class="p">(</span><span class="s1">''</span><span class="p">,</span> <span class="s1">''</span><span class="p">),</span> <span class="n">plotdir</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> <span class="n">outprefix</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> + <span class="n">plot_ext</span><span class="o">=</span><span class="s2">"pdf"</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> metrics :</span> +<span class="sd"> </span> +<span class="sd"> mapnames :</span> +<span class="sd"> (Default value = ('')</span> +<span class="sd"> '' :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">outprefix</span> <span class="o">=</span> <span class="n">outprefix</span> <span class="k">if</span> <span class="n">outprefix</span> <span class="k">else</span> <span class="s2">"maplot"</span> + <span class="n">csv_roc</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">plotdir</span><span class="p">,</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">.roc.csv"</span> <span class="o">%</span> <span class="n">outprefix</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Generate roc file (</span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> <span class="n">csv_roc</span><span class="p">)</span> + <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">csv_roc</span><span class="p">,</span> <span class="s2">"w"</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> + <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"TPR,FPR,Treshold</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span> + <span class="n">writer</span> <span class="o">=</span> <span class="n">csv</span><span class="o">.</span><span class="n">writer</span><span class="p">(</span><span class="n">f</span><span class="p">)</span> + <span class="n">writer</span><span class="o">.</span><span class="n">writerows</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="n">metrics</span><span class="p">[</span><span class="s1">'alltpr'</span><span class="p">],</span> <span class="n">metrics</span><span class="p">[</span><span class="s1">'allfpr'</span><span class="p">],</span> + <span class="n">metrics</span><span class="p">[</span><span class="s1">'rocthres'</span><span class="p">]))</span> + + <span class="n">plotpath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">plotdir</span><span class="p">,</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">.roc.</span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">outprefix</span><span class="p">,</span> + <span class="n">plot_ext</span><span class="p">))</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Generate roc plot (</span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> <span class="n">plotpath</span><span class="p">)</span> + <span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">()</span> + <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">metrics</span><span class="p">[</span><span class="s1">'allfpr'</span><span class="p">],</span> <span class="n">metrics</span><span class="p">[</span><span class="s1">'alltpr'</span><span class="p">],</span> + <span class="n">label</span><span class="o">=</span><span class="s1">'ROC curve (area = </span><span class="si">%0.2f</span><span class="s1">)'</span> <span class="o">%</span> <span class="n">metrics</span><span class="p">[</span><span class="s1">'roc_auc'</span><span class="p">])</span> + <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">([</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">],</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">],</span> <span class="s1">'k--'</span><span class="p">)</span> + <span class="n">plt</span><span class="o">.</span><span class="n">xlim</span><span class="p">([</span><span class="mf">0.0</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">])</span> + <span class="n">plt</span><span class="o">.</span><span class="n">ylim</span><span class="p">([</span><span class="mf">0.0</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">])</span> + <span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">'False Positive Rate'</span><span class="p">)</span> + <span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">'True Positive Rate'</span><span class="p">)</span> + <span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s1">'Receiver operating characteristic </span><span class="si">%s</span><span class="s1"> vs. </span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span> + <span class="n">mapnames</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">mapnames</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span> + <span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s2">"lower right"</span><span class="p">)</span> + <span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="n">plotpath</span><span class="p">)</span> + + <span class="n">csv_precall</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">plotdir</span><span class="p">,</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">.roc.csv"</span> <span class="o">%</span> <span class="n">outprefix</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Generate precall file (</span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> <span class="n">csv_precall</span><span class="p">)</span> + <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">csv_precall</span><span class="p">,</span> <span class="s2">"w"</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span> + <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"Precision,Recall,Treshold</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span> + <span class="n">writer</span> <span class="o">=</span> <span class="n">csv</span><span class="o">.</span><span class="n">writer</span><span class="p">(</span><span class="n">f</span><span class="p">)</span> + <span class="n">writer</span><span class="o">.</span><span class="n">writerows</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="n">metrics</span><span class="p">[</span><span class="s1">'allprec'</span><span class="p">],</span> <span class="n">metrics</span><span class="p">[</span><span class="s1">'allrec'</span><span class="p">],</span> + <span class="n">metrics</span><span class="p">[</span><span class="s1">'prthres'</span><span class="p">]))</span> + + <span class="n">plotpath</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">plotdir</span><span class="p">,</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">.precall.</span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">outprefix</span><span class="p">,</span> + <span class="n">plot_ext</span><span class="p">))</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Generate precall plot (</span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> <span class="n">plotpath</span><span class="p">)</span> + <span class="c1"># Precision recall curve</span> + <span class="n">plt</span><span class="o">.</span><span class="n">clf</span><span class="p">()</span> + <span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">metrics</span><span class="p">[</span><span class="s1">'allrec'</span><span class="p">],</span> <span class="n">metrics</span><span class="p">[</span><span class="s1">'allprec'</span><span class="p">],</span> + <span class="n">label</span><span class="o">=</span><span class="s1">'Precision-Recall curve'</span><span class="p">)</span> + <span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">'Recall'</span><span class="p">)</span> + <span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">'Precision'</span><span class="p">)</span> + <span class="n">plt</span><span class="o">.</span><span class="n">ylim</span><span class="p">([</span><span class="mf">0.0</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">])</span> + <span class="n">plt</span><span class="o">.</span><span class="n">xlim</span><span class="p">([</span><span class="mf">0.0</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">])</span> + <span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s1">'Precision-Recall </span><span class="si">{1}</span><span class="s1"> vs. </span><span class="si">{2}</span><span class="s1">: AUC=</span><span class="si">{0:0.2f}</span><span class="s1">'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> + <span class="n">metrics</span><span class="p">[</span><span class="s1">'aver_prec'</span><span class="p">],</span> <span class="n">mapnames</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">mapnames</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span> + <span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">loc</span><span class="o">=</span><span class="s2">"lower left"</span><span class="p">)</span> + <span class="n">plt</span><span class="o">.</span><span class="n">savefig</span><span class="p">(</span><span class="n">plotpath</span><span class="p">)</span> + +<div class="viewcode-block" id="ProteinMap.report"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ProteinMap.report">[docs]</a> <span class="k">def</span> <span class="nf">report</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmpmap</span><span class="p">,</span> <span class="n">scoremap</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">outprefix</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> <span class="n">outdir</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> <span class="n">plotdir</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> + <span class="c1"># plot_ext="pdf", plotag=True, n_factors=(0.5, 1.0, 1.5)):</span> + <span class="n">plot_ext</span><span class="o">=</span><span class="s2">"pdf"</span><span class="p">,</span> <span class="n">plotag</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Generate contact map report file</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> cmpmap :</span> +<span class="sd"> </span> +<span class="sd"> scoremap :</span> +<span class="sd"> (Default value = None)</span> +<span class="sd"> outprefix :</span> +<span class="sd"> (Default value = "")</span> +<span class="sd"> outdir :</span> +<span class="sd"> (Default value = "")</span> +<span class="sd"> plotdir :</span> +<span class="sd"> (Default value = "")</span> +<span class="sd"> plot_ext :</span> +<span class="sd"> (Default value = "pdf")</span> +<span class="sd"> plotag :</span> +<span class="sd"> (Default value = True)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> """</span> + <span class="n">filename</span> <span class="o">=</span> <span class="s2">"."</span><span class="o">.</span><span class="n">join</span><span class="p">((</span><span class="n">outprefix</span><span class="p">,</span> <span class="s2">"mapreport"</span><span class="p">))</span> <span class="k">if</span> <span class="n">outprefix</span> <span class="k">else</span> \ + <span class="s2">"mapreport"</span> + <span class="n">reportpath</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">outdir</span><span class="p">,</span> <span class="n">filename</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Generate map report file (</span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> <span class="n">reportpath</span><span class="p">)</span> + + <span class="c1"># TODO: evaluate map statistics for several treshold (use submap var)</span> + <span class="c1"># nb_c = int(len(self.sequence) * float(n_factors[0]))</span> + <span class="c1"># submap = cmpmap.copy()</span> + <span class="c1"># print(np.array_equal(cmpmap.values.astype(int).flat,</span> + <span class="c1"># submap.topmap(scoremap, nb_c).values.astype(int).flat))</span> + + <span class="n">y_true</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">values</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="nb">int</span><span class="p">)</span><span class="o">.</span><span class="n">flat</span><span class="p">)</span> + <span class="n">y_pred</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">cmpmap</span><span class="o">.</span><span class="n">values</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="nb">int</span><span class="p">)</span><span class="o">.</span><span class="n">flat</span><span class="p">)</span> + <span class="n">y_scores</span> <span class="o">=</span> <span class="n">scoremap</span><span class="o">.</span><span class="n">values</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="nb">float</span><span class="p">)</span><span class="o">.</span><span class="n">flat</span> <span class="k">if</span> <span class="n">scoremap</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="kc">None</span> + + <span class="c1"># Compute classification metrics for the entire map</span> + <span class="n">metrics</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">classification_metrics</span><span class="p">(</span><span class="n">y_true</span><span class="p">,</span> <span class="n">y_pred</span><span class="p">,</span> <span class="n">y_scores</span><span class="p">)</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">_write_report</span><span class="p">(</span> + <span class="n">reportpath</span><span class="p">,</span> <span class="n">map1name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">desc</span><span class="p">,</span> <span class="n">map2name</span><span class="o">=</span><span class="n">cmpmap</span><span class="o">.</span><span class="n">desc</span><span class="p">,</span> + <span class="n">map1path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">,</span> <span class="n">map2path</span><span class="o">=</span><span class="n">cmpmap</span><span class="o">.</span><span class="n">path</span><span class="p">,</span> + <span class="n">seq</span><span class="o">=</span><span class="s2">"</span><span class="se">\n</span><span class="s2">## "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">textwrap</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sequence</span><span class="p">,</span> <span class="n">width</span><span class="o">=</span><span class="mi">77</span><span class="p">)),</span> + <span class="n">protlen</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sequence</span><span class="p">),</span> + <span class="n">date</span><span class="o">=</span><span class="n">datetime</span><span class="o">.</span><span class="n">date</span><span class="o">.</span><span class="n">today</span><span class="p">()</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s2">"%A </span><span class="si">%d</span><span class="s2">. %B %Y"</span><span class="p">),</span> + <span class="n">outdir</span><span class="o">=</span><span class="n">outdir</span><span class="p">,</span> <span class="o">**</span><span class="n">metrics</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">plotag</span> <span class="ow">and</span> <span class="n">scoremap</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_metrics_plot</span><span class="p">(</span><span class="n">metrics</span><span class="p">,</span> <span class="n">mapnames</span><span class="o">=</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">desc</span><span class="p">,</span> <span class="n">cmpmap</span><span class="o">.</span><span class="n">desc</span><span class="p">),</span> + <span class="n">outprefix</span><span class="o">=</span><span class="n">outprefix</span><span class="p">,</span> <span class="n">plot_ext</span><span class="o">=</span><span class="n">plot_ext</span><span class="p">,</span> + <span class="n">plotdir</span><span class="o">=</span><span class="n">plotdir</span><span class="p">)</span></div> + +<div class="viewcode-block" id="ProteinMap.compare_contactmap"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ProteinMap.compare_contactmap">[docs]</a> <span class="k">def</span> <span class="nf">compare_contactmap</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmpmap</span><span class="p">,</span> <span class="n">contactlist</span><span class="p">,</span> <span class="n">outprefix</span><span class="p">,</span> + <span class="n">outdir</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> <span class="n">distmap</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">human_idx</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Compare 2 contact map and plot differences</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> cmpmap :</span> +<span class="sd"> param contactlist:</span> +<span class="sd"> outprefix :</span> +<span class="sd"> param outdir:</span> +<span class="sd"> distmap :</span> +<span class="sd"> param human_idx: (Default value = None)</span> +<span class="sd"> contactlist :</span> +<span class="sd"> </span> +<span class="sd"> outdir :</span> +<span class="sd"> (Default value = "")</span> +<span class="sd"> human_idx :</span> +<span class="sd"> (Default value = True)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># CSV file giving TP/FP contacts</span> + <span class="n">outpath</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">.contactcmp.csv"</span> <span class="o">%</span> <span class="p">(</span><span class="n">outdir</span><span class="p">,</span> + <span class="n">outprefix</span> <span class="k">if</span> <span class="n">outprefix</span> <span class="k">else</span> <span class="s2">"maplot"</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Generate stat file (</span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> <span class="n">outpath</span><span class="p">)</span> + <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">outpath</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">)</span> <span class="k">as</span> <span class="n">outfile</span><span class="p">:</span> + <span class="n">offset</span> <span class="o">=</span> <span class="mi">1</span> <span class="k">if</span> <span class="n">human_idx</span> <span class="k">else</span> <span class="mi">0</span> + <span class="n">extra_header</span> <span class="o">=</span> <span class="s2">""</span> <span class="k">if</span> <span class="n">distmap</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="s2">",dmin"</span> + <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"#resid1,resid2,res1,res2,TP/FP</span><span class="si">%s</span><span class="se">\n</span><span class="s2">"</span> <span class="o">%</span> <span class="n">extra_header</span><span class="p">)</span> + <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">contactlist</span><span class="p">:</span> + <span class="k">if</span> <span class="n">extra_header</span><span class="p">:</span> + <span class="n">dmin</span> <span class="o">=</span> <span class="s2">","</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">distmap</span><span class="o">.</span><span class="n">iat</span><span class="p">[(</span><span class="nb">int</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">-</span> <span class="n">offset</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="o">-</span> + <span class="n">offset</span><span class="p">)])</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">dmin</span> <span class="o">=</span> <span class="s2">""</span> + <span class="n">contact</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">iat</span><span class="p">[(</span><span class="nb">int</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">-</span> <span class="n">offset</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="o">-</span> <span class="n">offset</span><span class="p">)]</span> + <span class="n">cmpcontact</span> <span class="o">=</span> <span class="n">cmpmap</span><span class="o">.</span><span class="n">iat</span><span class="p">[(</span><span class="nb">int</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">-</span> <span class="n">offset</span><span class="p">,</span> <span class="nb">int</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="o">-</span> <span class="n">offset</span><span class="p">)]</span> + <span class="k">if</span> <span class="n">contact</span> <span class="ow">and</span> <span class="n">cmpcontact</span><span class="p">:</span> + <span class="n">eq</span> <span class="o">=</span> <span class="s2">"TP"</span> + <span class="k">elif</span> <span class="n">contact</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">cmpcontact</span><span class="p">:</span> + <span class="n">eq</span> <span class="o">=</span> <span class="s2">"FP"</span> + <span class="k">elif</span> <span class="ow">not</span> <span class="n">contact</span> <span class="ow">and</span> <span class="n">cmpcontact</span><span class="p">:</span> + <span class="n">eq</span> <span class="o">=</span> <span class="s2">"FN"</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">eq</span> <span class="o">=</span> <span class="s2">"TN"</span> + <span class="n">msg</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">,</span><span class="si">%s</span><span class="s2">,</span><span class="si">%s</span><span class="s2">,</span><span class="si">%s</span><span class="s2">,</span><span class="si">%s%s</span><span class="se">\n</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">x</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> + <span class="bp">self</span><span class="o">.</span><span class="n">sequence</span><span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">-</span> <span class="n">offset</span><span class="p">],</span> + <span class="bp">self</span><span class="o">.</span><span class="n">sequence</span><span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="n">x</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="o">-</span> <span class="n">offset</span><span class="p">],</span> + <span class="n">eq</span><span class="p">,</span> + <span class="n">dmin</span><span class="p">)</span> + <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span></div> + +<div class="viewcode-block" id="ProteinMap.write_contacts"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ProteinMap.write_contacts">[docs]</a> <span class="k">def</span> <span class="nf">write_contacts</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="p">,</span> <span class="n">outdir</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> <span class="n">human_idx</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> + <span class="n">scoremap</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> prefix</span> +<span class="sd"> filename :</span> +<span class="sd"> param outdir:</span> +<span class="sd"> human_idx :</span> +<span class="sd"> param scoremap: (Default value = True)</span> +<span class="sd"> outdir :</span> +<span class="sd"> (Default value = "")</span> +<span class="sd"> scoremap :</span> +<span class="sd"> (Default value = None)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">prefix</span> <span class="o">=</span> <span class="n">prefix</span> <span class="o">+</span> <span class="s2">"_"</span> <span class="k">if</span> <span class="n">prefix</span> <span class="k">else</span> <span class="n">prefix</span> + <span class="n">filepath</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s%s</span><span class="s2">.contact.txt"</span> <span class="o">%</span> <span class="p">(</span><span class="n">outdir</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">filename</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">"."</span><span class="p">,</span> <span class="s2">"_"</span><span class="p">))</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Generate contact file (</span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> <span class="n">filepath</span><span class="p">)</span> + <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">filepath</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">)</span> <span class="k">as</span> <span class="n">outfile</span><span class="p">:</span> + <span class="n">offset</span> <span class="o">=</span> <span class="mi">1</span> <span class="k">if</span> <span class="n">human_idx</span> <span class="k">else</span> <span class="mi">0</span> + <span class="c1"># contacts = [sorted(contact) for contact in self.contactset()]</span> + <span class="c1"># for contact in sorted(contacts):</span> + <span class="k">for</span> <span class="n">contact</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">contactset</span><span class="p">():</span> + <span class="n">contact</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">([</span><span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="n">offset</span><span class="p">,</span> <span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="n">offset</span><span class="p">])</span> + <span class="k">if</span> <span class="n">scoremap</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> + <span class="n">score</span> <span class="o">=</span> <span class="n">scoremap</span><span class="o">.</span><span class="n">iat</span><span class="p">[(</span><span class="nb">int</span><span class="p">(</span><span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">-</span> <span class="n">offset</span><span class="p">,</span> + <span class="nb">int</span><span class="p">(</span><span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="o">-</span> <span class="n">offset</span><span class="p">)]</span> + <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"</span><span class="si">%d</span><span class="s2"> </span><span class="si">%d</span><span class="s2"> </span><span class="si">%.4f</span><span class="se">\n</span><span class="s2">"</span> <span class="o">%</span> + <span class="p">(</span><span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">score</span><span class="p">))</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"</span><span class="si">%d</span><span class="s2"> </span><span class="si">%d</span><span class="se">\n</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span></div></div> + + +<div class="viewcode-block" id="ResAtmMap"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ResAtmMap">[docs]</a><span class="k">class</span> <span class="nc">ResAtmMap</span><span class="p">(</span><span class="n">ProteinMap</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Protein distance/contact matrix for all atom pairs. If no sequence given,</span> +<span class="sd"> protein distance/contact matrix for all amino acids</span> +<span class="sd"> Ex:</span> +<span class="sd"> residue PHE1 \</span> +<span class="sd"> atom CD1 CD2 CB CA CG CZ</span> +<span class="sd"> residue atom</span> +<span class="sd"> PHE1 CD1 0.000000 2.394145 2.455440 3.269219 1.391024 2.421148</span> +<span class="sd"> CD2 2.394145 0.000000 2.509243 3.407996 1.379875 2.401098</span> +<span class="sd"> CB 2.455440 2.509243 0.000000 1.507025 1.478053 4.267602</span> +<span class="sd"> CA 3.269219 3.407996 1.507025 0.000000 2.505414 5.085997</span> +<span class="sd"> CG 1.391024 1.379875 1.478053 2.505414 0.000000 2.790403</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + + <span class="c1"># def _constructor_expanddim(self):</span> + <span class="c1"># super(ResAtmMap, self)._constructor_expanddim()</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sequence</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="c1"># Sequence: 1L string or MultiIndex object</span> + <span class="c1"># Dataframe is in 3L code</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">sequence</span><span class="p">:</span> + <span class="n">sequence</span> <span class="o">=</span> <span class="n">ConversionTable</span><span class="o">.</span><span class="n">ConversionTable</span><span class="p">()</span><span class="o">.</span><span class="n">table</span><span class="p">[</span><span class="s1">'AMINO_ACID'</span><span class="p">][</span> + <span class="s1">'iupac'</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span> + <span class="c1"># Super call will initialize index and columns with self.create_index()</span> + <span class="nb">super</span><span class="p">(</span><span class="n">ResAtmMap</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">sequence</span><span class="o">=</span><span class="n">sequence</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_sequence</span> <span class="o">=</span> <span class="n">sequence</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">sequence</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Amino Acid sequence string in humanidx</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_sequence</span><span class="p">:</span> + <span class="c1"># If non empty string</span> + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_sequence</span> + <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">index</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_sequence</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">AminoAcid</span><span class="o">.</span><span class="n">AminoAcid</span><span class="p">(</span><span class="n">_</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"-"</span><span class="p">)[</span><span class="mi">1</span><span class="p">])[</span><span class="mi">0</span><span class="p">]</span> + <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">levels</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> + <span class="k">else</span><span class="p">:</span> + <span class="c1"># No information given</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_sequence</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="nb">sorted</span><span class="p">(</span><span class="n">ConversionTable</span><span class="o">.</span><span class="n">ConversionTable</span><span class="p">()</span><span class="o">.</span><span class="n">table</span><span class="p">[</span> + <span class="s1">'AMINO_ACID'</span><span class="p">][</span><span class="s1">'iupac'</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">()))</span> + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_sequence</span> + +<div class="viewcode-block" id="ResAtmMap.create_index"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ResAtmMap.create_index">[docs]</a> <span class="k">def</span> <span class="nf">create_index</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sequence</span><span class="p">,</span> <span class="n">seq_pos</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">seqidx</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">idxnames</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> + <span class="n">colnames</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> sequence</span> +<span class="sd"> seq_pos</span> +<span class="sd"> seqidx: pandas.MultiIndex, optional</span> +<span class="sd"> idxnames</span> +<span class="sd"> colnames</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> +<span class="sd"> tuple of pandas.MultiIndex objects</span> +<span class="sd"> """</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Indexing ResAtm - ResAtm dataframe"</span><span class="p">)</span> + <span class="c1"># Atom table for residues (keys are in 3L code)</span> + <span class="n">seqidx</span> <span class="o">=</span> <span class="n">seqidx</span> <span class="k">if</span> <span class="n">seqidx</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">seqidx</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">sequence</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> + <span class="n">iupac_aa</span> <span class="o">=</span> <span class="n">ConversionTable</span><span class="o">.</span><span class="n">ConversionTable</span><span class="p">()</span><span class="o">.</span><span class="n">table</span><span class="p">[</span><span class="s1">'AMINO_ACID'</span><span class="p">][</span> + <span class="s1">'iupac'</span><span class="p">]</span> + <span class="c1"># Amino acid conversion table 1L -> 3L</span> + <span class="c1"># Making humanidx list for pandas dataframe</span> + <span class="n">seq</span> <span class="o">=</span> <span class="p">[</span><span class="n">AminoAcid</span><span class="o">.</span><span class="n">AminoAcid</span><span class="p">(</span><span class="n">aa</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span> <span class="k">for</span> <span class="n">aa</span> <span class="ow">in</span> <span class="n">sequence</span><span class="p">]</span> + <span class="c1"># Repeat each res for each heavy atm (humanidx value + 1 in order to</span> + <span class="c1"># start at 1 as in pdb file)</span> + <span class="k">if</span> <span class="nb">set</span><span class="p">(</span><span class="n">sequence</span><span class="p">)</span> <span class="o">==</span> <span class="n">sequence</span><span class="p">:</span> + <span class="c1"># General ResAtmMap for 20 aminoacid</span> + <span class="n">res_list</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"</span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="n">aa</span> <span class="k">for</span> <span class="n">aa</span> <span class="ow">in</span> <span class="n">seq</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> + <span class="p">(</span><span class="nb">filter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">heavy_reg</span><span class="o">.</span><span class="n">match</span><span class="p">,</span> <span class="n">iupac_aa</span><span class="p">[</span><span class="n">aa</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">()))]</span> + <span class="k">elif</span> <span class="n">seqidx</span><span class="p">:</span> + <span class="c1"># If we already have an index related to the sequence</span> + <span class="n">res_list</span> <span class="o">=</span> <span class="p">[</span> + <span class="s2">"</span><span class="si">%03d</span><span class="s2">-</span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">seqidx</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">aa</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">aa</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">seq</span><span class="p">)</span> + <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">filter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">heavy_reg</span><span class="o">.</span><span class="n">match</span><span class="p">,</span> <span class="n">iupac_aa</span><span class="p">[</span><span class="n">aa</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">())]</span> + <span class="k">else</span><span class="p">:</span> + <span class="c1"># If no index related to the sequence</span> + <span class="n">res_list</span> <span class="o">=</span> <span class="p">[</span> + <span class="s2">"</span><span class="si">%03d</span><span class="s2">-</span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">aa</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">aa</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">seq</span><span class="p">)</span> + <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">filter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">heavy_reg</span><span class="o">.</span><span class="n">match</span><span class="p">,</span> <span class="n">iupac_aa</span><span class="p">[</span><span class="n">aa</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">())]</span> + <span class="c1"># TODO: Inutile de repeter a chaque fois le calcul des listes</span> + <span class="c1"># d'atomes lourd pour chaque residu -> Deplacer au niveau de l'init</span> + <span class="n">atm_list</span> <span class="o">=</span> <span class="p">[</span><span class="n">atm</span> <span class="k">for</span> <span class="n">aa</span> <span class="ow">in</span> <span class="n">seq</span> <span class="k">for</span> <span class="n">atm</span> <span class="ow">in</span> <span class="nb">filter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">heavy_reg</span><span class="o">.</span><span class="n">match</span><span class="p">,</span> + <span class="n">iupac_aa</span><span class="p">[</span><span class="n">aa</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">())]</span> + <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">atm_list</span><span class="p">)</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="n">res_list</span><span class="p">):</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"Index lists aren't the same size</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> + <span class="n">res_list</span><span class="p">,</span> <span class="n">atm_list</span><span class="p">)</span> + + <span class="n">idxnames</span> <span class="o">=</span> <span class="n">idxnames</span> <span class="k">if</span> <span class="n">idxnames</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">idxnames</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span> <span class="k">else</span> <span class="p">[</span> + <span class="s2">"residuex"</span><span class="p">,</span> <span class="s2">"atomx"</span><span class="p">]</span> + <span class="n">colnames</span> <span class="o">=</span> <span class="n">colnames</span> <span class="k">if</span> <span class="n">colnames</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">colnames</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span> <span class="k">else</span> <span class="p">[</span> + <span class="s2">"residuey"</span><span class="p">,</span> <span class="s2">"atomy"</span><span class="p">]</span> + <span class="n">index</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">MultiIndex</span><span class="o">.</span><span class="n">from_tuples</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="p">[</span><span class="n">res_list</span><span class="p">,</span> <span class="n">atm_list</span><span class="p">])),</span> + <span class="n">names</span><span class="o">=</span><span class="n">idxnames</span><span class="p">)</span> + <span class="n">columns</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">MultiIndex</span><span class="o">.</span><span class="n">from_tuples</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="p">[</span><span class="n">res_list</span><span class="p">,</span> + <span class="n">atm_list</span><span class="p">])),</span> + <span class="n">names</span><span class="o">=</span><span class="n">colnames</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Index:</span><span class="se">\n</span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span> + <span class="k">return</span> <span class="n">index</span><span class="p">,</span> <span class="n">columns</span></div> + +<div class="viewcode-block" id="ResAtmMap.create_heatmap"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ResAtmMap.create_heatmap">[docs]</a> <span class="k">def</span> <span class="nf">create_heatmap</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">""":return:"""</span> + <span class="n">unidf</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">reduce</span><span class="p">()</span> + <span class="k">if</span> <span class="n">unidf</span><span class="o">.</span><span class="n">isnull</span><span class="p">()</span><span class="o">.</span><span class="n">values</span><span class="o">.</span><span class="n">sum</span><span class="p">()</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> + <span class="c1"># If there's no nan values</span> + <span class="k">return</span> <span class="n">sns</span><span class="o">.</span><span class="n">heatmap</span><span class="p">(</span><span class="n">unidf</span><span class="p">)</span> + <span class="k">return</span> <span class="kc">None</span></div> + +<div class="viewcode-block" id="ResAtmMap.reduce"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ResAtmMap.reduce">[docs]</a> <span class="k">def</span> <span class="nf">reduce</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">groupby</span><span class="o">=</span><span class="s2">"min"</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> groupby :</span> +<span class="sd"> return: (Default value = "min")</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">nlevels</span> <span class="o">==</span> <span class="mi">1</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">groupby</span><span class="p">:</span> + <span class="k">return</span> <span class="bp">self</span> + <span class="n">newmap</span> <span class="o">=</span> <span class="n">ResMap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sequence</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">desc</span><span class="p">,</span> + <span class="n">sym</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">sym</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">)</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dtype</span> <span class="o">==</span> <span class="nb">bool</span><span class="p">:</span> + <span class="n">newmap</span><span class="p">[:]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span><span class="o">.</span><span class="n">stack</span><span class="p">(</span><span class="n">dropna</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="n">level</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span><span class="o">.</span><span class="n">any</span><span class="p">()</span> + <span class="k">elif</span> <span class="n">groupby</span> <span class="o">==</span> <span class="s2">"mean"</span><span class="p">:</span> + <span class="n">newmap</span><span class="p">[:]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span><span class="o">.</span><span class="n">stack</span><span class="p">(</span><span class="n">dropna</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="n">level</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">()</span> + <span class="k">elif</span> <span class="n">groupby</span> <span class="o">==</span> <span class="s2">"min"</span><span class="p">:</span> + <span class="n">newmap</span><span class="p">[:]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span><span class="o">.</span><span class="n">stack</span><span class="p">(</span><span class="n">dropna</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span><span class="n">level</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span><span class="o">.</span><span class="n">min</span><span class="p">()</span> + <span class="k">return</span> <span class="n">newmap</span></div> + +<div class="viewcode-block" id="ResAtmMap.contact_map"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ResAtmMap.contact_map">[docs]</a> <span class="k">def</span> <span class="nf">contact_map</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">contactdef</span><span class="p">,</span> <span class="n">scsc_min</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">def_cut</span><span class="o">=</span><span class="mf">5.0</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Contact map generator from all atoms distance map. There's a contact</span> +<span class="sd"> with 2 residues iff dist between 2 atoms are below the given treshold</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> def_cut :</span> +<span class="sd"> (Default value = 5.0)</span> +<span class="sd"> contactdef :</span> +<span class="sd"> for all atom pair </span> +<span class="sd"> scsc_min :</span> +<span class="sd"> (Default value = None)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dtype</span> <span class="o">==</span> <span class="nb">bool</span><span class="p">:</span> + <span class="c1"># If self is already a contact map</span> + <span class="k">return</span> <span class="kc">None</span> + <span class="c1"># TODO: issue with sc_sc treshold !!!!!</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Generate contact map using contact definition </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> + <span class="n">contactdef</span><span class="p">)</span> + <span class="c1"># Initialize contact map to a boolean matrix filled with False as values</span> + <span class="n">contact_map</span> <span class="o">=</span> <span class="n">ResAtmMap</span><span class="p">(</span><span class="n">sequence</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">sequence</span><span class="p">,</span> <span class="n">mtype</span><span class="o">=</span><span class="s2">"contact"</span><span class="p">,</span> + <span class="n">desc</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">desc</span><span class="p">,</span> <span class="n">sym</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">sym</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">)</span> + <span class="n">def_cutoff</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">contactdef</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"default_cutoff"</span><span class="p">))</span> <span class="k">if</span> <span class="nb">float</span><span class="p">(</span> + <span class="n">contactdef</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"default_cutoff"</span><span class="p">))</span> <span class="k">else</span> <span class="n">def_cut</span> + <span class="n">treshold</span> <span class="o">=</span> <span class="kc">None</span> + + <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">contactdef</span><span class="p">)</span> <span class="o">==</span> <span class="nb">float</span><span class="p">:</span> + <span class="c1"># ???</span> + <span class="n">contact_map</span><span class="p">[:]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">applymap</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span> <span class="o"><</span> <span class="n">contactdef</span><span class="p">)</span> + + <span class="k">elif</span> <span class="nb">sum</span><span class="p">(</span><span class="n">x</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">contactdef</span><span class="o">.</span><span class="n">values</span><span class="p">())</span> <span class="o">==</span> <span class="mi">1</span> \ + <span class="ow">and</span> <span class="n">def_cutoff</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Using default cutoff"</span><span class="p">)</span> + <span class="n">contact_map</span><span class="p">[:]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">applymap</span><span class="p">(</span> + <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span> <span class="o"><</span> <span class="n">contactdef</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"default_cutoff"</span><span class="p">))</span> + + <span class="k">elif</span> <span class="nb">sum</span><span class="p">(</span><span class="n">x</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">contactdef</span><span class="o">.</span><span class="n">values</span><span class="p">())</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> + <span class="c1"># treshconv = lambda x: x < contactdef.get("default_cutoff")</span> + <span class="c1"># contact_map[:] = self.applymap(treshconv)</span> + <span class="n">atm_list</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">get_level_values</span><span class="p">(</span><span class="mi">1</span><span class="p">))</span> + <span class="n">atms_list</span> <span class="o">=</span> <span class="nb">set</span><span class="p">([(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span> <span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">atm_list</span> <span class="k">for</span> <span class="n">b</span> <span class="ow">in</span> <span class="n">atm_list</span><span class="p">])</span> + <span class="k">for</span> <span class="n">pair</span> <span class="ow">in</span> <span class="n">contactdef</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span> + <span class="n">treshold</span> <span class="o">=</span> <span class="n">contactdef</span><span class="p">[</span><span class="n">pair</span><span class="p">]</span> + <span class="k">if</span> <span class="n">pair</span> <span class="o">==</span> <span class="s2">"default_cutoff"</span><span class="p">:</span> + <span class="c1"># Since there is more than one treshold, we do not take</span> + <span class="c1"># default cutoff into account</span> + <span class="k">continue</span> + <span class="k">if</span> <span class="n">pair</span> <span class="o">==</span> <span class="s2">"all"</span><span class="p">:</span> + <span class="n">tmp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">applymap</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span> <span class="o"><</span> <span class="n">treshold</span><span class="p">)</span> + <span class="n">contact_map</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">tmp</span><span class="p">)</span> + <span class="k">continue</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">pair</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">pair</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"_"</span><span class="p">))</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span> + <span class="s2">"Filtering values in matrix related to </span><span class="si">%s</span><span class="s2"> (</span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> + <span class="nb">str</span><span class="p">(</span><span class="n">pair</span><span class="p">),</span> <span class="nb">str</span><span class="p">(</span><span class="n">treshold</span><span class="p">))</span> + <span class="k">if</span> <span class="n">pair</span> <span class="ow">in</span> <span class="p">((</span><span class="s2">"SC"</span><span class="p">,</span> <span class="s2">"SC"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"sc"</span><span class="p">,</span> <span class="s2">"sc"</span><span class="p">)):</span> + <span class="c1"># Use scsc_min to apply treshold updateonly for selected atom</span> + <span class="c1"># sidechain</span> + <span class="n">idx_list</span> <span class="o">=</span> <span class="p">[]</span> + <span class="n">col_list</span> <span class="o">=</span> <span class="p">[]</span> + <span class="k">for</span> <span class="n">res1</span> <span class="ow">in</span> <span class="n">scsc_min</span><span class="p">:</span> + <span class="k">for</span> <span class="n">res2</span> <span class="ow">in</span> <span class="n">scsc_min</span><span class="p">[</span><span class="n">res1</span><span class="p">]:</span> + <span class="n">pair</span> <span class="o">=</span> <span class="p">(</span><span class="n">AminoAcid</span><span class="o">.</span><span class="n">AminoAcid</span><span class="p">(</span><span class="n">res1</span><span class="p">)[</span><span class="mi">1</span><span class="p">],</span> + <span class="n">AminoAcid</span><span class="o">.</span><span class="n">AminoAcid</span><span class="p">(</span><span class="n">res2</span><span class="p">)[</span><span class="mi">1</span><span class="p">])</span> + <span class="n">atm1</span><span class="p">,</span> <span class="n">atm2</span> <span class="o">=</span> <span class="n">scsc_min</span><span class="p">[</span><span class="n">res1</span><span class="p">][</span><span class="n">res2</span><span class="p">]</span> + <span class="n">idx_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">map</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span> + <span class="n">pair</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="ow">and</span> <span class="n">x</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="n">atm1</span><span class="p">))</span> + <span class="n">col_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">map</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span> + <span class="n">pair</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="ow">and</span> <span class="n">x</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="n">atm2</span><span class="p">))</span> + <span class="n">mask</span> <span class="o">=</span> <span class="p">([</span><span class="nb">any</span><span class="p">(</span><span class="n">tup</span><span class="p">)</span> <span class="k">for</span> <span class="n">tup</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="n">idx_list</span><span class="p">)],</span> + <span class="p">[</span><span class="nb">any</span><span class="p">(</span><span class="n">tup</span><span class="p">)</span> <span class="k">for</span> <span class="n">tup</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="n">col_list</span><span class="p">)])</span> + <span class="k">elif</span> <span class="n">pair</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">atms_list</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"Pair </span><span class="si">%s</span><span class="s2"> doesn't exist ..."</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">pair</span><span class="p">))</span> + <span class="c1"># Already applied a treshold for this pair</span> + <span class="k">continue</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Apply treshold for </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">pair</span><span class="p">))</span> + <span class="n">atms_list</span><span class="o">.</span><span class="n">discard</span><span class="p">(</span><span class="n">pair</span><span class="p">)</span> + <span class="c1"># Selecting rows for each atom</span> + <span class="n">mask</span> <span class="o">=</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">get_level_values</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="n">pair</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> + <span class="bp">self</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">get_level_values</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="n">pair</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> + <span class="n">tmp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">mask</span><span class="p">]</span><span class="o">.</span><span class="n">apply</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span> <span class="o"><</span> <span class="nb">float</span><span class="p">(</span><span class="n">treshold</span><span class="p">))</span> + <span class="n">contact_map</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">tmp</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"Missing values in contact definition section. Add "</span> + <span class="s2">"at least a default_cutoff value."</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Contact map</span><span class="se">\n</span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">contact_map</span><span class="o">.</span><span class="n">head</span><span class="p">())</span> + <span class="k">return</span> <span class="n">contact_map</span></div> + +<div class="viewcode-block" id="ResAtmMap.copy"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ResAtmMap.copy">[docs]</a> <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Copy dataframe and related attributes of the map</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> **kwargs :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">df</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">Map</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> + <span class="k">return</span> <span class="n">ResAtmMap</span><span class="p">(</span> + <span class="n">sequence</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">sequence</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">df</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">desc</span><span class="p">,</span> + <span class="n">sym</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">sym</span><span class="p">,</span> <span class="n">mtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">mtype</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">)</span></div></div> + + +<div class="viewcode-block" id="ResMap"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ResMap">[docs]</a><span class="k">class</span> <span class="nc">ResMap</span><span class="p">(</span><span class="n">ResAtmMap</span><span class="p">):</span> + <span class="sd">"""Res - res distance/contact matrix"""</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sequence</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">sequence</span><span class="p">:</span> + <span class="n">sequence</span> <span class="o">=</span> <span class="n">ConversionTable</span><span class="o">.</span><span class="n">ConversionTable</span><span class="p">()</span><span class="o">.</span><span class="n">table</span><span class="p">[</span><span class="s1">'AMINO_ACID'</span><span class="p">][</span> + <span class="s1">'iupac'</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span> + <span class="nb">super</span><span class="p">(</span><span class="n">ResMap</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">sequence</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> + + <span class="c1"># def _constructor_expanddim(self):</span> + <span class="c1"># super(ResMap, self)._constructor_expanddim()</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">sequence</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Amino Acid sequence string in humanidx</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># return "".join(AminoAcid.AminoAcid(aa.split("-")[1])[0] for aa in</span> + <span class="c1"># self.index)</span> + <span class="k">return</span> <span class="nb">super</span><span class="p">(</span><span class="n">ResMap</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">sequence</span> + +<div class="viewcode-block" id="ResMap.create_index"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ResMap.create_index">[docs]</a> <span class="k">def</span> <span class="nf">create_index</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sequence</span><span class="p">,</span> <span class="n">seqidx</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">idxnames</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> + <span class="n">colnames</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> sequence</span> +<span class="sd"> seqidx: pandas.Index</span> +<span class="sd"> idxnames</span> +<span class="sd"> colnames</span> +<span class="sd"> kwargs</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> """</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Indexing Res - Res dataframe"</span><span class="p">)</span> + <span class="n">seq</span> <span class="o">=</span> <span class="p">[</span><span class="n">AminoAcid</span><span class="o">.</span><span class="n">AminoAcid</span><span class="p">(</span><span class="n">aa</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span> <span class="k">for</span> <span class="n">aa</span> <span class="ow">in</span> <span class="n">sequence</span><span class="p">]</span> + <span class="n">seqidx</span> <span class="o">=</span> <span class="n">seqidx</span> <span class="k">if</span> <span class="n">seqidx</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">seqidx</span><span class="p">)</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">sequence</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> + <span class="k">if</span> <span class="n">seqidx</span><span class="p">:</span> + <span class="n">res_list</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"</span><span class="si">%03d</span><span class="s2">-</span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">seqidx</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">aa</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">aa</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">seq</span><span class="p">)]</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">res_list</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"</span><span class="si">%03d</span><span class="s2">-</span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">aa</span><span class="p">)</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">aa</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">seq</span><span class="p">)]</span> + <span class="n">idxnames</span> <span class="o">=</span> <span class="n">idxnames</span> <span class="k">if</span> <span class="n">idxnames</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">idxnames</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span> <span class="k">else</span> <span class="s2">"residuex"</span> + <span class="n">colnames</span> <span class="o">=</span> <span class="n">colnames</span> <span class="k">if</span> <span class="n">colnames</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">colnames</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span> <span class="k">else</span> <span class="s2">"residuey"</span> + <span class="n">index</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">Index</span><span class="p">(</span><span class="n">res_list</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="n">idxnames</span><span class="p">)</span> + <span class="n">col</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">Index</span><span class="p">(</span><span class="n">res_list</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="n">colnames</span><span class="p">)</span> + <span class="k">return</span> <span class="n">index</span><span class="p">,</span> <span class="n">col</span></div> + +<div class="viewcode-block" id="ResMap.create_heatmap"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ResMap.create_heatmap">[docs]</a> <span class="k">def</span> <span class="nf">create_heatmap</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">""":return:"""</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">as_matrix</span><span class="p">()</span><span class="o">.</span><span class="n">isnull</span><span class="p">()</span><span class="o">.</span><span class="n">values</span><span class="o">.</span><span class="n">sum</span><span class="p">()</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> + <span class="c1"># If there's no nan values</span> + <span class="k">return</span> <span class="n">sns</span><span class="o">.</span><span class="n">heatmap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">as_matrix</span><span class="p">())</span> + <span class="k">return</span> <span class="kc">None</span></div> + +<div class="viewcode-block" id="ResMap.contact_map"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ResMap.contact_map">[docs]</a> <span class="k">def</span> <span class="nf">contact_map</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">contactdef</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> contactdef :</span> +<span class="sd"> param kwargs:</span> +<span class="sd"> **kwargs :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">contact_map</span> <span class="o">=</span> <span class="n">ResMap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sequence</span><span class="p">,</span> <span class="n">mtype</span><span class="o">=</span><span class="s2">"contact"</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">desc</span><span class="p">,</span> + <span class="n">sym</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">sym</span><span class="p">)</span> + + <span class="k">def</span> <span class="nf">treshconv</span><span class="p">(</span><span class="n">x</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> x :</span> +<span class="sd"> return:</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">return</span> <span class="n">x</span> <span class="o"><=</span> <span class="n">treshold</span> + + <span class="c1"># Applique treshold sur la matrice ssi c'est une matrice de distance</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dtype</span> <span class="o">==</span> <span class="nb">bool</span><span class="p">:</span> + <span class="c1"># If self is already a contact map</span> + <span class="k">return</span> <span class="kc">None</span> + <span class="n">treshold</span> <span class="o">=</span> <span class="n">contactdef</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"default_cutoff"</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span> + <span class="n">contact_map</span><span class="p">[:]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">applymap</span><span class="p">(</span><span class="n">treshconv</span><span class="p">)</span> + <span class="k">return</span> <span class="n">contact_map</span></div> + + <span class="k">def</span> <span class="nf">__deepcopy__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="n">deepcopy_method</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__deepcopy__</span> + <span class="bp">self</span><span class="o">.</span><span class="n">__deepcopy__</span> <span class="o">=</span> <span class="kc">None</span> + <span class="n">cp</span> <span class="o">=</span> <span class="n">deepcopy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">__deepcopy__</span> <span class="o">=</span> <span class="n">deepcopy_method</span> + + <span class="n">cp</span><span class="o">.</span><span class="n">dtype</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">dtype</span> + <span class="c1"># custom treatments</span> + <span class="c1"># for instance: cp.id = None</span> + + <span class="k">return</span> <span class="n">cp</span> + +<div class="viewcode-block" id="ResMap.copy"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ResMap.copy">[docs]</a> <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Copy dataframe and related attributes of the map</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> **kwargs :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">df</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">Map</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> + <span class="k">return</span> <span class="n">ResMap</span><span class="p">(</span> + <span class="n">sequence</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">sequence</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">df</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">desc</span><span class="p">,</span> + <span class="n">sym</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">sym</span><span class="p">,</span> <span class="n">mtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">mtype</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">)</span></div></div> + + +<div class="viewcode-block" id="AaMap"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.AaMap">[docs]</a><span class="k">class</span> <span class="nc">AaMap</span><span class="p">(</span><span class="n">ProteinMap</span><span class="p">):</span> + <span class="sd">"""Amino Acid Distance Matrix"""</span> + +<div class="viewcode-block" id="AaMap.contact_map"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.AaMap.contact_map">[docs]</a> <span class="k">def</span> <span class="nf">contact_map</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">contactdef</span><span class="p">,</span> <span class="n">scsc_min</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> contactdef</span> +<span class="sd"> scsc_min</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> """</span> + <span class="k">raise</span> <span class="ne">NotImplementedError</span></div> + +<div class="viewcode-block" id="AaMap.create_heatmap"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.AaMap.create_heatmap">[docs]</a> <span class="k">def</span> <span class="nf">create_heatmap</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> """</span> + <span class="k">raise</span> <span class="ne">NotImplementedError</span></div> + + <span class="c1"># def _constructor_expanddim(self):</span> + <span class="c1"># super(AaMap, self)._constructor_expanddim()</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="c1"># if ("index", "columns") not in kwargs:</span> + <span class="c1"># idx, col = self.create_index()</span> + <span class="c1"># kwargs["index"] = idx</span> + <span class="c1"># kwargs["columns"] = col</span> + <span class="nb">super</span><span class="p">(</span><span class="n">AaMap</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">sequence</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">sequence</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> + + <span class="c1"># TODO: Actually useless since it raised an notimplemented error</span> +<div class="viewcode-block" id="AaMap.reduce"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.AaMap.reduce">[docs]</a> <span class="k">def</span> <span class="nf">reduce</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""Reduce level of the contactmap"""</span> + <span class="k">return</span> <span class="nb">super</span><span class="p">(</span><span class="n">AaMap</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">reduce</span><span class="p">()</span></div> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">sequence</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Returns</span> +<span class="sd"> -------</span> +<span class="sd"> str</span> +<span class="sd"> String containing all amino acid 1L code</span> +<span class="sd"> """</span> + <span class="k">return</span> <span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="nb">sorted</span><span class="p">([</span> + <span class="n">AminoAcid</span><span class="o">.</span><span class="n">AminoAcid</span><span class="p">(</span><span class="n">aa</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> + <span class="k">for</span> <span class="n">aa</span> <span class="ow">in</span> <span class="n">ConversionTable</span><span class="o">.</span><span class="n">ConversionTable</span><span class="p">()</span><span class="o">.</span><span class="n">table</span><span class="p">[</span> + <span class="s1">'AMINO_ACID'</span><span class="p">][</span><span class="s1">'iupac'</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">()]))</span> + +<div class="viewcode-block" id="AaMap.copy"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.AaMap.copy">[docs]</a> <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> kwargs :</span> +<span class="sd"> </span> +<span class="sd"> **kwargs :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">df</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">Map</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> + <span class="k">return</span> <span class="n">AaMap</span><span class="p">(</span> + <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">df</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">desc</span><span class="p">,</span> + <span class="n">sym</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">sym</span><span class="p">,</span> <span class="n">mtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">mtype</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">)</span></div> + +<div class="viewcode-block" id="AaMap.create_index"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.AaMap.create_index">[docs]</a> <span class="k">def</span> <span class="nf">create_index</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sequence</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> """</span> + <span class="n">res_list</span> <span class="o">=</span> <span class="p">[</span><span class="n">AminoAcid</span><span class="o">.</span><span class="n">AminoAcid</span><span class="p">(</span><span class="n">aa</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span> <span class="k">for</span> <span class="n">aa</span> <span class="ow">in</span> <span class="n">sequence</span><span class="p">]</span> + <span class="n">index</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">Index</span><span class="p">(</span><span class="n">res_list</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">"aax"</span><span class="p">)</span> + <span class="n">col</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">Index</span><span class="p">(</span><span class="n">res_list</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">"aay"</span><span class="p">)</span> + <span class="k">return</span> <span class="n">index</span><span class="p">,</span> <span class="n">col</span></div></div> + + +<div class="viewcode-block" id="AaAtmMap"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.AaAtmMap">[docs]</a><span class="k">class</span> <span class="nc">AaAtmMap</span><span class="p">(</span><span class="n">AaMap</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Amino acid map with atom levels</span> +<span class="sd"> """</span> + +<div class="viewcode-block" id="AaAtmMap.create_heatmap"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.AaAtmMap.create_heatmap">[docs]</a> <span class="k">def</span> <span class="nf">create_heatmap</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> """</span> + <span class="k">raise</span> <span class="ne">NotImplementedError</span></div> + +<div class="viewcode-block" id="AaAtmMap.contact_map"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.AaAtmMap.contact_map">[docs]</a> <span class="k">def</span> <span class="nf">contact_map</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">contactdef</span><span class="p">,</span> <span class="n">scsc_min</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> contactdef</span> +<span class="sd"> scsc_min</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> """</span> + <span class="k">raise</span> <span class="ne">NotImplementedError</span></div> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="nb">super</span><span class="p">(</span><span class="n">AaAtmMap</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">atom_types</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"atom_types"</span><span class="p">,</span> <span class="s2">"min"</span><span class="p">)</span> + +<div class="viewcode-block" id="AaAtmMap.create_index"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.AaAtmMap.create_index">[docs]</a> <span class="k">def</span> <span class="nf">create_index</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sequence</span><span class="p">,</span> <span class="n">atom_types</span><span class="o">=</span><span class="s2">"min"</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Update Aa index with atoms</span> +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> """</span> + <span class="c1"># TODO: better way to define indexs</span> + <span class="c1"># idx, col = super(AaAtmMap, self).create_index()</span> + <span class="n">atomtable</span> <span class="o">=</span> <span class="n">ConversionTable</span><span class="o">.</span><span class="n">ConversionTable</span><span class="p">()</span><span class="o">.</span><span class="n">table</span><span class="p">[</span><span class="s1">'AMINO_ACID'</span><span class="p">][</span> + <span class="s1">'iupac'</span><span class="p">]</span> + <span class="n">seq</span> <span class="o">=</span> <span class="p">[</span><span class="n">AminoAcid</span><span class="o">.</span><span class="n">AminoAcid</span><span class="p">(</span><span class="n">aa</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span> <span class="k">for</span> <span class="n">aa</span> <span class="ow">in</span> <span class="n">sequence</span><span class="p">]</span> + <span class="n">res_list</span> <span class="o">=</span> <span class="p">[</span> + <span class="s2">"</span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="n">aa</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">aa</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">seq</span><span class="p">)</span> + <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">filter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">heavy_reg</span><span class="o">.</span><span class="n">match</span><span class="p">,</span> <span class="n">atomtable</span><span class="p">[</span><span class="n">aa</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">())]</span> + <span class="n">atm_list</span> <span class="o">=</span> <span class="p">[</span> + <span class="n">atm</span> <span class="k">for</span> <span class="n">aa</span> <span class="ow">in</span> <span class="n">seq</span> <span class="k">for</span> <span class="n">atm</span> <span class="ow">in</span> <span class="p">(</span><span class="s1">'CA'</span><span class="p">,</span> <span class="s1">'CB'</span><span class="p">,</span> <span class="s1">'SC'</span><span class="p">)]</span> \ + <span class="k">if</span> <span class="n">atom_types</span> <span class="o">==</span> <span class="s2">"min"</span> <span class="k">else</span> <span class="p">[</span> + <span class="n">atm</span> <span class="k">for</span> <span class="n">aa</span> <span class="ow">in</span> <span class="n">seq</span> <span class="k">for</span> <span class="n">atm</span> <span class="ow">in</span> <span class="nb">filter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">heavy_reg</span><span class="o">.</span><span class="n">match</span><span class="p">,</span> + <span class="n">atomtable</span><span class="p">[</span><span class="n">aa</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">())]</span> \ + <span class="k">if</span> <span class="n">atom_types</span> <span class="o">==</span> <span class="s2">"heavy"</span> <span class="k">else</span> <span class="p">[</span> + <span class="n">atm</span> <span class="k">for</span> <span class="n">aa</span> <span class="ow">in</span> <span class="n">seq</span> <span class="k">for</span> <span class="n">atm</span> <span class="ow">in</span> <span class="n">atomtable</span><span class="p">[</span><span class="n">aa</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">()]</span> + <span class="n">idx</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">MultiIndex</span><span class="o">.</span><span class="n">from_tuples</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="p">[</span><span class="n">res_list</span><span class="p">,</span> <span class="n">atm_list</span><span class="p">])),</span> + <span class="n">names</span><span class="o">=</span><span class="p">(</span><span class="s1">'AminoAcid'</span><span class="p">,</span> <span class="s1">'Atom'</span><span class="p">))</span> + <span class="n">col</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">MultiIndex</span><span class="o">.</span><span class="n">from_tuples</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="p">[</span><span class="n">res_list</span><span class="p">,</span> <span class="n">atm_list</span><span class="p">])),</span> + <span class="n">names</span><span class="o">=</span><span class="p">(</span><span class="s1">'AminoAcid'</span><span class="p">,</span> <span class="s1">'Atom'</span><span class="p">))</span> + <span class="k">return</span> <span class="n">idx</span><span class="p">,</span> <span class="n">col</span></div> + +<div class="viewcode-block" id="AaAtmMap.copy"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.AaAtmMap.copy">[docs]</a> <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> + + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> kwargs :</span> + +<span class="sd"> **kwargs :</span> + + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + + +<span class="sd"> """</span> + <span class="n">df</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">Map</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> + <span class="k">return</span> <span class="n">AaAtmMap</span><span class="p">(</span> + <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">df</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">desc</span><span class="p">,</span> + <span class="n">sym</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">sym</span><span class="p">,</span> <span class="n">mtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">mtype</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">,</span> + <span class="n">atom_types</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">atom_types</span><span class="p">)</span></div></div> + + +<div class="viewcode-block" id="SsAaAtmMap"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.SsAaAtmMap">[docs]</a><span class="k">class</span> <span class="nc">SsAaAtmMap</span><span class="p">(</span><span class="n">AaAtmMap</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Amino acid map with atom and secondary structure levels</span> +<span class="sd"> """</span> + <span class="n">ss_types</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"H"</span><span class="p">,</span> <span class="s2">"E"</span><span class="p">,</span> <span class="s2">"X"</span><span class="p">)</span> + +<div class="viewcode-block" id="SsAaAtmMap.contact_map"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.SsAaAtmMap.contact_map">[docs]</a> <span class="k">def</span> <span class="nf">contact_map</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">contactdef</span><span class="p">,</span> <span class="n">scsc_min</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> contactdef</span> +<span class="sd"> scsc_min</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> """</span> + <span class="k">pass</span></div> + +<div class="viewcode-block" id="SsAaAtmMap.create_heatmap"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.SsAaAtmMap.create_heatmap">[docs]</a> <span class="k">def</span> <span class="nf">create_heatmap</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> """</span> + <span class="k">pass</span></div> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="nb">super</span><span class="p">(</span><span class="n">SsAaAtmMap</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">atom_types</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"atom_types"</span><span class="p">,</span> <span class="s2">"min"</span><span class="p">)</span> + +<div class="viewcode-block" id="SsAaAtmMap.create_index"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.SsAaAtmMap.create_index">[docs]</a> <span class="k">def</span> <span class="nf">create_index</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sequence</span><span class="p">,</span> <span class="n">atom_types</span><span class="o">=</span><span class="s2">"min"</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> atom_types</span> +<span class="sd"> sequence</span> +<span class="sd"> kwargs</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> """</span> + <span class="c1"># TODO: better way to define indexs, duplicated code here !!!</span> + <span class="c1"># idx, col = super(AaAtmMap, self).create_index()</span> + <span class="n">atomtable</span> <span class="o">=</span> <span class="n">ConversionTable</span><span class="o">.</span><span class="n">ConversionTable</span><span class="p">()</span><span class="o">.</span><span class="n">table</span><span class="p">[</span><span class="s1">'AMINO_ACID'</span><span class="p">][</span> + <span class="s1">'iupac'</span><span class="p">]</span> + <span class="n">seq</span> <span class="o">=</span> <span class="p">[</span><span class="n">AminoAcid</span><span class="o">.</span><span class="n">AminoAcid</span><span class="p">(</span><span class="n">aa</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span> <span class="k">for</span> <span class="n">aa</span> <span class="ow">in</span> <span class="n">sequence</span><span class="p">]</span> + <span class="n">ss_list</span><span class="p">,</span> <span class="n">res_list</span><span class="p">,</span> <span class="n">atm_list</span> <span class="o">=</span> <span class="p">[],</span> <span class="p">[],</span> <span class="p">[]</span> + + <span class="k">for</span> <span class="n">ss</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">ss_types</span><span class="p">:</span> + <span class="k">for</span> <span class="n">aa</span> <span class="ow">in</span> <span class="n">seq</span><span class="p">:</span> + <span class="n">atms</span> <span class="o">=</span> <span class="p">(</span><span class="s1">'CA'</span><span class="p">,</span> <span class="s1">'CB'</span><span class="p">,</span> <span class="s1">'SC'</span><span class="p">)</span> <span class="k">if</span> <span class="n">atom_types</span> <span class="o">==</span> <span class="s2">"min"</span> <span class="k">else</span> <span class="nb">filter</span><span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">heavy_reg</span><span class="o">.</span><span class="n">match</span><span class="p">,</span> <span class="n">atomtable</span><span class="p">[</span><span class="n">aa</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span> <span class="k">if</span> <span class="n">atom_types</span> <span class="o">==</span> <span class="s2">"heavy"</span> <span class="k">else</span> <span class="n">atomtable</span><span class="p">[</span><span class="n">aa</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span> + <span class="k">for</span> <span class="n">atm</span> <span class="ow">in</span> <span class="n">atms</span><span class="p">:</span> + <span class="n">ss_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ss</span><span class="p">)</span> + <span class="n">res_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">aa</span><span class="p">)</span> + <span class="n">atm_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">atm</span><span class="p">)</span> + <span class="n">idx</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">MultiIndex</span><span class="o">.</span><span class="n">from_tuples</span><span class="p">(</span> + <span class="nb">list</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="p">[</span><span class="n">ss_list</span><span class="p">,</span> <span class="n">res_list</span><span class="p">,</span> <span class="n">atm_list</span><span class="p">])),</span> + <span class="n">names</span><span class="o">=</span><span class="p">(</span><span class="s1">'SecStruct'</span><span class="p">,</span> <span class="s1">'AminoAcid'</span><span class="p">,</span> <span class="s1">'Atom'</span><span class="p">))</span> + <span class="n">col</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">MultiIndex</span><span class="o">.</span><span class="n">from_tuples</span><span class="p">(</span> + <span class="nb">list</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="p">[</span><span class="n">ss_list</span><span class="p">,</span> <span class="n">res_list</span><span class="p">,</span> <span class="n">atm_list</span><span class="p">])),</span> + <span class="n">names</span><span class="o">=</span><span class="p">(</span><span class="s1">'SecStruct'</span><span class="p">,</span> <span class="s1">'AminoAcid'</span><span class="p">,</span> <span class="s1">'Atom'</span><span class="p">))</span> + <span class="k">return</span> <span class="n">idx</span><span class="p">,</span> <span class="n">col</span></div> + +<div class="viewcode-block" id="SsAaAtmMap.reduce"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.SsAaAtmMap.reduce">[docs]</a> <span class="k">def</span> <span class="nf">reduce</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">groupby</span><span class="o">=</span><span class="s2">"min"</span><span class="p">):</span> + <span class="sd">"""</span> + + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> groupby :</span> +<span class="sd"> return: (Default value = "min")</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + + +<span class="sd"> """</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">nlevels</span> <span class="o">==</span> <span class="mi">1</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">groupby</span><span class="p">:</span> + <span class="k">return</span> <span class="bp">self</span> + <span class="n">newmap</span> <span class="o">=</span> <span class="n">AaAtmMap</span><span class="p">(</span><span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">desc</span><span class="p">,</span> + <span class="n">sym</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">sym</span><span class="p">,</span> <span class="n">mtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">mtype</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">,</span> + <span class="n">atom_types</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">atom_types</span><span class="p">)</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">dtype</span> <span class="o">==</span> <span class="nb">bool</span><span class="p">:</span> + <span class="n">newmap</span><span class="p">[:]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span><span class="o">.</span><span class="n">stack</span><span class="p">(</span><span class="s1">'SecStruct'</span><span class="p">,</span> <span class="n">dropna</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span> + <span class="n">level</span><span class="o">=</span><span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">])</span><span class="o">.</span><span class="n">any</span><span class="p">()</span> + <span class="k">elif</span> <span class="n">groupby</span> <span class="o">==</span> <span class="s2">"mean"</span><span class="p">:</span> + <span class="n">newmap</span><span class="p">[:]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span><span class="o">.</span><span class="n">stack</span><span class="p">(</span><span class="s1">'SecStruct'</span><span class="p">,</span> <span class="n">dropna</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span> + <span class="n">level</span><span class="o">=</span><span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">])</span><span class="o">.</span><span class="n">mean</span><span class="p">()</span> + <span class="k">elif</span> <span class="n">groupby</span> <span class="o">==</span> <span class="s2">"min"</span><span class="p">:</span> + <span class="n">newmap</span><span class="p">[:]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span><span class="o">.</span><span class="n">stack</span><span class="p">(</span><span class="s1">'SecStruct'</span><span class="p">,</span> <span class="n">dropna</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span><span class="o">.</span><span class="n">groupby</span><span class="p">(</span> + <span class="n">level</span><span class="o">=</span><span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">])</span><span class="o">.</span><span class="n">min</span><span class="p">()</span> + <span class="k">return</span> <span class="n">newmap</span></div> + +<div class="viewcode-block" id="SsAaAtmMap.copy"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.SsAaAtmMap.copy">[docs]</a> <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> + + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> kwargs :</span> + +<span class="sd"> **kwargs :</span> + + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + + +<span class="sd"> """</span> + <span class="n">df</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">Map</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> + <span class="k">return</span> <span class="n">SsAaAtmMap</span><span class="p">(</span> + <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">df</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">desc</span><span class="p">,</span> + <span class="n">sym</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">sym</span><span class="p">,</span> <span class="n">mtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">mtype</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">)</span></div></div> + + +<div class="viewcode-block" id="AtmMap"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.AtmMap">[docs]</a><span class="k">class</span> <span class="nc">AtmMap</span><span class="p">(</span><span class="n">Map</span><span class="p">):</span> + <span class="sd">"""Atom Distance Matrix"""</span> + + <span class="c1"># def _constructor_expanddim(self):</span> + <span class="c1"># super(AtmMap, self)._constructor_expanddim()</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="nb">super</span><span class="p">(</span><span class="n">AtmMap</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> + +<div class="viewcode-block" id="AtmMap.reduce"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.AtmMap.reduce">[docs]</a> <span class="k">def</span> <span class="nf">reduce</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""Reduce level of the contactmap"""</span> + <span class="k">return</span> <span class="nb">super</span><span class="p">(</span><span class="n">AtmMap</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">reduce</span><span class="p">()</span></div> + +<div class="viewcode-block" id="AtmMap.copy"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.AtmMap.copy">[docs]</a> <span class="k">def</span> <span class="nf">copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> kwargs :</span> +<span class="sd"> </span> +<span class="sd"> **kwargs :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">df</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">Map</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> + <span class="k">return</span> <span class="n">AtmMap</span><span class="p">(</span> + <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">df</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">desc</span><span class="p">,</span> + <span class="n">sym</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">sym</span><span class="p">,</span> <span class="n">mtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">mtype</span><span class="p">,</span> <span class="n">dtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">dtype</span><span class="p">)</span></div> + +<div class="viewcode-block" id="AtmMap.create_index"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.AtmMap.create_index">[docs]</a> <span class="k">def</span> <span class="nf">create_index</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">""":return:"""</span> + <span class="k">raise</span> <span class="ne">NotImplementedError</span></div></div> + + +<div class="viewcode-block" id="ProtMapCollection"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.ProtMapCollection">[docs]</a><span class="k">class</span> <span class="nc">ProtMapCollection</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> + <span class="sd">"""Group all protein maps"""</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">settings</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_alldistmap</span> <span class="o">=</span> <span class="kc">None</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_allscoremap</span> <span class="o">=</span> <span class="kc">None</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_allcontactmap</span> <span class="o">=</span> <span class="kc">None</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_distmap</span> <span class="o">=</span> <span class="kc">None</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_scoremap</span> <span class="o">=</span> <span class="kc">None</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_contactmap</span> <span class="o">=</span> <span class="kc">None</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span> <span class="o">=</span> <span class="n">settings</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">alldistmap</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Atom level distance map.</span> +<span class="sd"> :return:</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_alldistmap</span> + + <span class="nd">@alldistmap</span><span class="o">.</span><span class="n">setter</span> + <span class="k">def</span> <span class="nf">alldistmap</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">resatmap</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Atom level distance map setter. The only way is to give resatmmap object</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> resatmap :</span> +<span class="sd"> type resatmap: ResAtmMap</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_alldistmap</span> <span class="o">=</span> <span class="n">resatmap</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">allcontactmap</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Atom level contact map. If alldistmap exists, return the maplot</span> +<span class="sd"> form</span> +<span class="sd"> :return:</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_alldistmap</span><span class="p">:</span> + <span class="c1"># settings.contactdef.config</span> + <span class="c1"># settings.main.scsc_min_file</span> + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_alldistmap</span><span class="o">.</span><span class="n">contact_map</span><span class="p">(</span><span class="n">contactdef</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span> + <span class="s2">"contactdef"</span><span class="p">],</span> <span class="n">scsc_min</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="s2">"scsc_min_file"</span><span class="p">])</span> + <span class="k">else</span><span class="p">:</span> + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_allcontactmap</span> + + <span class="nd">@allcontactmap</span><span class="o">.</span><span class="n">setter</span> + <span class="k">def</span> <span class="nf">allcontactmap</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">resatmap</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Atom level contact map setter</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> resatmap :</span> +<span class="sd"> binary res atm map</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_allcontactmap</span> <span class="o">=</span> <span class="n">resatmap</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">allscoremap</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Atom level score map</span> +<span class="sd"> :return:</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_allscoremap</span> + + <span class="nd">@allscoremap</span><span class="o">.</span><span class="n">setter</span> + <span class="k">def</span> <span class="nf">allscoremap</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">resatmap</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Atom level score map setter</span> +<span class="sd"> :return:</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> resatmap :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_allscoremap</span> <span class="o">=</span> <span class="n">resatmap</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">distmap</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">""":return:"""</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_alldistmap</span><span class="p">:</span> + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_alldistmap</span><span class="o">.</span><span class="n">reduce</span><span class="p">(</span><span class="n">groupby</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span> + <span class="s2">"groupby_method"</span><span class="p">])</span> + <span class="k">else</span><span class="p">:</span> + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_distmap</span> + + <span class="nd">@distmap</span><span class="o">.</span><span class="n">setter</span> + <span class="k">def</span> <span class="nf">distmap</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">resmap</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> resmap :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_distmap</span> <span class="o">=</span> <span class="n">resmap</span></div> + + +<div class="viewcode-block" id="MapFilter"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.MapFilter">[docs]</a><span class="k">class</span> <span class="nc">MapFilter</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Filter maplot/distancemap</span> +<span class="sd"> nd : Network deconvolution</span> +<span class="sd"> pos : remove close contacts</span> +<span class="sd"> cons : remove contacts with highly conservated residues</span> +<span class="sd"> cys-cys : unicity of ss contacts</span> +<span class="sd"> ssclash : secondary structure conflict</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">filter_types</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"pos"</span><span class="p">,</span> <span class="s2">"cons"</span><span class="p">,</span> <span class="s2">"ssclash"</span><span class="p">,</span> <span class="s2">"cys"</span><span class="p">)</span> + <span class="n">clash_dict</span> <span class="o">=</span> <span class="p">{</span> + <span class="s2">"pos"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"clash"</span><span class="p">:</span> <span class="s2">"physical proximity"</span><span class="p">,</span> + <span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"sequence position"</span><span class="p">},</span> + <span class="s2">"cons"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"clash"</span><span class="p">:</span> <span class="s2">"888"</span><span class="p">,</span> + <span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"high conservation"</span><span class="p">},</span> + <span class="s2">"ssclash"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"clash"</span><span class="p">:</span> <span class="s2">"999"</span><span class="p">,</span> + <span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"secondary structure prediction conflict"</span><span class="p">},</span> + <span class="s2">"cys"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"clash"</span><span class="p">:</span> <span class="s2">"222"</span><span class="p">,</span> + <span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"disulfide bond unicity"</span><span class="p">}}</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">settings</span><span class="p">,</span> <span class="n">nofilter</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span> <span class="o">=</span> <span class="n">settings</span> + <span class="bp">self</span><span class="o">.</span><span class="n">nofilter</span> <span class="o">=</span> <span class="n">nofilter</span> + +<div class="viewcode-block" id="MapFilter.nd_filter"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.MapFilter.nd_filter">[docs]</a> <span class="k">def</span> <span class="nf">nd_filter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mapdict</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> mapdict :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># TODO: build ROC curve with number of top contacts as the parameter</span> + <span class="sd">"""</span> + +<span class="sd"> :param mapdict:</span> +<span class="sd"> :return:</span> +<span class="sd"> """</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"...Network deconvolution filter (alpha=</span><span class="si">%.2f</span><span class="s2">, beta=</span><span class="si">%.2f</span><span class="s2">)"</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="s2">"nd_beta"</span><span class="p">],</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="s2">"nd_alpha"</span><span class="p">])</span> + <span class="n">scoremap</span> <span class="o">=</span> <span class="n">mapdict</span><span class="p">[</span><span class="s2">"scoremap"</span><span class="p">]</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">net_deconv</span><span class="p">(</span><span class="n">mapdict</span><span class="p">[</span><span class="s2">"scoremap"</span><span class="p">]</span><span class="o">.</span><span class="n">as_matrix</span><span class="p">(),</span> + <span class="n">beta</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="s2">"nd_beta"</span><span class="p">],</span> + <span class="n">alpha</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="s2">"nd_alpha"</span><span class="p">]))</span> + <span class="c1"># TODO: MAJ score map avec matrice obtenue !!!</span> + <span class="c1"># !!!! Verifier que scoremap est bien maj et UTILISEE !!</span> + <span class="k">return</span> <span class="n">scoremap</span></div> + +<div class="viewcode-block" id="MapFilter.pos_filter"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.MapFilter.pos_filter">[docs]</a> <span class="k">def</span> <span class="nf">pos_filter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mapdict</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Position filter on maplot</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> kwargs :</span> +<span class="sd"> param mapdict: dict with maplot key</span> +<span class="sd"> mapdict :</span> +<span class="sd"> </span> +<span class="sd"> **kwargs :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># Liste les contacts proches</span> + <span class="n">clash_list</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"clash_list"</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"...Position filter"</span><span class="p">)</span> + <span class="n">close_list</span> <span class="o">=</span> <span class="p">[]</span> + <span class="n">contact_list</span> <span class="o">=</span> <span class="n">mapdict</span><span class="p">[</span><span class="s2">"maplot"</span><span class="p">]</span><span class="o">.</span><span class="n">contact_list</span><span class="p">()</span> + + <span class="k">for</span> <span class="n">contact</span> <span class="ow">in</span> <span class="n">contact_list</span><span class="p">:</span> + <span class="n">gap</span> <span class="o">=</span> <span class="nb">abs</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="o">-</span> <span class="nb">int</span><span class="p">(</span><span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span> + <span class="k">if</span> <span class="n">gap</span> <span class="o"><=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="s1">'position_treshold'</span><span class="p">]:</span> + <span class="k">if</span> <span class="n">clash_list</span> <span class="ow">and</span> <span class="n">contact</span> <span class="ow">in</span> <span class="n">clash_list</span><span class="p">:</span> + <span class="k">continue</span> + <span class="n">close_list</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">]))</span> + <span class="k">return</span> <span class="p">{</span><span class="s1">'clash'</span><span class="p">:</span> <span class="n">close_list</span><span class="p">,</span> <span class="s1">'desc'</span><span class="p">:</span> <span class="kc">None</span><span class="p">}</span></div> + +<div class="viewcode-block" id="MapFilter.cons_filter"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.MapFilter.cons_filter">[docs]</a> <span class="k">def</span> <span class="nf">cons_filter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mapdict</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> mapdict :</span> +<span class="sd"> </span> +<span class="sd"> **kwargs :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># Liste les contacts aves des residus fortement conserves</span> + <span class="sd">"""</span> + +<span class="sd"> :param mapdict:</span> +<span class="sd"> :param kwargs:</span> +<span class="sd"> :return:</span> +<span class="sd"> """</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"...Conservation filter"</span><span class="p">)</span> + <span class="n">sec_struct</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"sec_struct"</span><span class="p">)</span> + <span class="n">clash_list</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"clash_list"</span><span class="p">)</span> + <span class="n">cons_pair</span> <span class="o">=</span> <span class="p">[]</span> + <span class="n">cons_res</span> <span class="o">=</span> <span class="p">[]</span> + <span class="n">contact_list</span> <span class="o">=</span> <span class="n">mapdict</span><span class="p">[</span><span class="s2">"maplot"</span><span class="p">]</span><span class="o">.</span><span class="n">contact_list</span><span class="p">()</span> + + <span class="k">if</span> <span class="ow">not</span> <span class="n">sec_struct</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span> + <span class="s2">"No conservation information. Can't use related filter"</span><span class="p">)</span> + <span class="k">return</span> <span class="p">{</span><span class="s1">'clash'</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="s1">'desc'</span><span class="p">:</span> <span class="kc">None</span><span class="p">}</span> + + <span class="k">if</span> <span class="n">sec_struct</span><span class="o">.</span><span class="n">filetype</span> <span class="o">!=</span> <span class="s2">"indextableplus"</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Conservation filter only works with indextableplus "</span> + <span class="s2">"files !"</span><span class="p">)</span> + <span class="k">return</span> <span class="p">{</span><span class="s1">'clash'</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="s1">'desc'</span><span class="p">:</span> <span class="kc">None</span><span class="p">}</span> + + <span class="c1"># parcours la liste de paires dans la matrice struct secondaire</span> + <span class="k">for</span> <span class="n">index</span><span class="p">,</span> <span class="n">reslist</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">sec_struct</span><span class="o">.</span><span class="n">ss_matrix</span><span class="p">):</span> + <span class="c1"># TODO: Initialize conservation score if other value than int</span> + <span class="n">cons_score</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">reslist</span><span class="p">[</span><span class="mi">5</span><span class="p">])</span> <span class="k">if</span> <span class="n">reslist</span><span class="p">[</span><span class="mi">5</span><span class="p">]</span> <span class="o">!=</span> <span class="s2">"-"</span> <span class="k">else</span> <span class="mi">0</span> + <span class="k">if</span> <span class="n">cons_score</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="s2">"conservation_treshold"</span><span class="p">]</span> \ + <span class="ow">and</span> <span class="n">reslist</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">!=</span> <span class="s1">'C'</span><span class="p">:</span> + <span class="n">cons_res</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">index</span><span class="p">)</span> + + <span class="k">for</span> <span class="n">contact</span> <span class="ow">in</span> <span class="n">contact_list</span><span class="p">:</span> + <span class="k">if</span> <span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">in</span> <span class="n">cons_res</span> <span class="ow">or</span> <span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="ow">in</span> <span class="n">cons_res</span><span class="p">:</span> + <span class="k">if</span> <span class="n">clash_list</span> <span class="ow">and</span> <span class="n">contact</span> <span class="ow">in</span> <span class="n">clash_list</span><span class="p">:</span> + <span class="c1"># If this clash already exist</span> + <span class="k">continue</span> + <span class="n">cons_pair</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">contact</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Highly conserved residue list: </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">cons_res</span><span class="p">)</span> + <span class="k">return</span> <span class="p">{</span><span class="s1">'clash'</span><span class="p">:</span> <span class="n">cons_pair</span><span class="p">,</span> <span class="s1">'desc'</span><span class="p">:</span> <span class="kc">None</span><span class="p">}</span></div> + +<div class="viewcode-block" id="MapFilter.cys_filter"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.MapFilter.cys_filter">[docs]</a> <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">cys_filter</span><span class="p">(</span><span class="n">mapdict</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> mapdict :</span> +<span class="sd"> </span> +<span class="sd"> **kwargs :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># Si scoremap existe, selectionner les contacts cys-cys qui ont les</span> + <span class="c1"># meilleurs scores, fournit une liste des contacts disulfures qui</span> + <span class="c1"># possedent des scores plus faibles</span> + <span class="sd">"""</span> + +<span class="sd"> :param mapdict:</span> +<span class="sd"> :param kwargs:</span> +<span class="sd"> :return:</span> +<span class="sd"> """</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"...Disulfure bridge unicity filter"</span><span class="p">)</span> + <span class="n">clash_list</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"clash_list"</span><span class="p">)</span> + <span class="n">unidisbridge_list</span> <span class="o">=</span> <span class="p">[]</span> <span class="c1"># Liste les ponts disulfures uniques</span> + <span class="n">clashdisbridge_list</span> <span class="o">=</span> <span class="p">[]</span> <span class="c1"># Liste les ponts disulfures incompatibles</span> + <span class="n">desc</span> <span class="o">=</span> <span class="p">[]</span> + + <span class="k">if</span> <span class="n">mapdict</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"scoremap"</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> + <span class="n">scoremap</span> <span class="o">=</span> <span class="n">mapdict</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"scoremap"</span><span class="p">)</span> + <span class="c1"># List of all cysteine</span> + <span class="n">cys_list</span> <span class="o">=</span> <span class="p">[</span><span class="n">idx</span> <span class="k">for</span> <span class="n">idx</span><span class="p">,</span> <span class="n">val</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">scoremap</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">values</span><span class="p">)</span> + <span class="k">if</span> <span class="n">val</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">'CYS'</span><span class="p">)]</span> + <span class="n">dis_bridge_list</span> <span class="o">=</span> <span class="p">{</span><span class="n">ss</span><span class="p">:</span> <span class="n">scoremap</span><span class="o">.</span><span class="n">iat</span><span class="p">[</span><span class="n">ss</span><span class="p">]</span> <span class="k">for</span> <span class="n">ss</span> + <span class="ow">in</span> <span class="nb">list</span><span class="p">(</span><span class="n">itertools</span><span class="o">.</span><span class="n">combinations</span><span class="p">(</span><span class="n">cys_list</span><span class="p">,</span> <span class="mi">2</span><span class="p">))}</span> + <span class="k">if</span> <span class="n">dis_bridge_list</span><span class="p">:</span> + <span class="c1"># Get list of all disulfure bridges sorted</span> + <span class="n">sorted_ss</span> <span class="o">=</span> <span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="nb">sorted</span><span class="p">(</span><span class="n">dis_bridge_list</span><span class="o">.</span><span class="n">items</span><span class="p">(),</span> + <span class="n">key</span><span class="o">=</span><span class="n">operator</span><span class="o">.</span><span class="n">itemgetter</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span> + <span class="n">reverse</span><span class="o">=</span><span class="kc">True</span><span class="p">))[</span><span class="mi">0</span><span class="p">]</span> + <span class="k">else</span><span class="p">:</span> + <span class="k">return</span> <span class="p">{</span><span class="s1">'clash'</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="s1">'desc'</span><span class="p">:</span> <span class="kc">None</span><span class="p">}</span> + <span class="k">for</span> <span class="n">dis_bridge</span> <span class="ow">in</span> <span class="n">sorted_ss</span><span class="p">:</span> + <span class="c1"># foreach disulfure bridge</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s1">'Checking </span><span class="si">%s</span><span class="s1"> </span><span class="si">%s</span><span class="s1">'</span><span class="p">,</span> <span class="n">addtup</span><span class="p">(</span><span class="n">dis_bridge</span><span class="p">),</span> + <span class="n">scoremap</span><span class="o">.</span><span class="n">iat</span><span class="p">[</span><span class="n">dis_bridge</span><span class="p">])</span> + <span class="k">if</span> <span class="n">dis_bridge</span> <span class="ow">in</span> <span class="n">clash_list</span><span class="p">:</span> + <span class="c1"># given contact already removed with previous filters</span> + <span class="k">continue</span> + <span class="k">else</span><span class="p">:</span> + <span class="c1"># Check for each cys in dis_bridge if they aready exists</span> + <span class="c1"># in unidisbridge_list</span> + <span class="n">exdis</span> <span class="o">=</span> <span class="kc">None</span> + <span class="k">if</span> <span class="n">unidisbridge_list</span><span class="p">:</span> + <span class="k">for</span> <span class="n">cys</span> <span class="ow">in</span> <span class="n">dis_bridge</span><span class="p">:</span> + <span class="k">for</span> <span class="n">unidis</span> <span class="ow">in</span> <span class="n">unidisbridge_list</span><span class="p">:</span> + <span class="k">if</span> <span class="n">cys</span> <span class="ow">in</span> <span class="n">unidis</span><span class="p">:</span> + <span class="n">exdis</span> <span class="o">=</span> <span class="n">unidis</span> + <span class="k">break</span> + <span class="k">if</span> <span class="n">exdis</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Ss bridge </span><span class="si">%s</span><span class="s2"> have at least one cys in "</span> + <span class="s2">"common with previous ss filtered (</span><span class="si">%s</span><span class="s2">). "</span><span class="p">,</span> + <span class="n">addtup</span><span class="p">(</span><span class="n">dis_bridge</span><span class="p">),</span> + <span class="nb">map</span><span class="p">(</span><span class="n">addtup</span><span class="p">,</span> <span class="n">unidisbridge_list</span><span class="p">))</span> + <span class="k">if</span> <span class="n">scoremap</span><span class="o">.</span><span class="n">iat</span><span class="p">[</span><span class="n">dis_bridge</span><span class="p">]</span> <span class="o">></span> <span class="n">scoremap</span><span class="o">.</span><span class="n">iat</span><span class="p">[</span><span class="n">exdis</span><span class="p">]:</span> + <span class="c1"># Better cys--cys contact</span> + <span class="c1"># List cys-cys contacts that will be removed in</span> + <span class="c1"># unidisbridge_list</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2"> has better score than </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> + <span class="n">addtup</span><span class="p">(</span><span class="n">dis_bridge</span><span class="p">),</span> + <span class="n">addtup</span><span class="p">(</span><span class="n">exdis</span><span class="p">))</span> + <span class="n">remcys</span> <span class="o">=</span> <span class="p">(</span><span class="n">unidis</span> <span class="k">for</span> <span class="n">cys</span> <span class="ow">in</span> <span class="n">dis_bridge</span> <span class="k">for</span> <span class="n">unidis</span> + <span class="ow">in</span> <span class="n">unidisbridge_list</span> <span class="k">if</span> <span class="n">cys</span> <span class="ow">in</span> <span class="n">unidis</span><span class="p">)</span> + <span class="k">for</span> <span class="n">dis</span> <span class="ow">in</span> <span class="n">remcys</span><span class="p">:</span> + <span class="c1"># PB si un des dis supprime est</span> + <span class="n">clashdisbridge_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">dis</span><span class="p">)</span> + <span class="n">clashdisbridge_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">dis</span><span class="p">[::</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> + <span class="n">unidisbridge_list</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">dis</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Added </span><span class="si">%s</span><span class="s2"> to clashlist </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> + <span class="n">addtup</span><span class="p">(</span><span class="n">dis</span><span class="p">),</span> + <span class="nb">map</span><span class="p">(</span><span class="n">addtup</span><span class="p">,</span> <span class="n">clashdisbridge_list</span><span class="p">))</span> + <span class="n">unidisbridge_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">dis_bridge</span><span class="p">)</span> + <span class="k">continue</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">clashdisbridge_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">dis_bridge</span><span class="p">)</span> + <span class="n">clashdisbridge_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">dis_bridge</span><span class="p">[::</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Added </span><span class="si">%s</span><span class="s2"> to ss clashlist </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> + <span class="n">addtup</span><span class="p">(</span><span class="n">dis_bridge</span><span class="p">),</span> + <span class="nb">map</span><span class="p">(</span><span class="n">addtup</span><span class="p">,</span> <span class="n">clashdisbridge_list</span><span class="p">))</span> + <span class="k">continue</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s1">'Adding bridge </span><span class="si">%s</span><span class="s1"> to ss filtered list'</span><span class="p">,</span> <span class="n">dis_bridge</span><span class="p">)</span> + <span class="n">unidisbridge_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">dis_bridge</span><span class="p">)</span> + <span class="k">return</span> <span class="p">{</span><span class="s1">'clash'</span><span class="p">:</span> <span class="n">clashdisbridge_list</span><span class="p">,</span> <span class="s1">'desc'</span><span class="p">:</span> <span class="n">desc</span><span class="p">}</span> + <span class="k">else</span><span class="p">:</span> + <span class="c1"># If no score given, return empty list</span> + <span class="k">return</span> <span class="p">{</span><span class="s1">'clash'</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="s1">'desc'</span><span class="p">:</span> <span class="kc">None</span><span class="p">}</span></div> + +<div class="viewcode-block" id="MapFilter.ssclash_filter"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.MapFilter.ssclash_filter">[docs]</a> <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">ssclash_filter</span><span class="p">(</span><span class="n">mapdict</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> mapdict :</span> +<span class="sd"> param kwargs:</span> +<span class="sd"> **kwargs :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + + <span class="k">def</span> <span class="nf">hum_contact</span><span class="p">(</span><span class="n">xy</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> xy :</span> +<span class="sd"> return:</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">return</span> <span class="n">xy</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">xy</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">+</span> <span class="mi">1</span> + + <span class="c1"># TODO: better add clash list and sec_struct as object attribute</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"...Secondary structure clash filter"</span><span class="p">)</span> + <span class="n">sec_struct</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"sec_struct"</span><span class="p">)</span> + <span class="n">clash_list</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"clash_list"</span><span class="p">)</span> + <span class="n">ssclash_pair</span> <span class="o">=</span> <span class="p">[]</span> + <span class="n">desc_dict</span> <span class="o">=</span> <span class="p">{}</span> + + <span class="k">if</span> <span class="ow">not</span> <span class="n">sec_struct</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">"No secondary structure information. Can't use secondary"</span> + <span class="s2">" structure filter"</span><span class="p">)</span> + <span class="k">return</span> <span class="p">{</span><span class="s1">'clash'</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="s1">'desc'</span><span class="p">:</span> <span class="kc">None</span><span class="p">}</span> + + <span class="n">ss_matrix</span> <span class="o">=</span> <span class="n">sec_struct</span><span class="o">.</span><span class="n">ss_matrix</span> + <span class="n">ss_list</span> <span class="o">=</span> <span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="n">ss_matrix</span><span class="p">)[</span><span class="mi">2</span><span class="p">]</span> + <span class="c1"># contact_list from contact map start at 0 !!</span> + <span class="n">contact_list</span> <span class="o">=</span> <span class="n">mapdict</span><span class="p">[</span><span class="s2">"maplot"</span><span class="p">]</span><span class="o">.</span><span class="n">contact_list</span><span class="p">()</span> + + <span class="n">ss_start_end</span> <span class="o">=</span> <span class="n">collections</span><span class="o">.</span><span class="n">defaultdict</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="p">[</span><span class="kc">None</span><span class="p">,</span> <span class="kc">None</span><span class="p">])</span> + + <span class="c1"># TODO: deplacer construction du dic ss_start_end dans SsList</span> + <span class="k">for</span> <span class="n">res_ind</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">ss_matrix</span><span class="p">)):</span> + <span class="c1"># Construction du dict ss_start_end</span> + <span class="k">if</span> <span class="n">res_ind</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> + <span class="c1"># If first residue</span> + <span class="c1"># Save ss start humanidx related to res_ind</span> + <span class="n">ss_start_end</span><span class="p">[</span><span class="n">ss_matrix</span><span class="p">[</span><span class="n">res_ind</span><span class="p">][</span><span class="mi">2</span><span class="p">]][</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">res_ind</span> + <span class="k">if</span> <span class="n">ss_matrix</span><span class="p">[</span><span class="n">res_ind</span><span class="p">][</span><span class="mi">2</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">!=</span> <span class="n">ss_matrix</span><span class="p">[</span><span class="n">res_ind</span> <span class="o">+</span> <span class="mi">1</span><span class="p">][</span><span class="mi">2</span><span class="p">][</span><span class="mi">0</span><span class="p">]:</span> + <span class="c1"># If next res is not in the same ss</span> + <span class="n">ss_start_end</span><span class="p">[</span><span class="n">ss_matrix</span><span class="p">[</span><span class="n">res_ind</span><span class="p">][</span><span class="mi">2</span><span class="p">]][</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">res_ind</span> + <span class="n">ss_start_end</span><span class="p">[</span><span class="n">ss_matrix</span><span class="p">[</span><span class="n">res_ind</span> <span class="o">+</span> <span class="mi">1</span><span class="p">][</span><span class="mi">2</span><span class="p">]][</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">res_ind</span> <span class="o">+</span> <span class="mi">1</span> + <span class="k">elif</span> <span class="n">res_ind</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">ss_matrix</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">:</span> + <span class="c1"># Si dernier res</span> + <span class="n">ss_start_end</span><span class="p">[</span><span class="n">ss_matrix</span><span class="p">[</span><span class="n">res_ind</span><span class="p">][</span><span class="mi">2</span><span class="p">]][</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">res_ind</span> + <span class="k">elif</span> <span class="n">ss_matrix</span><span class="p">[</span><span class="n">res_ind</span><span class="p">][</span><span class="mi">2</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">!=</span> <span class="n">ss_matrix</span><span class="p">[</span><span class="n">res_ind</span> <span class="o">+</span> <span class="mi">1</span><span class="p">][</span><span class="mi">2</span><span class="p">][</span><span class="mi">0</span><span class="p">]:</span> + <span class="c1"># If next res not in the same ss</span> + <span class="n">ss_start_end</span><span class="p">[</span><span class="n">ss_matrix</span><span class="p">[</span><span class="n">res_ind</span><span class="p">][</span><span class="mi">2</span><span class="p">]][</span><span class="mi">1</span><span class="p">]</span> <span class="o">=</span> <span class="n">res_ind</span> + <span class="n">ss_start_end</span><span class="p">[</span><span class="n">ss_matrix</span><span class="p">[</span><span class="n">res_ind</span> <span class="o">+</span> <span class="mi">1</span><span class="p">][</span><span class="mi">2</span><span class="p">]][</span><span class="mi">0</span><span class="p">]</span> <span class="o">=</span> <span class="n">res_ind</span> <span class="o">+</span> <span class="mi">1</span> + + <span class="n">start_list</span> <span class="o">=</span> <span class="p">[</span><span class="n">ss_start_end</span><span class="p">[</span><span class="n">elm</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">elm</span> <span class="ow">in</span> <span class="n">ss_start_end</span><span class="p">]</span> + <span class="n">end_list</span> <span class="o">=</span> <span class="p">[</span><span class="n">ss_start_end</span><span class="p">[</span><span class="n">elm</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="k">for</span> <span class="n">elm</span> <span class="ow">in</span> <span class="n">ss_start_end</span><span class="p">]</span> + + <span class="k">for</span> <span class="n">icontact</span><span class="p">,</span> <span class="n">contact</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">contact_list</span><span class="p">):</span> + <span class="c1"># For each res-res contact</span> + <span class="n">outcontact</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">hum_contact</span><span class="p">(</span><span class="n">contact</span><span class="p">))</span> + <span class="k">if</span> <span class="n">contact</span> <span class="ow">in</span> <span class="n">clash_list</span><span class="p">:</span> + <span class="k">continue</span> + <span class="n">resi</span> <span class="o">=</span> <span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="c1"># Pos number (0...n-1)</span> + <span class="n">resj</span> <span class="o">=</span> <span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> + <span class="n">ssi</span> <span class="o">=</span> <span class="n">ss_list</span><span class="p">[</span><span class="n">resi</span><span class="p">]</span> + <span class="n">ssj</span> <span class="o">=</span> <span class="n">ss_list</span><span class="p">[</span><span class="n">resj</span><span class="p">]</span> + + <span class="k">if</span> <span class="n">ssi</span> <span class="o">==</span> <span class="n">ssj</span> <span class="ow">and</span> <span class="p">(</span><span class="n">ssi</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">ssj</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="ow">in</span> <span class="p">((</span><span class="s2">"H"</span><span class="p">,</span> <span class="s2">"H"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"E"</span><span class="p">,</span> <span class="s2">"E"</span><span class="p">)):</span> + <span class="c1"># If both residues are in same helix or strand</span> + <span class="n">desc</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">,</span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">ssi</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">ssj</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> + <span class="n">desc_dict</span><span class="p">[</span><span class="n">contact</span><span class="p">]</span> <span class="o">=</span> <span class="n">desc</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Ss conflict for contact </span><span class="si">%d</span><span class="s2"> </span><span class="si">%s</span><span class="s2"> (</span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> + <span class="n">icontact</span><span class="p">,</span> <span class="n">outcontact</span><span class="p">,</span> <span class="n">desc</span><span class="p">)</span> + <span class="n">ssclash_pair</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">contact</span><span class="p">)</span> + <span class="c1"># ELIF encadre H ou E</span> + <span class="k">elif</span> <span class="n">ssi</span> <span class="o">!=</span> <span class="n">ssj</span><span class="p">:</span> + <span class="c1"># If both residues are not in the same ss</span> + <span class="n">ssclash</span> <span class="o">=</span> <span class="kc">None</span> + <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">):</span> + + <span class="c1"># Search type of the bond (H-1 H, E-2 E, ...)</span> + <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">2</span><span class="p">):</span> + <span class="c1"># Test both sides</span> + + <span class="n">resi</span> <span class="o">=</span> <span class="n">contact</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> + <span class="n">resj</span> <span class="o">=</span> <span class="n">contact</span><span class="p">[</span><span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> + <span class="n">ssi</span> <span class="o">=</span> <span class="n">ss_list</span><span class="p">[</span><span class="n">resi</span><span class="p">]</span> + <span class="n">ssj</span> <span class="o">=</span> <span class="n">ss_list</span><span class="p">[</span><span class="n">resj</span><span class="p">]</span> + + <span class="k">try</span><span class="p">:</span> + <span class="n">ssi_pn</span> <span class="o">=</span> <span class="n">ss_list</span><span class="p">[</span><span class="n">resi</span> <span class="o">+</span> <span class="n">n</span><span class="p">]</span> + <span class="n">ssi_mn</span> <span class="o">=</span> <span class="n">ss_list</span><span class="p">[</span><span class="n">resi</span> <span class="o">-</span> <span class="n">n</span><span class="p">]</span> + <span class="n">ssj_pn</span> <span class="o">=</span> <span class="n">ss_list</span><span class="p">[</span><span class="n">resj</span> <span class="o">+</span> <span class="n">n</span><span class="p">]</span> + <span class="n">ssj_mn</span> <span class="o">=</span> <span class="n">ss_list</span><span class="p">[</span><span class="n">resj</span> <span class="o">-</span> <span class="n">n</span><span class="p">]</span> + <span class="k">except</span> <span class="ne">IndexError</span><span class="p">:</span> + <span class="k">continue</span> + + <span class="c1"># (E-n, E) OR (H-n, H)</span> + <span class="k">if</span> <span class="n">ssj</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"H"</span><span class="p">,</span> <span class="s2">"E"</span><span class="p">)</span> \ + <span class="ow">and</span> <span class="n">resi</span> <span class="o">+</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">start_list</span> \ + <span class="ow">and</span> <span class="n">ssi_pn</span> <span class="o">==</span> <span class="n">ssj</span><span class="p">:</span> + <span class="c1"># --i**[-----j-----]--- (n: **)</span> + <span class="c1"># E/H</span> + <span class="n">ssclash</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">-</span><span class="si">%d</span><span class="s2">,</span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">ssi_pn</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">n</span><span class="p">,</span> <span class="n">ssj</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> + <span class="k">break</span> + <span class="k">if</span> <span class="n">ssj</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"H"</span><span class="p">,</span> <span class="s2">"E"</span><span class="p">)</span> \ + <span class="ow">and</span> <span class="n">resi</span> <span class="o">-</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">end_list</span> \ + <span class="ow">and</span> <span class="n">ssi_mn</span> <span class="o">==</span> <span class="n">ssj</span><span class="p">:</span> + <span class="c1"># -----[-----j-----]**i--- (n: **)</span> + <span class="c1"># E/H</span> + <span class="n">ssclash</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">+</span><span class="si">%d</span><span class="s2">,</span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">ssi_mn</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">n</span><span class="p">,</span> <span class="n">ssj</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> + <span class="k">break</span> + <span class="k">if</span> <span class="n">ssi</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"H"</span><span class="p">,</span> <span class="s2">"E"</span><span class="p">)</span> \ + <span class="ow">and</span> <span class="n">resj</span> <span class="o">+</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">start_list</span> \ + <span class="ow">and</span> <span class="n">ssj_pn</span> <span class="o">==</span> <span class="n">ssi</span><span class="p">:</span> + <span class="c1"># --j**[-----i-----]--- (n: **)</span> + <span class="c1"># E/H</span> + <span class="n">ssclash</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">-</span><span class="si">%d</span><span class="s2">,</span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">ssj_pn</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">n</span><span class="p">,</span> <span class="n">ssi</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> + <span class="k">break</span> + <span class="k">if</span> <span class="n">ssi</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"H"</span><span class="p">,</span> <span class="s2">"E"</span><span class="p">)</span> \ + <span class="ow">and</span> <span class="n">resj</span> <span class="o">-</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">end_list</span> \ + <span class="ow">and</span> <span class="n">ssj_mn</span> <span class="o">==</span> <span class="n">ssi</span><span class="p">:</span> + <span class="c1"># -----[-----i-----]**j--- (n: **)</span> + <span class="c1"># E/H</span> + <span class="n">ssclash</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">+</span><span class="si">%d</span><span class="s2">,</span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">ssj_mn</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">n</span><span class="p">,</span> <span class="n">ssi</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> + <span class="k">break</span> + + <span class="c1"># (E+n, E-n), (H+n, H-n)</span> + <span class="k">if</span> <span class="n">ssi_mn</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"H"</span><span class="p">,</span> <span class="s2">"E"</span><span class="p">)</span> \ + <span class="ow">and</span> <span class="n">resi</span> <span class="o">-</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">end_list</span> \ + <span class="ow">and</span> <span class="n">resj</span> <span class="o">+</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">start_list</span> \ + <span class="ow">and</span> <span class="n">ssi_mn</span> <span class="o">==</span> <span class="n">ssj_pn</span><span class="p">:</span> + <span class="c1"># --j**[-----H/E-----]**i-- (n: **)</span> + <span class="n">ssclash</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">+</span><span class="si">%d</span><span class="s2">,</span><span class="si">%s</span><span class="s2">-</span><span class="si">%d</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">ssi_mn</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">n</span><span class="p">,</span> + <span class="n">ssj_pn</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">n</span><span class="p">)</span> + <span class="k">break</span> + <span class="k">if</span> <span class="n">ssi_pn</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"H"</span><span class="p">,</span> <span class="s2">"E"</span><span class="p">)</span> \ + <span class="ow">and</span> <span class="n">resi</span> <span class="o">+</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">start_list</span> \ + <span class="ow">and</span> <span class="n">resj</span> <span class="o">-</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">end_list</span> \ + <span class="ow">and</span> <span class="n">ssi_pn</span> <span class="o">==</span> <span class="n">ssj_mn</span><span class="p">:</span> + <span class="c1"># --i**[-----H/E-----]**j-- (n: **)</span> + <span class="n">ssclash</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">-</span><span class="si">%d</span><span class="s2">,</span><span class="si">%s</span><span class="s2">+</span><span class="si">%d</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">ssi_pn</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">n</span><span class="p">,</span> + <span class="n">ssj_mn</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">n</span><span class="p">)</span> + <span class="k">break</span> + + <span class="k">if</span> <span class="n">ssclash</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Ss clash for contact </span><span class="si">%d</span><span class="s2"> </span><span class="si">%s</span><span class="s2"> (</span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> + <span class="n">icontact</span><span class="p">,</span> <span class="n">outcontact</span><span class="p">,</span> <span class="n">ssclash</span><span class="p">)</span> + <span class="k">if</span> <span class="n">ssclash</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"H-2,H"</span><span class="p">,</span> <span class="s2">"H+2,H"</span><span class="p">)</span> \ + <span class="ow">and</span> <span class="nb">abs</span><span class="p">(</span><span class="n">resi</span> <span class="o">-</span> <span class="n">resj</span><span class="p">)</span> <span class="o">==</span> <span class="mi">6</span><span class="p">:</span> + <span class="c1"># Allow contact to the fifth residue in the</span> + <span class="c1"># helix</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Found (H-2, H) for contact </span><span class="si">%s</span><span class="s2"> clash "</span> + <span class="s2">"but contact with fifth residue is "</span> + <span class="s2">"actually allowed"</span><span class="p">,</span> + <span class="n">outcontact</span><span class="p">)</span> + <span class="n">ssclash</span> <span class="o">=</span> <span class="kc">None</span> + <span class="k">elif</span> <span class="n">ssclash</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"H-3,H"</span><span class="p">,</span> <span class="s2">"H+3,H"</span><span class="p">)</span> \ + <span class="ow">and</span> <span class="nb">abs</span><span class="p">(</span><span class="n">resi</span> <span class="o">-</span> <span class="n">resj</span><span class="p">)</span> <span class="o"><</span> <span class="mi">12</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Found (H-3, H) for contact </span><span class="si">%s</span><span class="s2"> clash "</span> + <span class="s2">"but contact between 3rd and 10th "</span> + <span class="s2">"residues are actually allowed"</span><span class="p">,</span> + <span class="n">outcontact</span><span class="p">)</span> + <span class="c1"># Allow contact between 3rd residue and 10th</span> + <span class="n">ssclash</span> <span class="o">=</span> <span class="kc">None</span> + <span class="k">elif</span> <span class="n">ssclash</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"H-4,H"</span><span class="p">,</span> <span class="s2">"H+4,H"</span><span class="p">):</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"H-4,H are actually allowed"</span><span class="p">)</span> + <span class="n">ssclash</span> <span class="o">=</span> <span class="kc">None</span> + <span class="k">elif</span> <span class="n">ssclash</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"H-2,H+2"</span><span class="p">,</span> <span class="s2">"H+2,H-2"</span><span class="p">):</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"H-2,H+2 are actually allowed"</span><span class="p">)</span> + <span class="n">ssclash</span> <span class="o">=</span> <span class="kc">None</span> + <span class="k">elif</span> <span class="n">ssclash</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"H-3,H+3"</span><span class="p">,</span> <span class="s2">"H+3,H-3"</span><span class="p">):</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"H-3,H+3 are actually allowed"</span><span class="p">)</span> + <span class="n">ssclash</span> <span class="o">=</span> <span class="kc">None</span> + <span class="k">elif</span> <span class="n">ssclash</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"H-4,H+4"</span><span class="p">,</span> <span class="s2">"H+4,H-4"</span><span class="p">):</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"H-4,H+4 are actually allowed"</span><span class="p">)</span> + <span class="n">ssclash</span> <span class="o">=</span> <span class="kc">None</span> + <span class="k">elif</span> <span class="n">ssclash</span> <span class="o">==</span> <span class="s2">"E-2,E+2"</span><span class="p">:</span> + <span class="n">strand</span> <span class="o">=</span> <span class="n">ssj</span> <span class="k">if</span> <span class="n">ssj</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"E"</span> <span class="k">else</span> <span class="n">ssi</span> + <span class="n">start</span> <span class="o">=</span> <span class="n">ss_start_end</span><span class="p">[</span><span class="n">strand</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> + <span class="n">end</span> <span class="o">=</span> <span class="n">ss_start_end</span><span class="p">[</span><span class="n">strand</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> + <span class="k">if</span> <span class="nb">abs</span><span class="p">(</span><span class="n">start</span> <span class="o">-</span> <span class="n">end</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o"><=</span> <span class="mi">5</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Found (E-2, E+2) for contact "</span> + <span class="s2">"</span><span class="si">%s</span><span class="s2"> clash but strand "</span> + <span class="s2">"is < 5 residues"</span><span class="p">,</span> <span class="n">outcontact</span><span class="p">)</span> + <span class="c1"># Allow contact if strand < 5 residues (gap <8)</span> + <span class="n">ssclash</span> <span class="o">=</span> <span class="kc">None</span> + <span class="k">elif</span> <span class="n">ssclash</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"E-3,E+3"</span><span class="p">,</span> <span class="s2">"E+3,E-3"</span><span class="p">):</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"E-3,E+3 are actually allowed"</span><span class="p">)</span> + <span class="n">ssclash</span> <span class="o">=</span> <span class="kc">None</span> + <span class="k">elif</span> <span class="n">ssclash</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"E-4,E+4"</span><span class="p">,</span> <span class="s2">"E+4,E-4"</span><span class="p">):</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"E-4,E+4 are actually allowed"</span><span class="p">)</span> + <span class="n">ssclash</span> <span class="o">=</span> <span class="kc">None</span> + <span class="k">elif</span> <span class="n">ssclash</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"E-4,E"</span><span class="p">,</span> <span class="s2">"E+4,E"</span><span class="p">)</span> \ + <span class="ow">and</span> <span class="nb">abs</span><span class="p">(</span><span class="n">resi</span> <span class="o">-</span> <span class="n">resj</span><span class="p">)</span> <span class="o"><</span> <span class="mi">8</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Found (E-4, E) for contact </span><span class="si">%s</span><span class="s2"> clash "</span> + <span class="s2">"but contacts below 4th residue are "</span> + <span class="s2">"actually allowed"</span><span class="p">,</span> <span class="n">outcontact</span><span class="p">)</span> + <span class="n">ssclash</span> <span class="o">=</span> <span class="kc">None</span> + <span class="k">if</span> <span class="n">ssclash</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span> + <span class="s2">"Ss conflict for contact </span><span class="si">%d</span><span class="s2"> </span><span class="si">%s</span><span class="s2"> (</span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> + <span class="n">icontact</span><span class="p">,</span> <span class="n">outcontact</span><span class="p">,</span> <span class="n">ssclash</span><span class="p">)</span> + <span class="n">desc_dict</span><span class="p">[</span><span class="n">contact</span><span class="p">]</span> <span class="o">=</span> <span class="n">ssclash</span> + <span class="n">ssclash_pair</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">contact</span><span class="p">)</span> + <span class="k">break</span> + <span class="k">return</span> <span class="p">{</span><span class="s1">'clash'</span><span class="p">:</span> <span class="n">ssclash_pair</span><span class="p">,</span> <span class="s1">'desc'</span><span class="p">:</span> <span class="n">desc_dict</span><span class="p">}</span></div> + + <span class="k">def</span> <span class="nf">__call__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mapdict</span><span class="p">,</span> <span class="n">mtype</span><span class="p">,</span> <span class="n">contactlist</span><span class="p">,</span> <span class="n">inprot</span><span class="p">,</span> + <span class="n">mapfilters</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">outprefix</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> <span class="n">outdir</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> <span class="n">clashlist</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Filter contact map</span> +<span class="sd"> :param mapdict: dict containing ResMap and ResAtmMap for contacts,</span> +<span class="sd"> distances and scores</span> +<span class="sd"> :return:</span> +<span class="sd"> """</span> + <span class="n">clash_list</span> <span class="o">=</span> <span class="p">[]</span> + <span class="n">desc_dict</span> <span class="o">=</span> <span class="p">{}</span> + <span class="n">clash_dict</span> <span class="o">=</span> <span class="p">{}</span> + <span class="n">mapfilters</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"contactfilter"</span><span class="p">)</span> <span class="k">if</span> <span class="n">mapfilters</span> <span class="ow">is</span> <span class="kc">None</span> \ + <span class="k">else</span> <span class="n">mapfilters</span> + + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="s2">"net_deconv"</span><span class="p">]:</span> + <span class="c1"># TODO: maj scoremap ou maj mapcollection</span> + <span class="n">mapdict</span><span class="p">[</span><span class="s2">"scoremap"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">nd_filter</span><span class="p">(</span><span class="n">mapdict</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">mapfilters</span> <span class="o">==</span> <span class="s2">"all"</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">nofilter</span><span class="p">:</span> + <span class="n">mapfilters</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">filter_types</span> + <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">nofilter</span> <span class="ow">or</span> <span class="n">mapfilters</span> <span class="o">==</span> <span class="s2">"none"</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Filtering steps removed"</span><span class="p">)</span> + <span class="n">mapfilters</span> <span class="o">=</span> <span class="p">[]</span> + <span class="k">elif</span> <span class="ow">not</span> <span class="n">mapfilters</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">nofilter</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"No filtering steps. Will only use default filter (closed "</span> + <span class="s2">"contact filter)"</span><span class="p">)</span> + <span class="n">mapfilters</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"pos"</span><span class="p">]</span> + <span class="k">else</span><span class="p">:</span> + <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">mapfilters</span><span class="p">)</span> <span class="o">==</span> <span class="nb">list</span><span class="p">:</span> + <span class="n">mapfilters</span> <span class="o">=</span> <span class="p">[</span><span class="n">elm</span> <span class="k">for</span> <span class="n">elm</span> <span class="ow">in</span> <span class="n">mapfilters</span> <span class="k">if</span> <span class="n">elm</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">filter_types</span><span class="p">]</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">mapfilters</span> <span class="o">=</span> <span class="p">[</span><span class="n">mapfilters</span><span class="p">]</span> + <span class="k">if</span> <span class="s2">"pos"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">mapfilters</span><span class="p">:</span> + <span class="n">mapfilters</span><span class="o">.</span><span class="n">insert</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="s2">"pos"</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Filtering </span><span class="si">%s</span><span class="s2"> contact map"</span><span class="p">,</span> <span class="n">mtype</span><span class="p">)</span> + <span class="k">for</span> <span class="n">flt</span> <span class="ow">in</span> <span class="n">mapfilters</span><span class="p">:</span> + <span class="c1"># /!\ cys unicity filter must be the last filter !</span> + <span class="c1"># TODO: contacts_flt.out checking if given clash in coupling</span> + <span class="c1"># matrix are the same</span> + <span class="c1"># Filter on maplot for nd or contact_list</span> + <span class="n">kw</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"clash_list"</span><span class="p">:</span> <span class="n">clash_list</span><span class="p">,</span> + <span class="s2">"sec_struct"</span><span class="p">:</span> <span class="n">inprot</span><span class="o">.</span><span class="n">sec_struct</span><span class="p">}</span> + <span class="n">flt_res</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s2">"</span><span class="si">%s</span><span class="s2">_filter"</span> <span class="o">%</span> <span class="n">flt</span><span class="p">)(</span><span class="n">mapdict</span><span class="p">,</span> <span class="o">**</span><span class="n">kw</span><span class="p">)</span> + <span class="k">if</span> <span class="n">flt_res</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"clash"</span><span class="p">):</span> + <span class="n">clash_list</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">flt_res</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"clash"</span><span class="p">))</span> + <span class="n">hum_list</span> <span class="o">=</span> <span class="p">[(</span><span class="n">x</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">y</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span> <span class="ow">in</span> <span class="n">flt_res</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"clash"</span><span class="p">)]</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Removed </span><span class="si">%d</span><span class="s2"> contacts."</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">flt_res</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"clash"</span><span class="p">))</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">":</span><span class="se">\n</span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="s1">'</span><span class="se">\n</span><span class="s1">'</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> + <span class="n">textwrap</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="s1">' '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> + <span class="p">[</span><span class="s2">"(</span><span class="si">%2d</span><span class="s2">, </span><span class="si">%2d</span><span class="s2">)"</span> <span class="o">%</span> <span class="n">pair</span> <span class="k">for</span> <span class="n">pair</span> <span class="ow">in</span> <span class="n">hum_list</span><span class="p">]),</span> + <span class="n">width</span><span class="o">=</span><span class="mi">80</span><span class="p">)))</span> + <span class="n">clash_dict</span><span class="p">[</span><span class="n">flt</span><span class="p">]</span> <span class="o">=</span> <span class="n">flt_res</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"clash"</span><span class="p">)</span> + <span class="k">if</span> <span class="n">flt_res</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"desc"</span><span class="p">):</span> + <span class="n">desc_dict</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">flt_res</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"desc"</span><span class="p">))</span> + + <span class="c1"># write filter.out</span> + <span class="bp">self</span><span class="o">.</span><span class="n">write_filtout</span><span class="p">(</span><span class="n">clash_dict</span><span class="p">,</span> <span class="n">desc_dict</span><span class="p">,</span> <span class="n">contactlist</span><span class="p">,</span> <span class="n">outdir</span><span class="o">=</span><span class="n">outdir</span><span class="p">,</span> + <span class="n">outprefix</span><span class="o">=</span><span class="n">outprefix</span> <span class="o">+</span> <span class="s1">'.'</span> <span class="o">+</span> <span class="n">mtype</span><span class="p">,</span> <span class="n">clashlist</span><span class="o">=</span><span class="n">clashlist</span><span class="p">)</span> + + <span class="c1"># Contactmap always filtered</span> + <span class="c1"># TODO: could set a treshold instead of n_factor</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Setting contact number with treshold </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"n_factor"</span><span class="p">))</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"n_factor"</span><span class="p">)</span> <span class="o">==</span> <span class="s2">"all"</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">"Factor set to all. All the contacts will be used !"</span><span class="p">)</span> + <span class="n">nb_c</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">mapdict</span><span class="p">[</span><span class="s2">"maplot"</span><span class="p">]</span><span class="o">.</span><span class="n">contactset</span><span class="p">())</span> + <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"n_factor"</span><span class="p">),</span> <span class="n">six</span><span class="o">.</span><span class="n">string_types</span><span class="p">)</span> \ + <span class="ow">and</span> <span class="s2">"%"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"n_factor"</span><span class="p">):</span> + <span class="n">reg</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">"([0-9]+\.?[0-9]*)%"</span><span class="p">)</span> + <span class="n">perc</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">reg</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"n_factor"</span><span class="p">))</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">))</span> + + <span class="n">nb_c</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">perc</span><span class="o">/</span><span class="mi">100</span> <span class="o">*</span> <span class="nb">len</span><span class="p">(</span><span class="n">mapdict</span><span class="p">[</span><span class="s2">"maplot"</span><span class="p">]</span><span class="o">.</span><span class="n">contactset</span><span class="p">()))</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">"Factor set as </span><span class="si">%.2f</span><span class="s2"> percentage of all the contacts "</span> + <span class="s2">"(random selection)."</span><span class="p">,</span> <span class="n">perc</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">nb_c</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">mapdict</span><span class="p">[</span><span class="s2">"maplot"</span><span class="p">]</span><span class="o">.</span><span class="n">sequence</span><span class="p">)</span> <span class="o">*</span> <span class="nb">float</span><span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"n_factor"</span><span class="p">)))</span> + <span class="c1"># Number of selected contact</span> + <span class="c1"># If there isn't enough contacts in input contact map after filtering</span> + <span class="c1"># step, change nb_c</span> + <span class="n">nb_c</span> <span class="o">=</span> <span class="n">nb_c</span> <span class="k">if</span> <span class="n">nb_c</span> <span class="o"><</span> <span class="nb">len</span><span class="p">(</span><span class="n">mapdict</span><span class="p">[</span><span class="s2">"maplot"</span><span class="p">]</span><span class="o">.</span><span class="n">contactset</span><span class="p">())</span> <span class="k">else</span> <span class="nb">len</span><span class="p">(</span> + <span class="n">mapdict</span><span class="p">[</span><span class="s2">"maplot"</span><span class="p">]</span><span class="o">.</span><span class="n">contactset</span><span class="p">())</span> + <span class="n">mapdict</span><span class="p">[</span><span class="s2">"nb_c"</span><span class="p">]</span> <span class="o">=</span> <span class="n">nb_c</span> + + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Update </span><span class="si">%s</span><span class="s2"> maplot"</span><span class="p">,</span> <span class="n">mtype</span><span class="p">)</span> + <span class="n">mapdict</span><span class="p">[</span><span class="s2">"maplot"</span><span class="p">]</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">clash_list</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">mapdict</span><span class="p">[</span><span class="s2">"scoremap"</span><span class="p">]</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Update </span><span class="si">%s</span><span class="s2"> scoremap"</span><span class="p">,</span> <span class="n">mtype</span><span class="p">)</span> + <span class="n">mapdict</span><span class="p">[</span><span class="s2">"scoremap"</span><span class="p">]</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">clash_list</span><span class="p">)</span> + <span class="c1"># Get nb_c top maps</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Select top </span><span class="si">%d</span><span class="s2"> contacts according to scoremap"</span><span class="p">,</span> <span class="n">nb_c</span><span class="p">)</span> + <span class="c1"># TODO: deplacer cette partie dans l'appel de maplot une fois</span> + <span class="c1"># la classe mapcollections utilisee</span> + <span class="n">mapdict</span><span class="p">[</span><span class="s2">"maplot"</span><span class="p">]</span> <span class="o">=</span> <span class="n">mapdict</span><span class="p">[</span><span class="s2">"maplot"</span><span class="p">]</span><span class="o">.</span><span class="n">topmap</span><span class="p">(</span> + <span class="n">mapdict</span><span class="p">[</span><span class="s2">"scoremap"</span><span class="p">],</span> <span class="n">nb_c</span><span class="p">)</span> + <span class="k">if</span> <span class="n">mapdict</span><span class="p">[</span><span class="s2">"distmap"</span><span class="p">]</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Update </span><span class="si">%s</span><span class="s2"> distmap"</span><span class="p">,</span> <span class="n">mtype</span><span class="p">)</span> + <span class="n">mapdict</span><span class="p">[</span><span class="s2">"distmap"</span><span class="p">]</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">clash_list</span><span class="p">)</span> + + <span class="k">return</span> <span class="n">mapdict</span> + +<div class="viewcode-block" id="MapFilter.write_filtout"><a class="viewcode-back" href="../../ariaec.html#ariaec.protmap.MapFilter.write_filtout">[docs]</a> <span class="nd">@staticmethod</span> + <span class="k">def</span> <span class="nf">write_filtout</span><span class="p">(</span><span class="n">clash_dict</span><span class="p">,</span> <span class="n">desc_dict</span><span class="p">,</span> <span class="n">contactlist</span><span class="p">,</span> <span class="n">outdir</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> + <span class="n">outprefix</span><span class="o">=</span><span class="s2">"protein"</span><span class="p">,</span> <span class="n">clashlist</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">human_idx</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> clash_dict :</span> +<span class="sd"> </span> +<span class="sd"> desc_dict :</span> +<span class="sd"> </span> +<span class="sd"> contactlist :</span> +<span class="sd"> </span> +<span class="sd"> outdir :</span> +<span class="sd"> (Default value = "")</span> +<span class="sd"> outprefix :</span> +<span class="sd"> (Default value = "protein")</span> +<span class="sd"> clashlist :</span> +<span class="sd"> (Default value = None)</span> +<span class="sd"> human_idx :</span> +<span class="sd"> (Default value = True)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># TODO: utiliser self.clash_dict au lieu de meta_clash</span> + <span class="sd">"""</span> + +<span class="sd"> :param clash_dict:</span> +<span class="sd"> :param desc_dict:</span> +<span class="sd"> :param contactlist:</span> +<span class="sd"> :param outdir:</span> +<span class="sd"> :param outprefix:</span> +<span class="sd"> :param clashlist:</span> +<span class="sd"> :param human_idx:</span> +<span class="sd"> """</span> + <span class="n">meta_clash</span> <span class="o">=</span> <span class="p">{</span> + <span class="s2">"cons"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"flag"</span><span class="p">:</span> <span class="mi">888</span><span class="p">,</span> <span class="s2">"msg"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"warn"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span> + <span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"high conservation"</span><span class="p">},</span> + <span class="s2">"cys"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"flag"</span><span class="p">:</span> <span class="mi">222</span><span class="p">,</span> <span class="s2">"msg"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"warn"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span> + <span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"disulfide bonds unicity"</span><span class="p">},</span> + <span class="s2">"ssclash"</span><span class="p">:</span> <span class="p">{</span><span class="s2">"flag"</span><span class="p">:</span> <span class="mi">999</span><span class="p">,</span> <span class="s2">"msg"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"warn"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span> + <span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"secondary structure prediction conflict"</span><span class="p">},</span> + <span class="s2">"pos"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"flag"</span><span class="p">:</span> <span class="s2">"physical proximity"</span><span class="p">,</span> <span class="s2">"msg"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"warn"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span> + <span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"sequence position"</span><span class="p">},</span> + <span class="s2">"nd"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"flag"</span><span class="p">:</span> <span class="s2">"deconvol"</span><span class="p">,</span> <span class="s2">"msg"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"warn"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span> + <span class="s2">"desc"</span><span class="p">:</span> <span class="s2">"network deconvolution"</span><span class="p">}</span> + <span class="p">}</span> + <span class="n">offset</span> <span class="o">=</span> <span class="mi">1</span> <span class="k">if</span> <span class="n">human_idx</span> <span class="k">else</span> <span class="mi">0</span> + + <span class="k">for</span> <span class="n">icontact</span><span class="p">,</span> <span class="n">contact</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">contactlist</span><span class="p">):</span> + <span class="n">clash</span> <span class="o">=</span> <span class="s2">"0"</span> + <span class="n">clash_t</span> <span class="o">=</span> <span class="s2">""</span> + <span class="n">raw_contact</span> <span class="o">=</span> <span class="p">(</span><span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="n">offset</span><span class="p">,</span> <span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">offset</span><span class="p">)</span> + <span class="k">for</span> <span class="n">clash_t</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">clash_dict</span><span class="o">.</span><span class="n">keys</span><span class="p">()):</span> + <span class="k">if</span> <span class="n">clash_dict</span><span class="p">[</span><span class="n">clash_t</span><span class="p">]</span> <span class="ow">and</span> <span class="n">raw_contact</span> <span class="ow">in</span> <span class="n">clash_dict</span><span class="p">[</span><span class="n">clash_t</span><span class="p">]:</span> + <span class="n">clash</span> <span class="o">=</span> <span class="n">meta_clash</span><span class="p">[</span><span class="n">clash_t</span><span class="p">][</span><span class="s2">"flag"</span><span class="p">]</span> + <span class="n">meta_clash</span><span class="p">[</span><span class="n">clash_t</span><span class="p">][</span><span class="s2">"msg"</span><span class="p">]</span> <span class="o">+=</span> <span class="s2">"""</span> +<span class="si">{clash_type}</span><span class="s2"> flag at pair </span><span class="si">{pair_nb}</span><span class="s2"> : res </span><span class="si">{res1}</span><span class="s2"> and res </span><span class="si">{res2}</span><span class="s2"> </span><span class="si">{clash_desc}</span><span class="se">\</span> +<span class="s2">"""</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">clash_type</span><span class="o">=</span><span class="n">clash</span><span class="p">,</span> <span class="n">pair_nb</span><span class="o">=</span><span class="n">icontact</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> + <span class="n">clash_desc</span><span class="o">=</span><span class="n">desc_dict</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">raw_contact</span><span class="p">,</span> <span class="s1">''</span><span class="p">),</span> + <span class="n">res1</span><span class="o">=</span><span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">res2</span><span class="o">=</span><span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> + <span class="k">break</span> + <span class="k">if</span> <span class="n">clashlist</span> <span class="ow">and</span> <span class="nb">str</span><span class="p">(</span><span class="n">clash</span><span class="p">)</span> <span class="o">!=</span> <span class="nb">str</span><span class="p">(</span><span class="n">clashlist</span><span class="p">[</span><span class="n">icontact</span><span class="p">]):</span> + <span class="k">if</span> <span class="n">clash</span> <span class="o">==</span> <span class="s2">"0"</span><span class="p">:</span> + <span class="n">op</span> <span class="o">=</span> <span class="s2">"removed"</span> + <span class="n">ctype</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">clashlist</span><span class="p">[</span><span class="n">icontact</span><span class="p">])</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">op</span> <span class="o">=</span> <span class="s2">"added"</span> + <span class="n">ctype</span> <span class="o">=</span> <span class="n">clash</span> + <span class="n">meta_clash</span><span class="p">[</span><span class="n">clash_t</span><span class="p">][</span><span class="s2">"warn"</span><span class="p">]</span> <span class="o">+=</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">/!\ Clash: </span><span class="si">{clash_desc}</span><span class="s2"> </span><span class="si">{clash}</span><span class="s2"> flag for contact "</span> \ + <span class="s2">"</span><span class="si">{res_pos}</span><span class="s2"> (</span><span class="si">{res1}</span><span class="s2">, </span><span class="si">{res2}</span><span class="s2">)"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span> + <span class="n">clash_desc</span><span class="o">=</span><span class="n">op</span><span class="p">,</span> <span class="n">clash</span><span class="o">=</span><span class="n">ctype</span><span class="p">,</span> <span class="n">res_pos</span><span class="o">=</span><span class="n">icontact</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> + <span class="n">res1</span><span class="o">=</span><span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">res2</span><span class="o">=</span><span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> + + <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">.filter.out"</span> <span class="o">%</span> <span class="p">(</span><span class="n">outdir</span><span class="p">,</span> <span class="n">outprefix</span><span class="p">),</span> <span class="s1">'w'</span><span class="p">)</span> <span class="k">as</span> <span class="n">out</span><span class="p">:</span> + <span class="n">titleprint</span><span class="p">(</span><span class="n">out</span><span class="p">,</span> <span class="n">progname</span><span class="o">=</span><span class="vm">__doc__</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="s1">'Contacts filter'</span><span class="p">)</span> + <span class="k">for</span> <span class="n">flt</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"nd"</span><span class="p">,</span> <span class="s2">"pos"</span><span class="p">,</span> <span class="s2">"cons"</span><span class="p">,</span> <span class="s2">"ssclash"</span><span class="p">,</span> <span class="s2">"cys"</span><span class="p">):</span> + <span class="n">out</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'''</span> + +<span class="si">{filter_desc}</span><span class="s1"></span> +<span class="si">{hd}</span><span class="s1"></span> +<span class="s1">'''</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">filter_desc</span><span class="o">=</span><span class="n">meta_clash</span><span class="p">[</span><span class="n">flt</span><span class="p">][</span><span class="s2">"desc"</span><span class="p">]</span><span class="o">.</span><span class="n">capitalize</span><span class="p">(),</span> + <span class="n">hd</span><span class="o">=</span><span class="s2">"="</span> <span class="o">*</span> <span class="nb">len</span><span class="p">(</span><span class="n">meta_clash</span><span class="p">[</span><span class="n">flt</span><span class="p">][</span><span class="s2">"desc"</span><span class="p">])))</span> + + <span class="k">if</span> <span class="n">meta_clash</span><span class="p">[</span><span class="n">flt</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"warn"</span><span class="p">):</span> + <span class="n">out</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">meta_clash</span><span class="p">[</span><span class="n">flt</span><span class="p">][</span><span class="s2">"warn"</span><span class="p">])</span> + <span class="n">out</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">meta_clash</span><span class="p">[</span><span class="n">flt</span><span class="p">][</span><span class="s2">"msg"</span><span class="p">])</span></div></div> +</pre></div> + + </div> + <div class="articleComments"> + + </div> + </div> + <footer> + + + <hr/> + + <div role="contentinfo"> + <p> + © Copyright 2017, Fabrice Allain. + + </p> + </div> + Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. + +</footer> + + </div> + </div> + + </section> + + </div> + + + + + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT:'../../', + VERSION:'0.2', + COLLAPSE_INDEX:false, + FILE_SUFFIX:'.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt' + }; + </script> + <script type="text/javascript" src="../../_static/jquery.js"></script> + <script type="text/javascript" src="../../_static/underscore.js"></script> + <script type="text/javascript" src="../../_static/doctools.js"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + + + + <script type="text/javascript" src="../../_static/js/theme.js"></script> + + + + + <script type="text/javascript"> + jQuery(function () { + SphinxRtdTheme.StickyNav.enable(); + }); + </script> + + +</body> +</html> \ No newline at end of file diff --git a/examples-dev/olds/_build/html/_modules/ariaec/reader.html b/examples-dev/olds/_build/html/_modules/ariaec/reader.html new file mode 100644 index 0000000000000000000000000000000000000000..9e4a218501e8778b40f3d6f54a53c87278d8f23b --- /dev/null +++ b/examples-dev/olds/_build/html/_modules/ariaec/reader.html @@ -0,0 +1,1141 @@ + + +<!DOCTYPE html> +<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> +<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> +<head> + <meta charset="utf-8"> + + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <title>ariaec.reader — AriaEc 0.2 documentation</title> + + + + + + + + + + + + + + + + + + <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> + + + + + + <link rel="index" title="Index" + href="../../genindex.html"/> + <link rel="search" title="Search" href="../../search.html"/> + <link rel="top" title="AriaEc 0.2 documentation" href="../../index.html"/> + <link rel="up" title="Module code" href="../index.html"/> + + + <script src="../../_static/js/modernizr.min.js"></script> + +</head> + +<body class="wy-body-for-nav" role="document"> + + + <div class="wy-grid-for-nav"> + + + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search"> + + + + <a href="../../index.html" class="icon icon-home"> AriaEc + + + + </a> + + + + + <div class="version"> + 0.2 + </div> + + + + +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + + + </div> + + <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> + + + + + + + <!-- Local TOC --> + <div class="local-toc"></div> + + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> + + + <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> + + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">AriaEc</a> + + </nav> + + + + <div class="wy-nav-content"> + <div class="rst-content"> + + + + + + + + + + + + + + + + +<div role="navigation" aria-label="breadcrumbs navigation"> + + <ul class="wy-breadcrumbs"> + + <li><a href="../../index.html">Docs</a> »</li> + + <li><a href="../index.html">Module code</a> »</li> + + <li>ariaec.reader</li> + + + <li class="wy-breadcrumbs-aside"> + + + + </li> + + </ul> + + + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <h1>Source code for ariaec.reader</h1><div class="highlight"><pre> +<span></span><span class="c1"># coding=utf-8</span> +<span class="sd">"""</span> +<span class="sd"> Reader objects</span> +<span class="sd">"""</span> +<span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span><span class="p">,</span> <span class="n">division</span><span class="p">,</span> <span class="n">print_function</span> + +<span class="kn">import</span> <span class="nn">os</span> +<span class="kn">import</span> <span class="nn">re</span> +<span class="kn">import</span> <span class="nn">logging</span> +<span class="kn">import</span> <span class="nn">os.path</span> +<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span> +<span class="kn">import</span> <span class="nn">collections</span> +<span class="kn">import</span> <span class="nn">pkg_resources</span> <span class="k">as</span> <span class="nn">pkgr</span> +<span class="kn">import</span> <span class="nn">scipy.spatial.distance</span> <span class="k">as</span> <span class="nn">distance</span> +<span class="kn">from</span> <span class="nn">Bio</span> <span class="k">import</span> <span class="n">pairwise2</span> +<span class="kn">from</span> <span class="nn">.common</span> <span class="k">import</span> <span class="n">sort_2dict</span> +<span class="kn">from</span> <span class="nn">.protmap</span> <span class="k">import</span> <span class="p">(</span><span class="n">ResMap</span><span class="p">,</span> <span class="n">ResAtmMap</span><span class="p">)</span> + +<span class="n">LOG</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span> +<span class="c1"># TODO: check if Atom is still used ...</span> +<span class="c1"># TODO: Should use conkit in the future</span> +<span class="n">Atom</span> <span class="o">=</span> <span class="n">collections</span><span class="o">.</span><span class="n">namedtuple</span><span class="p">(</span><span class="s2">"Atom"</span><span class="p">,</span> <span class="p">[</span><span class="s2">"name"</span><span class="p">,</span> <span class="s2">"coords"</span><span class="p">])</span> + + +<div class="viewcode-block" id="RegexFile"><a class="viewcode-back" href="../../ariaec.html#ariaec.reader.RegexFile">[docs]</a><span class="k">class</span> <span class="nc">RegexFile</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> + <span class="sd">"""File which can be parsed with a regex"""</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filepath</span><span class="p">,</span> <span class="n">filetype</span><span class="o">=</span><span class="s1">''</span><span class="p">,</span> <span class="n">regex</span><span class="o">=</span><span class="s1">''</span><span class="p">,</span> <span class="n">sort</span><span class="o">=</span><span class="s1">''</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s1">''</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">regex</span> <span class="o">=</span> <span class="n">regex</span> + <span class="bp">self</span><span class="o">.</span><span class="n">sort</span> <span class="o">=</span> <span class="n">sort</span> + <span class="bp">self</span><span class="o">.</span><span class="n">lines</span> <span class="o">=</span> <span class="p">{}</span> + <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span> <span class="o">=</span> <span class="n">filetype</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_filename</span> <span class="o">=</span> <span class="kc">None</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_filepath</span> <span class="o">=</span> <span class="n">filepath</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_defaultpath</span> <span class="o">=</span> <span class="n">default</span> <span class="k">if</span> <span class="n">pkgr</span><span class="o">.</span><span class="n">resource_exists</span><span class="p">(</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">default</span><span class="p">)</span> \ + <span class="k">else</span> <span class="kc">None</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_pkgfile</span> <span class="o">=</span> <span class="kc">False</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_checkpath</span><span class="p">()</span> + + <span class="k">def</span> <span class="nf">_checkpath</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""Check if filepath exists or is in package ressources"""</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Checking if </span><span class="si">%s</span><span class="s2"> file exists"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span><span class="p">)</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_filepath</span> <span class="ow">and</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_filepath</span><span class="p">):</span> + <span class="c1"># File actually exists outside of the package</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"File exists."</span><span class="p">)</span> + <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_filepath</span> <span class="ow">and</span> <span class="n">pkgr</span><span class="o">.</span><span class="n">resource_exists</span><span class="p">(</span><span class="vm">__name__</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_filepath</span><span class="p">):</span> + <span class="c1"># File is in pkgr</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Use </span><span class="si">%s</span><span class="s2"> file from package ressources"</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_pkgfile</span> <span class="o">=</span> <span class="kc">True</span> + <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_defaultpath</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Use default </span><span class="si">%s</span><span class="s2"> file"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_filepath</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_defaultpath</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_pkgfile</span> <span class="o">=</span> <span class="kc">True</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">"File </span><span class="si">%s</span><span class="s2"> does not exists"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span><span class="p">)</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">filename</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""Get basename of filepath"""</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_filepath</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_filename</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_filename</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">basename</span><span class="p">(</span> + <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_filepath</span><span class="p">)[</span><span class="mi">0</span><span class="p">])</span> + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_filename</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">filepath</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""File path"""</span> + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_filepath</span> + +<div class="viewcode-block" id="RegexFile.load"><a class="viewcode-back" href="../../ariaec.html#ariaec.reader.RegexFile.load">[docs]</a> <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Fill lines with dictionary. Each key is a line number in the given file</span> +<span class="sd"> :return: None</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">lines_dict</span> <span class="o">=</span> <span class="p">{}</span> + + <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">regex</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"Can't parse file </span><span class="si">%s</span><span class="s2"> without defined regex"</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">filepath</span><span class="p">)</span> + <span class="k">return</span> <span class="kc">None</span> + + <span class="k">with</span> <span class="n">pkgr</span><span class="o">.</span><span class="n">resource_stream</span><span class="p">(</span><span class="vm">__name__</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">filepath</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_pkgfile</span> \ + <span class="k">else</span> <span class="nb">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">filepath</span><span class="p">)</span> <span class="k">as</span> <span class="n">infile</span><span class="p">:</span> + + <span class="k">for</span> <span class="n">index</span><span class="p">,</span> <span class="n">line</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">infile</span><span class="p">):</span> + <span class="n">match</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">regex</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">line</span><span class="p">)</span> + <span class="k">if</span> <span class="n">match</span><span class="p">:</span> + <span class="n">lines_dict</span><span class="p">[</span><span class="n">index</span><span class="p">]</span> <span class="o">=</span> <span class="n">match</span><span class="o">.</span><span class="n">groupdict</span><span class="p">()</span> + + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">sort</span><span class="p">:</span> + <span class="n">lines_dict</span> <span class="o">=</span> <span class="n">sort_2dict</span><span class="p">(</span><span class="n">lines_dict</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">sort</span><span class="p">)</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">lines</span> <span class="o">=</span> <span class="n">lines_dict</span></div></div> + + +<div class="viewcode-block" id="CulledPdbFile"><a class="viewcode-back" href="../../ariaec.html#ariaec.reader.CulledPdbFile">[docs]</a><span class="k">class</span> <span class="nc">CulledPdbFile</span><span class="p">(</span><span class="n">RegexFile</span><span class="p">):</span> + <span class="sd">"""Reader class for culled pdb list"""</span> + <span class="n">regex</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span> + <span class="sa">r</span><span class="s2">"^(?P<pdb_id>\w</span><span class="si">{4}</span><span class="s2">)"</span> + <span class="sa">r</span><span class="s2">"(?P<chain_id>\w)\s+"</span> + <span class="sa">r</span><span class="s2">"(?P<length>\d+)\s+"</span> + <span class="sa">r</span><span class="s2">"(?P<exp>\w+)\s+"</span> + <span class="sa">r</span><span class="s2">"(?P<resolution>-?\d+\.\d+)\s+"</span> + <span class="sa">r</span><span class="s2">"(?P<r_factor>-?\d+\.\d+)\s+"</span> + <span class="sa">r</span><span class="s2">"(?P<free_rvalue>-?\d+\.\d+)\s*$"</span><span class="p">)</span> + <span class="n">filetype</span> <span class="o">=</span> <span class="s1">'cullpdb'</span> + <span class="n">default</span> <span class="o">=</span> <span class="s1">'data/cullpdb/160427/cullpdb_pc25_res1.6_R0.25_d160427_chains3743'</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="n">kwargs</span><span class="p">[</span><span class="s1">'regex'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">regex</span> + <span class="n">kwargs</span><span class="p">[</span><span class="s1">'filetype'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span> + <span class="n">kwargs</span><span class="p">[</span><span class="s1">'default'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">default</span> + <span class="nb">super</span><span class="p">(</span><span class="n">CulledPdbFile</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></div> + + +<div class="viewcode-block" id="TblDistFile"><a class="viewcode-back" href="../../ariaec.html#ariaec.reader.TblDistFile">[docs]</a><span class="k">class</span> <span class="nc">TblDistFile</span><span class="p">(</span><span class="n">RegexFile</span><span class="p">):</span> + <span class="sd">"""Reader class for TBL Distance restraint file"""</span> + <span class="n">regex</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span> + <span class="sa">r</span><span class="s2">"^\s*(?P<restflag>or|assign)\s+\(segid\s+</span><span class="se">\"</span><span class="s2">(?P<segid1>[\s\w]+)"</span> + <span class="sa">r</span><span class="s2">"</span><span class="se">\"</span><span class="s2">\s+and\s+resid\s+(?P<resid1>\d+)\s+and\s+name\s+(?P<atm1>\w+)"</span> + <span class="sa">r</span><span class="s2">"\)\s+\(segid\s+</span><span class="se">\"</span><span class="s2">(?P<segid2>[\s\w]+)</span><span class="se">\"</span><span class="s2">\s+and\s+resid\s+"</span> + <span class="sa">r</span><span class="s2">"(?P<resid2>\d+)\s+and\s+name\s+(?P<atm2>\w+)\)\s*"</span> + <span class="sa">r</span><span class="s2">"(?P<dtarget>\d+\.\d+)?\s*(?P<dminus>\d+\.\d+)?\s*(?P<dplus>\d+\.\d+)"</span> + <span class="sa">r</span><span class="s2">"?\s*(weight)?\s*(?P<weight>\d+\.\d+)?\s*!?\s*(spec=)?"</span> + <span class="sa">r</span><span class="s2">"(?P<listname>\w+)?(,\s*no=)?(?P<restno>\d+)?(,\s*id=)?"</span> + <span class="sa">r</span><span class="s2">"(?P<restid>\d+)?(,\s*vol=)?(?P<vol>[\w.\-+]+)?$"</span><span class="p">)</span> + <span class="n">filetype</span> <span class="o">=</span> <span class="s1">'tbldist'</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="n">kwargs</span><span class="p">[</span><span class="s1">'regex'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">regex</span> + <span class="n">kwargs</span><span class="p">[</span><span class="s1">'filetype'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span> + <span class="nb">super</span><span class="p">(</span><span class="n">TblDistFile</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></div> + + +<div class="viewcode-block" id="MapFile"><a class="viewcode-back" href="../../ariaec.html#ariaec.reader.MapFile">[docs]</a><span class="k">class</span> <span class="nc">MapFile</span><span class="p">(</span><span class="n">RegexFile</span><span class="p">):</span> + <span class="sd">"""Abstract class related to all kind of protein maps"""</span> + <span class="c1"># List of 3tuples ("regex_file", "filetype", "sort_field")</span> + <span class="c1"># sort_field allow sorting lines with values into this field</span> + <span class="c1"># TODO: wrong regex for native_full ?</span> + <span class="c1"># TODO: smarter dict ...</span> + <span class="n">types</span> <span class="o">=</span> <span class="p">{</span> + <span class="s2">"plmdca"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"regex"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">"^(?P<res1_nb>\d+)\s+(?P<res1_name>\w)\s+"</span> + <span class="sa">r</span><span class="s2">"(?P<res2_nb>\d+)\s+(?P<res2_name>\w)\s+"</span> + <span class="sa">r</span><span class="s2">"(?P<mi_score>\d)\s+"</span> + <span class="sa">r</span><span class="s2">"(?P<plm_score>-?\d+\.\d+)\s*$"</span><span class="p">),</span> + <span class="s2">"score_field"</span><span class="p">:</span> <span class="s2">"plm_score"</span> + <span class="p">},</span> + <span class="s2">"plm"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"regex"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">"^(?P<res1_nb>\d+)\s+(?P<res1_name>\w)\s+"</span> + <span class="sa">r</span><span class="s2">"(?P<res2_nb>\d+)\s+(?P<res2_name>\w)\s+"</span> + <span class="sa">r</span><span class="s2">"(?P<mi_score>\d)\s+"</span> + <span class="sa">r</span><span class="s2">"(?P<plm_score>-?\d+\.\d+)\s*$"</span><span class="p">),</span> + <span class="s2">"score_field"</span><span class="p">:</span> <span class="s2">"plm_score"</span> + <span class="p">},</span> + <span class="s2">"plmev"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"regex"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">"^(?P<res1_nb>\d+)\s+(?P<res1_name>\w)\s+"</span> + <span class="sa">r</span><span class="s2">"(?P<res2_nb>\d+)\s+(?P<res2_name>\w)\s+"</span> + <span class="sa">r</span><span class="s2">"(?P<mi_score>\d)\s+"</span> + <span class="sa">r</span><span class="s2">"(?P<plm_score>-?\d+\.\d+)\s*$"</span><span class="p">),</span> + <span class="s2">"score_field"</span><span class="p">:</span> <span class="s2">"plm_score"</span> + <span class="p">},</span> + <span class="s2">"plmc"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"regex"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">"^(?P<res1_nb>\d+)\s+(?P<res1_name>\w)\s+"</span> + <span class="sa">r</span><span class="s2">"(?P<res2_nb>\d+)\s+(?P<res2_name>\w)\s+"</span> + <span class="sa">r</span><span class="s2">"(?P<mi_score>\d)\s+"</span> + <span class="sa">r</span><span class="s2">"(?P<plm_score>-?\d+\.\d+)\s*$"</span><span class="p">),</span> + <span class="s2">"score_field"</span><span class="p">:</span> <span class="s2">"plm_score"</span> + <span class="p">},</span> + <span class="s2">"evfold"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"regex"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span> + <span class="sa">r</span><span class="s1">'^(?P<res1_nb>\d+),(?P<res2_nb>\d+),'</span> + <span class="sa">r</span><span class="s1">'(?P<ec_score>-?\d+\.\d+e?-?\d*),'</span> + <span class="sa">r</span><span class="s1">'(?P<placeholder>\d),(?P<res1_cons>\d+),'</span> + <span class="sa">r</span><span class="s1">'(?P<res2_cons>\d+),(?P<ss_filter>\d|\d</span><span class="si">{3}</span><span class="s1">),'</span> + <span class="sa">r</span><span class="s1">'(?P<high_cons_filter>\d|\d</span><span class="si">{3}</span><span class="s1">),'</span> + <span class="sa">r</span><span class="s1">'(?P<cc_filter>\d|\d</span><span class="si">{3}</span><span class="s1">),(?P<res1_name>\w),'</span> + <span class="sa">r</span><span class="s1">'(?P<res2_name>\w)$'</span><span class="p">),</span> + <span class="s2">"score_field"</span><span class="p">:</span> <span class="s2">"ec_score"</span> + <span class="p">},</span> + <span class="s2">"pconsc"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"regex"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span> + <span class="sa">r</span><span class="s1">'^(?P<res1_nb>\d+) (?P<res2_nb>\d+) '</span> + <span class="sa">r</span><span class="s1">'(?P<ec_score>-?\d+\.\d+e?-?\d*)$'</span><span class="p">),</span> + <span class="s2">"score_field"</span><span class="p">:</span> <span class="s2">"ec_score"</span> + <span class="p">},</span> + <span class="s2">"pconsc1"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"regex"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span> + <span class="sa">r</span><span class="s1">'^(?P<res1_nb>\d+) (?P<res2_nb>\d+) '</span> + <span class="sa">r</span><span class="s1">'(?P<ec_score>-?\d+\.\d+e?-?\d*)$'</span><span class="p">),</span> + <span class="s2">"score_field"</span><span class="p">:</span> <span class="s2">"ec_score"</span> + <span class="p">},</span> + <span class="s2">"pconsc2"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"regex"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span> + <span class="sa">r</span><span class="s1">'^(?P<res1_nb>\d+) (?P<res2_nb>\d+) '</span> + <span class="sa">r</span><span class="s1">'(?P<ec_score>-?\d+\.\d+e?-?\d*)$'</span><span class="p">),</span> + <span class="s2">"score_field"</span><span class="p">:</span> <span class="s2">"ec_score"</span> + <span class="p">},</span> + <span class="s2">"metapsicov_stg1"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"regex"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span> + <span class="sa">r</span><span class="s1">'^(?P<res1_nb>\d+) (?P<res2_nb>\d+) \d (?P<res_dist>-?\d+.?\d*) '</span> + <span class="sa">r</span><span class="s1">'(?P<ec_score>-?\d+.\d+e?-?\d*)$'</span><span class="p">),</span> + <span class="s2">"score_field"</span><span class="p">:</span> <span class="s2">"ec_score"</span> + <span class="p">},</span> + <span class="s2">"metapsicov_stg2"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"regex"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span> + <span class="sa">r</span><span class="s1">'^(?P<res1_nb>\d+) (?P<res2_nb>\d+) \d (?P<res_dist>-?\d+.?\d*) '</span> + <span class="sa">r</span><span class="s1">'(?P<ec_score>-?\d+.\d+e?-?\d*)$'</span><span class="p">),</span> + <span class="s2">"score_field"</span><span class="p">:</span> <span class="s2">"ec_score"</span> + <span class="p">},</span> + <span class="s2">"psicov"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"regex"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span> + <span class="sa">r</span><span class="s1">'^(?P<res1_nb>\d+) (?P<res2_nb>\d+) \d (?P<res_dist>-?\d+.?\d*) '</span> + <span class="sa">r</span><span class="s1">'(?P<ec_score>-?\d+.\d+e?-?\d*)$'</span><span class="p">),</span> + <span class="s2">"score_field"</span><span class="p">:</span> <span class="s2">"ec_score"</span> + <span class="p">},</span> + <span class="s2">"gremlin"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"regex"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span> + <span class="sa">r</span><span class="s1">'^(?P<res1_nb>\d+)\t(?P<res2_nb>\d+)\t'</span> + <span class="sa">r</span><span class="s1">'(?P<res1_id>\d+_[AC-IK-NP-TVWYZ])\t'</span> + <span class="sa">r</span><span class="s1">'(?P<res2_id>\d+_[AC-IK-NP-TVWYZ])\t'</span> + <span class="sa">r</span><span class="s1">'(?P<raw_score>-?\d+\.\d+e?-?\d*)\t'</span> + <span class="sa">r</span><span class="s1">'(?P<scale_score>-?\d+\.\d+e?-?\d*)\t'</span> + <span class="sa">r</span><span class="s1">'(?P<prob>-?\d+\.\d+e?-?\d*)'</span><span class="p">),</span> + <span class="s2">"score_field"</span><span class="p">:</span> <span class="s2">"scale_score"</span> + <span class="p">},</span> + <span class="s2">"native"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"regex"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span> + <span class="sa">r</span><span class="s1">'^\s*(?P<res1_nb>\d+)\s+(?P<res2_nb>\d+)\s+('</span> + <span class="sa">r</span><span class="s1">'?P<ca_ca>\d+\.\d+)\s+(?P<cb_cb>\d+\.\d+)\s+'</span> + <span class="sa">r</span><span class="s1">'(?P<sc_sc>\d+\.\d+)\s+(?P<valid>\w+)'</span><span class="p">),</span> + <span class="s2">"score_field"</span><span class="p">:</span> <span class="kc">None</span> + <span class="p">},</span> + <span class="s2">"native_full"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"regex"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span> + <span class="sa">r</span><span class="s1">'^\s*(?P<res1_nb>\d+)\s+(?P<res2_nb>\d+)\s+('</span> + <span class="sa">r</span><span class="s1">'?P<ca_ca>\d+\.\d+)\s+(?P<cb_cb>\d+\.\d+)\s+'</span> + <span class="sa">r</span><span class="s1">'(?P<sc_sc>\d+\.\d+)\s+(?P<valid>\w+)'</span><span class="p">),</span> + <span class="s2">"score_field"</span><span class="p">:</span> <span class="kc">None</span> + <span class="p">},</span> + <span class="s2">"bbcontacts"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"regex"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span> + <span class="sa">r</span><span class="s1">'\s*(?P<identifier>\w+)\s+(?P<diversity>-?\d+\.?\d*)'</span> + <span class="sa">r</span><span class="s1">'\s+(?P<direction>Parallel|Antiparallel)'</span> + <span class="sa">r</span><span class="s1">'\s+(?P<viterbiscore>-?\d+\.?\d*)'</span> + <span class="sa">r</span><span class="s1">'\s+(?P<indexpred>\d+)'</span> + <span class="sa">r</span><span class="s1">'\s+(?P<state>first|internal|last)'</span> + <span class="sa">r</span><span class="s1">'\s+(?P<res1_nb>\d+)\s+(?P<res2_nb>\d+)'</span><span class="p">),</span> + <span class="s2">"score_field"</span><span class="p">:</span> <span class="kc">None</span> + <span class="p">},</span> + <span class="s2">"contactlist"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"regex"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span> + <span class="sa">r</span><span class="s1">'^\s*(?P<res1_nb>\d+)[\s,;]+(?P<res2_nb>\d+)[\s,'</span> + <span class="sa">r</span><span class="s1">';]*(?P<con_flag>\w*)'</span><span class="p">),</span> + <span class="s2">"score_field"</span><span class="p">:</span> <span class="kc">None</span> + <span class="p">},</span> + <span class="s2">"metapsicovhb"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"regex"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span> + <span class="sa">r</span><span class="s1">'^\s*(?P<res_donor>\d+)[\s,;]+'</span> + <span class="sa">r</span><span class="s1">'(?P<res_acceptor>\d+)[\s,;]+\d[\s,;]+'</span> + <span class="sa">r</span><span class="s1">'(?P<res_dist>-?\d+.?\d*)[\s,;]+'</span> + <span class="sa">r</span><span class="s1">'(?P<hbscore>-?\d+\.?\d*)'</span><span class="p">),</span> + <span class="s2">"score_field"</span><span class="p">:</span> <span class="s2">"hbscore"</span> + <span class="p">},</span> + <span class="s2">"default_1"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"regex"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span> + <span class="sa">r</span><span class="s1">'^\s*(?P<res1_nb>\d+)\s+(?P<res2_nb>\d+)\s+'</span> + <span class="sa">r</span><span class="s1">'(?P<resn1>\w+)\s+'</span> + <span class="sa">r</span><span class="s1">'(?P<resn2>\w+)\s+'</span> + <span class="sa">r</span><span class="s1">'(?P<score>[\w\d.+\-]+)'</span><span class="p">),</span> + <span class="s2">"score_field"</span><span class="p">:</span> <span class="s2">"score"</span> + <span class="p">},</span> + <span class="s2">"default_2"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"regex"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span> + <span class="sa">r</span><span class="s1">'^\s*(?P<res1_nb>\d+)\s+(?P<res2_nb>\d+)\s+'</span> + <span class="sa">r</span><span class="s1">'(?P<score>[\w\d.+\-]+)'</span><span class="p">),</span> + <span class="s2">"score_field"</span><span class="p">:</span> <span class="s2">"score"</span> + <span class="p">},</span> + <span class="s2">"default_3"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"regex"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span> + <span class="sa">r</span><span class="s1">'^\s*(?P<res1_nb>\d+)\s+(?P<res2_nb>\d+)\s+'</span> + <span class="sa">r</span><span class="s1">'(?P<resn1>\w+)\s+'</span> + <span class="sa">r</span><span class="s1">'(?P<resn2>\w+)\s+'</span><span class="p">),</span> + <span class="s2">"score_field"</span><span class="p">:</span> <span class="kc">None</span> + <span class="p">},</span> + <span class="s2">"default_4"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"regex"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span> + <span class="sa">r</span><span class="s1">'^\s*(?P<res1_nb>\d+)\s+(?P<res2_nb>\d+)\s+'</span><span class="p">),</span> + <span class="s2">"score_field"</span><span class="p">:</span> <span class="kc">None</span> + <span class="p">},</span> + <span class="s2">"empty"</span><span class="p">:</span> <span class="p">{</span> + <span class="s2">"regex"</span><span class="p">:</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s1">'^\s*$'</span><span class="p">),</span> + <span class="s2">"score_field"</span><span class="p">:</span> <span class="kc">None</span> + <span class="p">}</span> + <span class="p">}</span> + <span class="n">check_type</span> <span class="o">=</span> <span class="kc">True</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> + +<span class="sd"> :param args:</span> +<span class="sd"> :param kwargs:</span> +<span class="sd"> :return:</span> +<span class="sd"> """</span> + <span class="nb">super</span><span class="p">(</span><span class="n">MapFile</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">check_type</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">regex</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">sort</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">check_maptype</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mapdict</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"alldistmap"</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> + <span class="s2">"allcontactmap"</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> + <span class="s2">"distmap"</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> + <span class="s2">"maplot"</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> + <span class="s2">"scoremap"</span><span class="p">:</span> <span class="kc">None</span><span class="p">}</span> + <span class="bp">self</span><span class="o">.</span><span class="n">clashlist</span> <span class="o">=</span> <span class="p">[]</span> + <span class="bp">self</span><span class="o">.</span><span class="n">distlist</span> <span class="o">=</span> <span class="p">[]</span> + <span class="bp">self</span><span class="o">.</span><span class="n">contactlist</span> <span class="o">=</span> <span class="p">[]</span> + <span class="bp">self</span><span class="o">.</span><span class="n">flaglist</span> <span class="o">=</span> <span class="p">{}</span> + <span class="bp">self</span><span class="o">.</span><span class="n">scorelist</span> <span class="o">=</span> <span class="p">[]</span> + <span class="c1"># self.maplot = None</span> + <span class="c1"># self.distmap = None</span> + +<div class="viewcode-block" id="MapFile.create_map"><a class="viewcode-back" href="../../ariaec.html#ariaec.reader.MapFile.create_map">[docs]</a> <span class="k">def</span> <span class="nf">create_map</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">protein</span><span class="p">,</span> <span class="n">contactdef</span><span class="p">,</span> <span class="n">flaglist</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">offset</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">sym</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> + <span class="n">path</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> path :</span> +<span class="sd"> param protein: (Default value = "")</span> +<span class="sd"> contactdef :</span> +<span class="sd"> param flaglist:</span> +<span class="sd"> offset :</span> +<span class="sd"> param sym: (Default value = 0)</span> +<span class="sd"> kwargs :</span> +<span class="sd"> return:</span> +<span class="sd"> protein :</span> +<span class="sd"> </span> +<span class="sd"> flaglist :</span> +<span class="sd"> (Default value = None)</span> +<span class="sd"> sym :</span> +<span class="sd"> (Default value = True)</span> +<span class="sd"> **kwargs :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">"Class </span><span class="si">%s</span><span class="s2"> doesn't implement create_map"</span> <span class="o">%</span> + <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">)</span></div> + +<div class="viewcode-block" id="MapFile.update_map"><a class="viewcode-back" href="../../ariaec.html#ariaec.reader.MapFile.update_map">[docs]</a> <span class="k">def</span> <span class="nf">update_map</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">resmap</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> resmap :</span> +<span class="sd"> return:</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">"Class </span><span class="si">%s</span><span class="s2"> doesn't implement update_map"</span> <span class="o">%</span> + <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">)</span></div> + +<div class="viewcode-block" id="MapFile.check_maptype"><a class="viewcode-back" href="../../ariaec.html#ariaec.reader.MapFile.check_maptype">[docs]</a> <span class="k">def</span> <span class="nf">check_maptype</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">""":return:"""</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Checking if file </span><span class="si">%s</span><span class="s2"> correspond to </span><span class="si">%s</span><span class="s2"> format"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">filepath</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span><span class="p">)</span> + <span class="c1"># Check if given type is supported</span> + <span class="c1"># TODO: report this check into commands section</span> + <span class="n">defaults</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"default_1"</span><span class="p">,</span> <span class="s2">"default_2"</span><span class="p">,</span> <span class="s2">"default_3"</span><span class="p">,</span> <span class="s2">"default_4"</span><span class="p">,</span> <span class="s2">"empty"</span><span class="p">)</span> + <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">stat</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">filepath</span><span class="p">)</span><span class="o">.</span><span class="n">st_size</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">"File </span><span class="si">%s</span><span class="s2"> is empty !"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">filepath</span><span class="p">)</span> + <span class="k">return</span> <span class="p">[</span> + <span class="bp">self</span><span class="o">.</span><span class="n">types</span><span class="p">[</span><span class="s2">"empty"</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"regex"</span><span class="p">),</span> + <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">types</span><span class="p">[</span><span class="s2">"empty"</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"score_field"</span><span class="p">)</span> + <span class="p">]</span> + <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">filepath</span><span class="p">)</span> <span class="k">as</span> <span class="n">infile</span><span class="p">:</span> + <span class="c1"># Check first and second line of file</span> + <span class="k">for</span> <span class="n">index</span><span class="p">,</span> <span class="n">line</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">infile</span><span class="p">):</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">types</span><span class="p">:</span> + <span class="n">match</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">types</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">filetype</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"regex"</span><span class="p">)</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">line</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"Format </span><span class="si">%s</span><span class="s2"> not supported !"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span><span class="p">)</span> + <span class="n">match</span> <span class="o">=</span> <span class="kc">None</span> + <span class="k">if</span> <span class="n">match</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Format type correct"</span><span class="p">)</span> + <span class="k">return</span> <span class="p">[</span> + <span class="bp">self</span><span class="o">.</span><span class="n">types</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">filetype</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"regex"</span><span class="p">),</span> + <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">types</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">filetype</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"score_field"</span><span class="p">)</span> + <span class="p">]</span> + <span class="k">if</span> <span class="n">index</span> <span class="o">></span> <span class="mi">2</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">"Given type do not correspond, checking default"</span> + <span class="s2">" format for contactlist or empty file..."</span><span class="p">)</span> + <span class="k">for</span> <span class="n">subformat</span> <span class="ow">in</span> <span class="n">defaults</span><span class="p">:</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">types</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">subformat</span><span class="p">)[</span><span class="s2">"regex"</span><span class="p">]</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">line</span><span class="p">):</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Format type correct </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">subformat</span><span class="p">)</span> + <span class="k">return</span> <span class="p">[</span> + <span class="bp">self</span><span class="o">.</span><span class="n">types</span><span class="p">[</span><span class="n">subformat</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"regex"</span><span class="p">),</span> + <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">types</span><span class="p">[</span><span class="n">subformat</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"score_field"</span><span class="p">)</span> + <span class="p">]</span> + <span class="c1"># Stop checking after second line</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"Can't read </span><span class="si">%s</span><span class="s2"> file."</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span><span class="p">)</span> + <span class="k">break</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"Wrong format type given ..."</span><span class="p">)</span> + <span class="k">return</span> <span class="p">[</span><span class="kc">None</span><span class="p">]</span> <span class="o">*</span> <span class="mi">3</span></div> + +<div class="viewcode-block" id="MapFile.read"><a class="viewcode-back" href="../../ariaec.html#ariaec.reader.MapFile.read">[docs]</a> <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">protein</span><span class="p">,</span> <span class="n">contactdef</span><span class="o">=</span><span class="mf">5.0</span><span class="p">,</span> <span class="n">groupby_method</span><span class="o">=</span><span class="s2">"min"</span><span class="p">,</span> + <span class="n">scsc</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> protein :</span> +<span class="sd"> param contactdef: (Default value = None)</span> +<span class="sd"> groupby_method :</span> +<span class="sd"> param scsc: (Default value = "min")</span> +<span class="sd"> contactdef :</span> +<span class="sd"> (Default value = 5.0)</span> +<span class="sd"> scsc :</span> +<span class="sd"> (Default value = None)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># res1_1l_code</span> + <span class="n">aaseq</span> <span class="o">=</span> <span class="p">{}</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Reading </span><span class="si">%s</span><span class="s2"> file"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">filepath</span><span class="p">)</span> + <span class="c1"># Read file with regex related to filetype</span> + <span class="bp">self</span><span class="o">.</span><span class="n">load</span><span class="p">()</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"Unrecognized file type"</span><span class="p">)</span> + <span class="k">return</span> <span class="kc">None</span> + + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Loading contact file"</span><span class="p">)</span> + <span class="n">sym</span> <span class="o">=</span> <span class="kc">False</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span> <span class="o">==</span> <span class="s2">"metapsicovhb"</span> <span class="k">else</span> <span class="kc">True</span> + <span class="n">confields</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"res_donor"</span><span class="p">,</span> <span class="s2">"res_acceptor"</span><span class="p">)</span> <span class="k">if</span> \ + <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span> <span class="o">==</span> <span class="s2">"metapsicovhb"</span> <span class="k">else</span> <span class="p">(</span><span class="s1">'res1_nb'</span><span class="p">,</span> <span class="s1">'res2_nb'</span><span class="p">)</span> + <span class="k">for</span> <span class="n">contact</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">:</span> + + <span class="c1"># If contact defined</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">contact</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">confields</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="ow">and</span> \ + <span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">contact</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">confields</span><span class="p">[</span><span class="mi">1</span><span class="p">]):</span> + <span class="n">conkeys</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span><span class="nb">sorted</span><span class="p">([</span> + <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">contact</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">confields</span><span class="p">[</span><span class="mi">0</span><span class="p">])),</span> + <span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">contact</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">confields</span><span class="p">[</span><span class="mi">1</span><span class="p">]))]))</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">contactlist</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">conkeys</span><span class="p">)</span> + + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">sort</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">scorelist</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">contact</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sort</span><span class="p">)))</span> + + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span> <span class="o">==</span> <span class="s2">"contactlist"</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">flaglist</span><span class="p">[</span><span class="n">conkeys</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">contact</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"con_flag"</span><span class="p">)</span> + + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span> <span class="o">==</span> <span class="s2">"metapsicovhb"</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">distlist</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">contact</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"res_dist"</span><span class="p">))</span> + + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"evfold"</span><span class="p">,</span> <span class="s2">"plmdca"</span><span class="p">,</span> <span class="s2">"plm"</span><span class="p">,</span> <span class="s2">"plmev"</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">clashlist</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="nb">next</span><span class="p">(</span> + <span class="p">(</span><span class="n">el</span> <span class="k">for</span> <span class="n">el</span> <span class="ow">in</span> <span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">contact</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"ss_filter"</span><span class="p">),</span> + <span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">contact</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"high_cons_filter"</span><span class="p">),</span> + <span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">contact</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"cc_filter"</span><span class="p">))</span> <span class="k">if</span> <span class="n">el</span> <span class="o">!=</span> <span class="s2">"0"</span><span class="p">),</span> + <span class="s2">"0"</span><span class="p">))</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">contact</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"res1_name"</span><span class="p">)</span> <span class="ow">and</span> \ + <span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">contact</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"res2_name"</span><span class="p">):</span> + <span class="n">aaseq</span><span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">contact</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"res1_nb"</span><span class="p">))]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span> + <span class="n">contact</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"res1_name"</span><span class="p">)</span> + <span class="n">aaseq</span><span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">contact</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"res2_nb"</span><span class="p">))]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span> + <span class="n">contact</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"res2_name"</span><span class="p">)</span> + + <span class="k">if</span> <span class="n">aaseq</span><span class="p">:</span> + <span class="c1"># Align evfold amino acid sequence with sequence obtained from seq</span> + <span class="c1"># file</span> + <span class="nb">print</span><span class="p">(</span><span class="n">aaseq</span><span class="p">)</span> + <span class="n">seq</span> <span class="o">=</span> <span class="s1">''</span><span class="o">.</span><span class="n">join</span><span class="p">([</span> + <span class="n">aaseq</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="k">if</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">aaseq</span> <span class="k">else</span> <span class="s1">'*'</span> + <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="nb">max</span><span class="p">(</span><span class="n">aaseq</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)])</span> + <span class="c1"># With gap penalty set to -1, we should only have an alignment without</span> + <span class="c1"># gap since mismatch is the preferred way (with score set to 0)</span> + <span class="n">alignment</span> <span class="o">=</span> <span class="n">pairwise2</span><span class="o">.</span><span class="n">align</span><span class="o">.</span><span class="n">localxs</span><span class="p">(</span> + <span class="n">seq</span><span class="p">,</span> <span class="n">protein</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">sequence</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> + <span class="n">one_alignment_only</span><span class="o">=</span><span class="kc">True</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">'Alignment of amino acid sequence with contact file</span><span class="se">\n</span><span class="s1">'</span> + <span class="s1">'</span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="n">pairwise2</span><span class="o">.</span><span class="n">format_alignment</span><span class="p">(</span><span class="o">*</span><span class="n">alignment</span><span class="p">))</span> + <span class="n">shift</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="sa">r</span><span class="s1">'^-*'</span><span class="p">,</span> <span class="n">alignment</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> + <span class="n">shift</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">shift</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">0</span><span class="p">))</span> <span class="k">if</span> <span class="n">shift</span> <span class="k">else</span> <span class="mi">0</span> + <span class="k">if</span> <span class="n">shift</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">"Found a shift of </span><span class="si">%d</span><span class="s2"> residues in positions given"</span> + <span class="s2">" within contact list"</span><span class="p">,</span> <span class="n">shift</span><span class="p">)</span> + + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Update index in contact list and remove unassigned "</span> + <span class="s2">"contacts"</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Old contact list</span><span class="se">\n</span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">contactlist</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">contactlist</span> <span class="o">=</span> <span class="p">[</span> + <span class="p">(</span><span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="n">shift</span><span class="p">,</span> <span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">shift</span><span class="p">)</span> + <span class="k">for</span> <span class="n">contact</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">contactlist</span> + <span class="p">]</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"New contact list</span><span class="se">\n</span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">contactlist</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Remove contacts outside sequence bonds"</span><span class="p">)</span> + + <span class="c1"># Checking for unassigned contacts</span> + <span class="n">validx</span> <span class="o">=</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">protein</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">sequence</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> + <span class="n">unascon</span> <span class="o">=</span> <span class="p">[</span><span class="n">contactidx</span> + <span class="k">for</span> <span class="n">contactidx</span><span class="p">,</span> <span class="n">contact</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">contactlist</span><span class="p">)</span> + <span class="k">if</span> <span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">validx</span> <span class="ow">or</span> <span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">validx</span><span class="p">]</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Old contact list (</span><span class="si">%d</span><span class="s2"> contacts)</span><span class="se">\n</span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> + <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">contactlist</span><span class="p">),</span> <span class="bp">self</span><span class="o">.</span><span class="n">contactlist</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">contactlist</span> <span class="o">=</span> <span class="p">[</span><span class="n">contact</span> + <span class="k">for</span> <span class="n">idx</span><span class="p">,</span> <span class="n">contact</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">contactlist</span><span class="p">)</span> + <span class="k">if</span> <span class="n">idx</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">unascon</span><span class="p">]</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"New contact list (</span><span class="si">%d</span><span class="s2"> contacts)</span><span class="se">\n</span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> + <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">contactlist</span><span class="p">),</span> <span class="bp">self</span><span class="o">.</span><span class="n">contactlist</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">clashlist</span> <span class="o">=</span> <span class="p">[</span><span class="n">clash</span> <span class="k">for</span> <span class="n">idx</span><span class="p">,</span> <span class="n">clash</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">clashlist</span><span class="p">)</span> + <span class="k">if</span> <span class="n">idx</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">unascon</span><span class="p">]</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">clashlist</span> <span class="k">else</span> <span class="p">[]</span> + <span class="bp">self</span><span class="o">.</span><span class="n">distlist</span> <span class="o">=</span> <span class="p">[</span><span class="n">dist</span> <span class="k">for</span> <span class="n">idx</span><span class="p">,</span> <span class="n">dist</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">distlist</span><span class="p">)</span> + <span class="k">if</span> <span class="n">idx</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">unascon</span><span class="p">]</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">distlist</span> <span class="k">else</span> <span class="p">[]</span> + <span class="bp">self</span><span class="o">.</span><span class="n">scorelist</span> <span class="o">=</span> <span class="p">[</span><span class="n">score</span> <span class="k">for</span> <span class="n">idx</span><span class="p">,</span> <span class="n">score</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">scorelist</span><span class="p">)</span> + <span class="k">if</span> <span class="n">idx</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">unascon</span><span class="p">]</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">scorelist</span> <span class="k">else</span> <span class="p">[]</span> + + <span class="bp">self</span><span class="o">.</span><span class="n">create_map</span><span class="p">(</span><span class="n">protein</span><span class="p">,</span> <span class="n">contactdef</span><span class="p">,</span> + <span class="n">groupby_method</span><span class="o">=</span><span class="n">groupby_method</span><span class="p">,</span> <span class="n">scsc</span><span class="o">=</span><span class="n">scsc</span><span class="p">,</span> + <span class="n">flaglist</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">flaglist</span><span class="p">,</span> <span class="n">sym</span><span class="o">=</span><span class="n">sym</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">filepath</span><span class="p">)</span></div></div> + + +<div class="viewcode-block" id="ContactMapFile"><a class="viewcode-back" href="../../ariaec.html#ariaec.reader.ContactMapFile">[docs]</a><span class="k">class</span> <span class="nc">ContactMapFile</span><span class="p">(</span><span class="n">MapFile</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Contact map file</span> +<span class="sd"> """</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filepath</span><span class="p">,</span> <span class="n">filetype</span><span class="p">):</span> + <span class="sd">"""</span> + +<span class="sd"> :param filepath:</span> +<span class="sd"> :param filetype:</span> +<span class="sd"> :return:</span> +<span class="sd"> """</span> + <span class="nb">super</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">filepath</span><span class="p">,</span> <span class="n">filetype</span><span class="p">)</span> + +<div class="viewcode-block" id="ContactMapFile.update_map"><a class="viewcode-back" href="../../ariaec.html#ariaec.reader.ContactMapFile.update_map">[docs]</a> <span class="k">def</span> <span class="nf">update_map</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">resmap</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> resmap :</span> +<span class="sd"> return:</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># TODO: swap dataframe factory here</span> + <span class="k">raise</span> <span class="ne">NotImplementedError</span></div> + +<div class="viewcode-block" id="ContactMapFile.create_map"><a class="viewcode-back" href="../../ariaec.html#ariaec.reader.ContactMapFile.create_map">[docs]</a> <span class="k">def</span> <span class="nf">create_map</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">protein</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Initialize and fill Res - Res maps based on contactlist</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> protein :</span> +<span class="sd"> </span> +<span class="sd"> args :</span> +<span class="sd"> </span> +<span class="sd"> kwargs :</span> +<span class="sd"> </span> +<span class="sd"> *args :</span> +<span class="sd"> </span> +<span class="sd"> **kwargs :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">offset</span> <span class="o">=</span> <span class="nb">min</span><span class="p">(</span><span class="n">protein</span><span class="o">.</span><span class="n">index</span><span class="p">)</span> <span class="c1"># Should be 1 or upper (human_idx)</span> + <span class="n">idxnames</span> <span class="o">=</span> <span class="s2">"residuex"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span> <span class="o">!=</span> <span class="s2">"metapsicovhb"</span> <span class="k">else</span> <span class="s2">"donor"</span> + <span class="n">colnames</span> <span class="o">=</span> <span class="s2">"residuey"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span> <span class="o">!=</span> <span class="s2">"metapsicovhb"</span> <span class="k">else</span> <span class="s2">"acceptor"</span> + <span class="n">contactmap</span> <span class="o">=</span> <span class="n">ResMap</span><span class="p">(</span><span class="n">protein</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">sequence</span><span class="p">,</span> <span class="n">mtype</span><span class="o">=</span><span class="s1">'contact'</span><span class="p">,</span> + <span class="n">flaglist</span><span class="o">=</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'flaglist'</span><span class="p">],</span> + <span class="n">seqidx</span><span class="o">=</span><span class="n">protein</span><span class="o">.</span><span class="n">index</span><span class="p">,</span> <span class="n">idxnames</span><span class="o">=</span><span class="n">idxnames</span><span class="p">,</span> + <span class="n">colnames</span><span class="o">=</span><span class="n">colnames</span><span class="p">,</span> <span class="n">sym</span><span class="o">=</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'sym'</span><span class="p">],</span> + <span class="n">desc</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">filetype</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"path"</span><span class="p">))</span> + <span class="c1"># DataFrame containing ec scores</span> + <span class="n">scoremap</span> <span class="o">=</span> <span class="n">ResMap</span><span class="p">(</span><span class="n">protein</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">sequence</span><span class="p">,</span> <span class="n">mtype</span><span class="o">=</span><span class="s1">'score'</span><span class="p">,</span> + <span class="n">seqidx</span><span class="o">=</span><span class="n">protein</span><span class="o">.</span><span class="n">index</span><span class="p">,</span> <span class="n">idxnames</span><span class="o">=</span><span class="n">idxnames</span><span class="p">,</span> + <span class="n">colnames</span><span class="o">=</span><span class="n">colnames</span><span class="p">,</span> <span class="n">sym</span><span class="o">=</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'sym'</span><span class="p">],</span> + <span class="n">path</span><span class="o">=</span><span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"path"</span><span class="p">),</span> + <span class="n">desc</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">filetype</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">sort</span> <span class="k">else</span> <span class="kc">None</span> + <span class="n">distmap</span> <span class="o">=</span> <span class="n">ResMap</span><span class="p">(</span><span class="n">protein</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">sequence</span><span class="p">,</span> <span class="n">mtype</span><span class="o">=</span><span class="s1">'distance'</span><span class="p">,</span> + <span class="n">seqidx</span><span class="o">=</span><span class="n">protein</span><span class="o">.</span><span class="n">index</span><span class="p">,</span> <span class="n">idxnames</span><span class="o">=</span><span class="n">idxnames</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"path"</span><span class="p">),</span> + <span class="n">colnames</span><span class="o">=</span><span class="n">colnames</span><span class="p">,</span> <span class="n">sym</span><span class="o">=</span><span class="n">kwargs</span><span class="p">[</span><span class="s1">'sym'</span><span class="p">],</span> + <span class="n">desc</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">filetype</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span> <span class="o">==</span> <span class="s2">"metapsicovhb"</span> <span class="k">else</span> <span class="kc">None</span> + + <span class="k">for</span> <span class="n">idx</span><span class="p">,</span> <span class="n">contact</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">contactlist</span><span class="p">):</span> + <span class="n">contact_id</span> <span class="o">=</span> <span class="n">idx</span> <span class="o">+</span> <span class="mi">1</span> + <span class="n">resid1</span><span class="p">,</span> <span class="n">resid2</span> <span class="o">=</span> <span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> + <span class="n">dist</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">distlist</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">distlist</span> <span class="k">else</span> <span class="kc">None</span> + + <span class="c1"># Res id start from 0 in res-res map</span> + <span class="n">residx1</span> <span class="o">=</span> <span class="n">contactmap</span><span class="o">.</span><span class="n">index</span><span class="p">[</span><span class="n">resid1</span> <span class="o">-</span> <span class="n">offset</span><span class="p">]</span> + <span class="n">residx2</span> <span class="o">=</span> <span class="n">contactmap</span><span class="o">.</span><span class="n">index</span><span class="p">[</span><span class="n">resid2</span> <span class="o">-</span> <span class="n">offset</span><span class="p">]</span> + + <span class="k">if</span> <span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">residx1</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"-"</span><span class="p">)[</span><span class="mi">0</span><span class="p">])</span> <span class="o">!=</span> <span class="n">resid1</span><span class="p">)</span> <span class="ow">or</span> \ + <span class="p">(</span><span class="n">resid2</span> <span class="o">!=</span> <span class="nb">int</span><span class="p">(</span><span class="n">residx2</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"-"</span><span class="p">)[</span><span class="mi">0</span><span class="p">])):</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"Wrong resid humanidx (</span><span class="si">%d</span><span class="s2">, </span><span class="si">%d</span><span class="s2">) in contact (</span><span class="si">%d</span><span class="s2">) is "</span> + <span class="s2">"not the same in resmap (</span><span class="si">%s</span><span class="s2">, </span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> + <span class="n">resid1</span><span class="p">,</span> <span class="n">resid2</span><span class="p">,</span> <span class="n">contact_id</span><span class="p">,</span> + <span class="n">residx1</span><span class="p">,</span> <span class="n">residx2</span><span class="p">)</span> + + <span class="n">contactmap</span><span class="o">.</span><span class="n">set_value</span><span class="p">(</span><span class="n">residx1</span><span class="p">,</span> <span class="n">residx2</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">sort</span><span class="p">:</span> + <span class="n">scoremap</span><span class="o">.</span><span class="n">sort_list</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">resid1</span> <span class="o">-</span> <span class="n">offset</span><span class="p">,</span> <span class="n">resid2</span> <span class="o">-</span> <span class="n">offset</span><span class="p">))</span> + <span class="n">scoremap</span><span class="o">.</span><span class="n">set_value</span><span class="p">(</span><span class="n">residx1</span><span class="p">,</span> <span class="n">residx2</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">scorelist</span><span class="p">[</span><span class="n">idx</span><span class="p">])</span> + <span class="k">if</span> <span class="n">distmap</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> + <span class="n">distmap</span><span class="o">.</span><span class="n">set_value</span><span class="p">(</span><span class="n">residx1</span><span class="p">,</span> <span class="n">residx2</span><span class="p">,</span> <span class="n">dist</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2"> contact map:</span><span class="se">\n</span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span><span class="p">,</span> <span class="n">contactmap</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mapdict</span><span class="p">[</span><span class="s2">"maplot"</span><span class="p">]</span> <span class="o">=</span> <span class="n">contactmap</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2"> score map:</span><span class="se">\n</span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">filetype</span><span class="p">,</span> <span class="n">scoremap</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mapdict</span><span class="p">[</span><span class="s2">"scoremap"</span><span class="p">]</span> <span class="o">=</span> <span class="n">scoremap</span> + <span class="k">if</span> <span class="n">distmap</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mapdict</span><span class="p">[</span><span class="s2">"distmap"</span><span class="p">]</span> <span class="o">=</span> <span class="n">distmap</span></div></div> + + +<div class="viewcode-block" id="PDBFile"><a class="viewcode-back" href="../../ariaec.html#ariaec.reader.PDBFile">[docs]</a><span class="k">class</span> <span class="nc">PDBFile</span><span class="p">(</span><span class="n">MapFile</span><span class="p">):</span> + <span class="sd">"""PDB file"""</span> + <span class="n">pdbreg</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s1">'^(?P<record>ATOM |HETATM)(?P<serial>[\s\w]</span><span class="si">{5}</span><span class="s1">)'</span> + <span class="sa">r</span><span class="s1">'\s(?P<name>[\s\w]</span><span class="si">{4}</span><span class="s1">)'</span> + <span class="sa">r</span><span class="s1">'(?P<altLoc>[\s\w])'</span> + <span class="sa">r</span><span class="s1">'(?P<resName>\w</span><span class="si">{3}</span><span class="s1">)\s(?P<chainID>\w)'</span> + <span class="sa">r</span><span class="s1">'(?P<resSeq>[\s\w]</span><span class="si">{4}</span><span class="s1">)(?P<iCode>[\s\w])'</span> + <span class="sa">r</span><span class="s1">'\s</span><span class="si">{3}</span><span class="s1">(?P<x>[\s\d-]</span><span class="si">{4}</span><span class="s1">\.\d</span><span class="si">{3}</span><span class="s1">)(?P<y>[\s\d-]</span><span class="si">{4}</span><span class="s1">\.\d</span><span class="si">{3}</span><span class="s1">)'</span> + <span class="sa">r</span><span class="s1">'(?P<z>[\s\d-]</span><span class="si">{4}</span><span class="s1">\.\d</span><span class="si">{3}</span><span class="s1">)'</span> + <span class="sa">r</span><span class="s1">'(?P<occupancy>[\s\d-]</span><span class="si">{3}</span><span class="s1">\.\d</span><span class="si">{2}</span><span class="s1">)'</span> + <span class="sa">r</span><span class="s1">'(?P<tempFactor>[\s\d-]</span><span class="si">{3}</span><span class="s1">\.\d</span><span class="si">{2}</span><span class="s1">)'</span> + <span class="sa">r</span><span class="s1">'\s</span><span class="si">{10}</span><span class="s1">(?P<element>[\s\w]</span><span class="si">{2}</span><span class="s1">)'</span> + <span class="sa">r</span><span class="s1">'(?P<charge>[\s\w]</span><span class="si">{2}</span><span class="s1">)'</span><span class="p">)</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="c1"># TODO: use PDB object in aria</span> + <span class="c1"># TODO: write dataframe in a separated file</span> + <span class="bp">self</span><span class="o">.</span><span class="n">check_type</span> <span class="o">=</span> <span class="kc">False</span> + <span class="nb">super</span><span class="p">(</span><span class="n">PDBFile</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">regex</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">pdbreg</span><span class="p">,</span> <span class="n">filetype</span><span class="o">=</span><span class="s2">"pdb"</span><span class="p">,</span> + <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> + +<div class="viewcode-block" id="PDBFile.create_map"><a class="viewcode-back" href="../../ariaec.html#ariaec.reader.PDBFile.create_map">[docs]</a> <span class="k">def</span> <span class="nf">create_map</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">protein</span><span class="p">,</span> <span class="n">contactdef</span><span class="p">,</span> <span class="n">groupby_method</span><span class="o">=</span><span class="s2">"min"</span><span class="p">,</span> <span class="n">scsc</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> + <span class="n">flaglist</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">sym</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="s2">""</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> protein :</span> +<span class="sd"> contactdef:</span> +<span class="sd"> groupby_method :</span> +<span class="sd"> (Default value = "min")</span> +<span class="sd"> scsc: </span> +<span class="sd"> (Default value = None)</span> +<span class="sd"> flaglist :</span> +<span class="sd"> (Default value = None)</span> +<span class="sd"> sym: </span> +<span class="sd"> (Default value = True)</span> +<span class="sd"> path :</span> +<span class="sd"> (Default value = "")</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">resmap</span> <span class="o">=</span> <span class="n">ResAtmMap</span><span class="p">(</span><span class="n">protein</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">sequence</span><span class="p">,</span> <span class="n">mtype</span><span class="o">=</span><span class="s1">'distance'</span><span class="p">,</span> + <span class="n">flaglist</span><span class="o">=</span><span class="n">flaglist</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="n">path</span><span class="p">,</span> + <span class="n">seqidx</span><span class="o">=</span><span class="n">protein</span><span class="o">.</span><span class="n">index</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">filetype</span><span class="p">)</span> + <span class="c1"># noinspection PyTypeChecker</span> + <span class="n">resmap</span><span class="p">[:]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">update_map</span><span class="p">(</span><span class="n">resmap</span><span class="p">,</span> <span class="n">sym</span><span class="o">=</span><span class="n">sym</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"pdb distance map:</span><span class="se">\n</span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">resmap</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mapdict</span><span class="p">[</span><span class="s2">"alldistmap"</span><span class="p">]</span> <span class="o">=</span> <span class="n">resmap</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mapdict</span><span class="p">[</span><span class="s2">"distmap"</span><span class="p">]</span> <span class="o">=</span> <span class="n">resmap</span><span class="o">.</span><span class="n">reduce</span><span class="p">(</span><span class="n">groupby</span><span class="o">=</span><span class="n">groupby_method</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mapdict</span><span class="p">[</span><span class="s2">"allcontactmap"</span><span class="p">]</span> <span class="o">=</span> <span class="n">resmap</span><span class="o">.</span><span class="n">contact_map</span><span class="p">(</span> + <span class="n">contactdef</span><span class="o">=</span><span class="n">contactdef</span><span class="p">,</span> <span class="n">scsc_min</span><span class="o">=</span><span class="n">scsc</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">mapdict</span><span class="p">[</span><span class="s2">"maplot"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">mapdict</span><span class="p">[</span><span class="s2">"allcontactmap"</span><span class="p">]</span><span class="o">.</span><span class="n">reduce</span><span class="p">()</span></div> + +<div class="viewcode-block" id="PDBFile.update_map"><a class="viewcode-back" href="../../ariaec.html#ariaec.reader.PDBFile.update_map">[docs]</a> <span class="k">def</span> <span class="nf">update_map</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">resmap</span><span class="p">,</span> <span class="n">sym</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> resmap :</span> +<span class="sd"> param sym:</span> +<span class="sd"> sym :</span> +<span class="sd"> (Default value = True)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># Map only on heavy atoms</span> + <span class="c1"># TODO: check if same sequence in pdb file</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Updating distance map with pdb file"</span><span class="p">)</span> + <span class="n">newmap</span> <span class="o">=</span> <span class="n">resmap</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> + <span class="n">heavylist</span> <span class="o">=</span> <span class="p">[]</span> + <span class="n">error_list</span> <span class="o">=</span> <span class="nb">set</span><span class="p">()</span> + <span class="k">for</span> <span class="n">atom</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">:</span> + <span class="k">if</span> <span class="n">resmap</span><span class="o">.</span><span class="n">heavy_reg</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">atom</span><span class="p">][</span><span class="s1">'name'</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()):</span> + <span class="n">heavylist</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">atom</span><span class="p">)</span> + + <span class="c1"># For each heavy atom</span> + <span class="k">for</span> <span class="n">x</span><span class="p">,</span> <span class="n">atomx</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">heavylist</span><span class="p">):</span> + <span class="k">for</span> <span class="n">atomy</span> <span class="ow">in</span> <span class="n">heavylist</span><span class="p">[</span><span class="n">x</span><span class="p">:]:</span> + <span class="c1"># TODO: Check first residue number in pdb file</span> + <span class="n">indx</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%03d</span><span class="s2">-</span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">atomx</span><span class="p">][</span><span class="s1">'resSeq'</span><span class="p">]),</span> + <span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">atomx</span><span class="p">][</span><span class="s1">'resName'</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()),</span> \ + <span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">atomx</span><span class="p">][</span><span class="s1">'name'</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> + <span class="n">indy</span> <span class="o">=</span> <span class="s2">"</span><span class="si">%03d</span><span class="s2">-</span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">atomy</span><span class="p">][</span><span class="s1">'resSeq'</span><span class="p">]),</span> + <span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">atomy</span><span class="p">][</span><span class="s1">'resName'</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()),</span> \ + <span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">atomy</span><span class="p">][</span><span class="s1">'name'</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> + <span class="n">coordx</span> <span class="o">=</span> <span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">atomx</span><span class="p">][</span><span class="s1">'x'</span><span class="p">]),</span> + <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">atomx</span><span class="p">][</span><span class="s1">'y'</span><span class="p">]),</span> + <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">atomx</span><span class="p">][</span><span class="s1">'z'</span><span class="p">]))</span> + <span class="n">coordy</span> <span class="o">=</span> <span class="p">(</span><span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">atomy</span><span class="p">][</span><span class="s1">'x'</span><span class="p">]),</span> + <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">atomy</span><span class="p">][</span><span class="s1">'y'</span><span class="p">]),</span> + <span class="nb">float</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lines</span><span class="p">[</span><span class="n">atomy</span><span class="p">][</span><span class="s1">'z'</span><span class="p">]))</span> + + <span class="n">dist</span> <span class="o">=</span> <span class="n">distance</span><span class="o">.</span><span class="n">euclidean</span><span class="p">(</span><span class="n">coordx</span><span class="p">,</span> <span class="n">coordy</span><span class="p">)</span> + <span class="k">if</span> <span class="n">indx</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">in</span> <span class="nb">list</span><span class="p">(</span><span class="n">resmap</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">get_level_values</span><span class="p">(</span><span class="s2">"residuex"</span><span class="p">))</span>\ + <span class="ow">and</span> <span class="n">indy</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">in</span> <span class="nb">list</span><span class="p">(</span><span class="n">resmap</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">get_level_values</span><span class="p">(</span><span class="s2">"residuex"</span><span class="p">)):</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Update distance value (</span><span class="si">%s</span><span class="s2">, </span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> <span class="n">indx</span><span class="p">,</span> <span class="n">indy</span><span class="p">)</span> + <span class="n">newmap</span><span class="o">.</span><span class="n">at</span><span class="p">[</span><span class="n">indx</span><span class="p">,</span> <span class="n">indy</span><span class="p">]</span> <span class="o">=</span> <span class="n">dist</span> + <span class="k">if</span> <span class="n">sym</span><span class="p">:</span> + <span class="c1"># If symmetric matrix</span> + <span class="n">newmap</span><span class="o">.</span><span class="n">at</span><span class="p">[</span><span class="n">indy</span><span class="p">,</span> <span class="n">indx</span><span class="p">]</span> <span class="o">=</span> <span class="n">dist</span> + <span class="k">elif</span> <span class="n">indx</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">not</span> <span class="ow">in</span> <span class="nb">list</span><span class="p">(</span><span class="n">resmap</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">get_level_values</span><span class="p">(</span><span class="s2">"residuex"</span><span class="p">)):</span> + <span class="n">error_list</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">indx</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> + <span class="k">elif</span> <span class="n">indy</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">not</span> <span class="ow">in</span> <span class="nb">list</span><span class="p">(</span><span class="n">resmap</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">get_level_values</span><span class="p">(</span><span class="s2">"residuex"</span><span class="p">)):</span> + <span class="n">error_list</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">indy</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> + <span class="k">if</span> <span class="n">error_list</span><span class="p">:</span> + <span class="c1"># Listing related humanidx in the initial df</span> + <span class="n">idxlist</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">resmap</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">get_level_values</span><span class="p">(</span><span class="s2">"residuex"</span><span class="p">))</span> + <span class="n">erridx</span> <span class="o">=</span> <span class="p">[</span><span class="n">idx</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"-"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="nb">list</span><span class="p">(</span><span class="n">error_list</span><span class="p">)]</span> + <span class="n">missidx</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">set</span><span class="p">([</span><span class="n">idx</span> <span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="n">idxlist</span> + <span class="k">if</span> <span class="n">idx</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"-"</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">in</span> <span class="n">erridx</span><span class="p">]))</span> + <span class="k">for</span> <span class="n">idx</span> <span class="ow">in</span> <span class="n">missidx</span><span class="p">:</span> + <span class="n">newmap</span><span class="o">.</span><span class="n">loc</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> + <span class="k">if</span> <span class="n">sym</span><span class="p">:</span> + <span class="n">newmap</span><span class="o">.</span><span class="n">loc</span><span class="p">[:][</span><span class="n">idx</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"Can't update pdb distance map for pos in pdb file "</span> + <span class="s2">"</span><span class="si">%s</span><span class="s2"> with </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="nb">list</span><span class="p">(</span><span class="n">error_list</span><span class="p">),</span> <span class="n">missidx</span><span class="p">)</span> + <span class="k">return</span> <span class="n">newmap</span></div></div> + + +<div class="viewcode-block" id="DistanceMapFile"><a class="viewcode-back" href="../../ariaec.html#ariaec.reader.DistanceMapFile">[docs]</a><span class="k">class</span> <span class="nc">DistanceMapFile</span><span class="p">(</span><span class="n">MapFile</span><span class="p">):</span> + <span class="sd">"""Distance matrix file"""</span> + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filepath</span><span class="p">,</span> <span class="n">filetype</span><span class="p">):</span> + <span class="nb">super</span><span class="p">(</span><span class="n">MapFile</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="n">filepath</span><span class="p">,</span> <span class="n">filetype</span><span class="p">)</span> + <span class="k">raise</span> <span class="ne">NotImplementedError</span> + +<div class="viewcode-block" id="DistanceMapFile.create_map"><a class="viewcode-back" href="../../ariaec.html#ariaec.reader.DistanceMapFile.create_map">[docs]</a> <span class="k">def</span> <span class="nf">create_map</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">aa_seq</span><span class="p">,</span> <span class="n">contactdef</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> aa_seq :</span> +<span class="sd"> param contactdef:</span> +<span class="sd"> kwargs :</span> +<span class="sd"> return:</span> +<span class="sd"> contactdef :</span> +<span class="sd"> </span> +<span class="sd"> **kwargs :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">pass</span></div> + + <span class="c1"># Native dist</span> +<div class="viewcode-block" id="DistanceMapFile.update_map"><a class="viewcode-back" href="../../ariaec.html#ariaec.reader.DistanceMapFile.update_map">[docs]</a> <span class="k">def</span> <span class="nf">update_map</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">resmap</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> resmap :</span> +<span class="sd"> return:</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">pass</span></div></div> + <span class="c1"># Construit map avec la liste de residus + infos de distance du fichier</span> + <span class="c1"># return DistanceMap</span> + + +<div class="viewcode-block" id="MapFileListReader"><a class="viewcode-back" href="../../ariaec.html#ariaec.reader.MapFileListReader">[docs]</a><span class="k">class</span> <span class="nc">MapFileListReader</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> + <span class="sd">"""Reader class for Map files"""</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cont_def</span><span class="o">=</span><span class="mf">5.0</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> cont_def: float, optional</span> +<span class="sd"> Contact threshold used to filter native contacts (if reference</span> +<span class="sd"> structure given)</span> +<span class="sd"> """</span> + <span class="bp">self</span><span class="o">.</span><span class="n">maps</span> <span class="o">=</span> <span class="p">[]</span> + <span class="bp">self</span><span class="o">.</span><span class="n">contactdef</span> <span class="o">=</span> <span class="n">cont_def</span> + +<div class="viewcode-block" id="MapFileListReader.clear"><a class="viewcode-back" href="../../ariaec.html#ariaec.reader.MapFileListReader.clear">[docs]</a> <span class="k">def</span> <span class="nf">clear</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""Initiatize object from scratch object"""</span> + <span class="c1"># TODO: Init supprime bien les fichiers du cache ?</span> + <span class="bp">self</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">contactdef</span><span class="p">)</span></div> + + <span class="k">def</span> <span class="nf">_add_maps</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">maps</span><span class="p">,</span> <span class="n">maptypes</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Add Map file to the mapfile reader</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> maps : :obj: `list` of :obj: `str`</span> +<span class="sd"> List of Map file paths</span> +<span class="sd"> maptypes : :obj: `list` of :obj: `str`, optional</span> +<span class="sd"> (Default value = None)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">maps</span> <span class="o">=</span> <span class="p">[</span><span class="n">maps</span><span class="p">]</span> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">maps</span><span class="p">)</span> <span class="o">!=</span> <span class="nb">list</span> <span class="k">else</span> <span class="n">maps</span> + <span class="n">maptypes</span> <span class="o">=</span> <span class="p">[</span><span class="n">maptypes</span><span class="p">]</span> <span class="k">if</span> <span class="nb">type</span><span class="p">(</span> + <span class="n">maptypes</span><span class="p">)</span> <span class="o">!=</span> <span class="nb">list</span> <span class="k">else</span> <span class="n">maptypes</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">maptypes</span> <span class="ow">or</span> <span class="nb">len</span><span class="p">(</span><span class="n">maps</span><span class="p">)</span> <span class="o">!=</span> <span class="nb">len</span><span class="p">(</span><span class="n">maptypes</span><span class="p">):</span> + <span class="n">maptypes</span> <span class="o">=</span> <span class="p">[</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">_</span><span class="p">)[</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">:]</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="n">maps</span><span class="p">]</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Reader focused on file(s) </span><span class="si">%s</span><span class="s2"> </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">maps</span><span class="p">,</span> + <span class="n">maptypes</span><span class="p">)</span> + <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">filepath</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">maps</span><span class="p">):</span> + <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">filepath</span><span class="p">):</span> + <span class="c1"># TODO: check_type functionstr</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Adding </span><span class="si">%s</span><span class="s2"> file to watchlist"</span><span class="p">,</span> <span class="n">maptypes</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> + <span class="k">if</span> <span class="p">(</span><span class="n">maptypes</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"pdb"</span> <span class="ow">and</span> + <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">filepath</span><span class="p">)[</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">:]</span> <span class="o">==</span> <span class="s2">"pdb"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span> + <span class="n">maptypes</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"distfile"</span> <span class="ow">and</span> + <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">splitext</span><span class="p">(</span><span class="n">filepath</span><span class="p">)[</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">:]</span> <span class="o">==</span> <span class="s2">"pdb"</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">maps</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">PDBFile</span><span class="p">(</span><span class="n">filepath</span><span class="p">))</span> + <span class="k">else</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">maps</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ContactMapFile</span><span class="p">(</span><span class="n">filepath</span><span class="p">,</span> + <span class="n">maptypes</span><span class="p">[</span><span class="n">i</span><span class="p">]))</span> + <span class="c1"># else:</span> + <span class="c1"># self.maps.append(DistanceMapFile(filepath,</span> + <span class="c1"># maptypes[i]))</span> + <span class="c1"># TODO: DistanceMapFile condition</span> + <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">maps</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">regex</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">"Can't read </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">filepath</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">maps</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span> + +<div class="viewcode-block" id="MapFileListReader.read"><a class="viewcode-back" href="../../ariaec.html#ariaec.reader.MapFileListReader.read">[docs]</a> <span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">maps</span><span class="p">,</span> <span class="n">maptypes</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">protein</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">scsc</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Read contact map files. The generated maps will be accessible in</span> +<span class="sd"> `self.maps`</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> maps : :obj: `list` of :obj: `str`</span> +<span class="sd"> List of Map file paths</span> +<span class="sd"> maptypes : :obj: `list` of :obj: `str`, optional</span> +<span class="sd"> List of Map file types (Default value = None)</span> +<span class="sd"> protein : ariaec.protein.Protein object or None, optional</span> +<span class="sd"> (Default value = None)</span> +<span class="sd"> scsc : dict, optional</span> +<span class="sd"> Optional dictionary used for Atom Map reduction by selecting only</span> +<span class="sd"> one atom in the side chain. (Default value = None)</span> +<span class="sd"> kwargs :</span> +<span class="sd"> Optional arguments used for MapFile readers</span> +<span class="sd"> **kwargs :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="bp">self</span><span class="o">.</span><span class="n">clear</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_add_maps</span><span class="p">(</span><span class="n">maps</span><span class="p">,</span> <span class="n">maptypes</span><span class="o">=</span><span class="n">maptypes</span><span class="p">)</span> + <span class="k">for</span> <span class="n">fo</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">maps</span><span class="p">:</span> + <span class="n">fo</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">protein</span><span class="o">=</span><span class="n">protein</span><span class="p">,</span> <span class="n">contactdef</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">contactdef</span><span class="p">,</span> + <span class="n">scsc</span><span class="o">=</span><span class="n">scsc</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></div></div> +</pre></div> + + </div> + <div class="articleComments"> + + </div> + </div> + <footer> + + + <hr/> + + <div role="contentinfo"> + <p> + © Copyright 2017, Fabrice Allain. + + </p> + </div> + Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. + +</footer> + + </div> + </div> + + </section> + + </div> + + + + + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT:'../../', + VERSION:'0.2', + COLLAPSE_INDEX:false, + FILE_SUFFIX:'.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt' + }; + </script> + <script type="text/javascript" src="../../_static/jquery.js"></script> + <script type="text/javascript" src="../../_static/underscore.js"></script> + <script type="text/javascript" src="../../_static/doctools.js"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + + + + <script type="text/javascript" src="../../_static/js/theme.js"></script> + + + + + <script type="text/javascript"> + jQuery(function () { + SphinxRtdTheme.StickyNav.enable(); + }); + </script> + + +</body> +</html> \ No newline at end of file diff --git a/examples-dev/olds/_build/html/_modules/ariaec/settings.html b/examples-dev/olds/_build/html/_modules/ariaec/settings.html new file mode 100644 index 0000000000000000000000000000000000000000..6091331161d386c74be008a6d7bf4127b27cc912 --- /dev/null +++ b/examples-dev/olds/_build/html/_modules/ariaec/settings.html @@ -0,0 +1,543 @@ + + +<!DOCTYPE html> +<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> +<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> +<head> + <meta charset="utf-8"> + + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <title>ariaec.settings — AriaEc 0.2 documentation</title> + + + + + + + + + + + + + + + + + + <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> + + + + + + <link rel="index" title="Index" + href="../../genindex.html"/> + <link rel="search" title="Search" href="../../search.html"/> + <link rel="top" title="AriaEc 0.2 documentation" href="../../index.html"/> + <link rel="up" title="Module code" href="../index.html"/> + + + <script src="../../_static/js/modernizr.min.js"></script> + +</head> + +<body class="wy-body-for-nav" role="document"> + + + <div class="wy-grid-for-nav"> + + + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search"> + + + + <a href="../../index.html" class="icon icon-home"> AriaEc + + + + </a> + + + + + <div class="version"> + 0.2 + </div> + + + + +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + + + </div> + + <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> + + + + + + + <!-- Local TOC --> + <div class="local-toc"></div> + + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> + + + <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> + + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">AriaEc</a> + + </nav> + + + + <div class="wy-nav-content"> + <div class="rst-content"> + + + + + + + + + + + + + + + + +<div role="navigation" aria-label="breadcrumbs navigation"> + + <ul class="wy-breadcrumbs"> + + <li><a href="../../index.html">Docs</a> »</li> + + <li><a href="../index.html">Module code</a> »</li> + + <li>ariaec.settings</li> + + + <li class="wy-breadcrumbs-aside"> + + + + </li> + + </ul> + + + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <h1>Source code for ariaec.settings</h1><div class="highlight"><pre> +<span></span><span class="c1"># coding=utf-8</span> +<span class="sd">"""</span> +<span class="sd"> Settings section</span> +<span class="sd">"""</span> +<span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span><span class="p">,</span> <span class="n">division</span><span class="p">,</span> <span class="n">print_function</span> + +<span class="kn">import</span> <span class="nn">os</span> +<span class="kn">import</span> <span class="nn">logging</span> +<span class="kn">import</span> <span class="nn">pickle</span> +<span class="kn">import</span> <span class="nn">collections</span> +<span class="c1"># noinspection PyCompatibility</span> +<span class="kn">from</span> <span class="nn">ConfigParser</span> <span class="k">import</span> <span class="n">ConfigParser</span> +<span class="kn">import</span> <span class="nn">pkg_resources</span> <span class="k">as</span> <span class="nn">pkgr</span> + +<span class="kn">from</span> <span class="nn">.common</span> <span class="k">import</span> <span class="n">format_dict</span> + +<span class="n">LOG</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span> + + +<div class="viewcode-block" id="Setting"><a class="viewcode-back" href="../../ariaec.html#ariaec.settings.Setting">[docs]</a><span class="k">class</span> <span class="nc">Setting</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> + <span class="sd">"""Main setting object with args and config section"""</span> + + <span class="c1"># TODO: merge config and args</span> + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">config</span> <span class="o">=</span> <span class="n">collections</span><span class="o">.</span><span class="n">defaultdict</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">args</span> <span class="o">=</span> <span class="n">collections</span><span class="o">.</span><span class="n">defaultdict</span><span class="p">()</span> + + <span class="k">def</span> <span class="nf">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item</span><span class="p">):</span> + <span class="k">if</span> <span class="n">item</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">item</span><span class="p">]</span> + <span class="k">elif</span> <span class="n">item</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">:</span> + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="n">item</span><span class="p">]</span> + <span class="k">else</span><span class="p">:</span> + <span class="k">raise</span> <span class="ne">KeyError</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> + + <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="k">return</span> <span class="s2">"Setting object</span><span class="se">\n</span><span class="s2"> config: </span><span class="si">%s</span><span class="se">\n</span><span class="s2"> args : </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">config</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">)</span></div> + + +<div class="viewcode-block" id="Settings"><a class="viewcode-back" href="../../ariaec.html#ariaec.settings.Settings">[docs]</a><span class="k">class</span> <span class="nc">Settings</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> + <span class="sd">"""Group settings with each section corresponding to a Setting object"""</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sections</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_sections</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="n">sections</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">configfile</span> <span class="o">=</span> <span class="s1">''</span> + <span class="k">for</span> <span class="n">section</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_sections</span><span class="p">:</span> + <span class="nb">setattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">section</span><span class="p">,</span> <span class="n">Setting</span><span class="p">())</span> + +<div class="viewcode-block" id="Settings.load_config"><a class="viewcode-back" href="../../ariaec.html#ariaec.settings.Settings.load_config">[docs]</a> <span class="k">def</span> <span class="nf">load_config</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">configpath</span><span class="p">,</span> <span class="n">pkg</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Use ConfigParser module to load config sections</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> pkg :</span> +<span class="sd"> file is inside the package (Default value = False)</span> +<span class="sd"> configpath :</span> +<span class="sd"> return:</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">configpath</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">configfile</span> <span class="o">=</span> <span class="n">configpath</span> + <span class="k">elif</span> <span class="ow">not</span> <span class="n">pkg</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"Configuration file not found (</span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> <span class="n">configpath</span><span class="p">)</span> + <span class="k">return</span> <span class="kc">None</span> + <span class="c1"># config = SafeConfigParser(allow_no_value=True)</span> + <span class="n">config</span> <span class="o">=</span> <span class="n">ConfigParser</span><span class="p">(</span><span class="n">allow_no_value</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="k">if</span> <span class="n">pkg</span><span class="p">:</span> + <span class="k">with</span> <span class="n">pkgr</span><span class="o">.</span><span class="n">resource_stream</span><span class="p">(</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">configpath</span><span class="p">)</span> <span class="k">as</span> <span class="n">conf</span><span class="p">:</span> + <span class="n">config</span><span class="o">.</span><span class="n">readfp</span><span class="p">(</span><span class="n">conf</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">config</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="n">configpath</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="n">config</span><span class="p">)</span> + <span class="k">for</span> <span class="n">section</span> <span class="ow">in</span> <span class="n">config</span><span class="o">.</span><span class="n">sections</span><span class="p">():</span> + <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">section</span><span class="p">):</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Formatting items of </span><span class="si">%s</span><span class="s2"> section"</span><span class="p">,</span> <span class="n">section</span><span class="p">)</span> + <span class="n">tmp</span> <span class="o">=</span> <span class="n">format_dict</span><span class="p">(</span><span class="nb">dict</span><span class="p">(</span><span class="n">config</span><span class="o">.</span><span class="n">items</span><span class="p">(</span><span class="n">section</span><span class="p">)))</span> + <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">section</span><span class="p">)</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">tmp</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2"> config updated"</span><span class="p">,</span> <span class="n">section</span><span class="p">)</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2">.</span><span class="si">%s</span><span class="s2"> : </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">section</span><span class="p">,</span> + <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">section</span><span class="p">))</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="s2">"Unknow config section </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">section</span><span class="p">)</span></div> + +<div class="viewcode-block" id="Settings.write_config"><a class="viewcode-back" href="../../ariaec.html#ariaec.settings.Settings.write_config">[docs]</a> <span class="k">def</span> <span class="nf">write_config</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">filename</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Write config of all sections into another file</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> filename :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Writing .ini file (</span><span class="si">%s</span><span class="s2">)"</span><span class="p">,</span> <span class="n">filename</span><span class="p">)</span> + <span class="n">config</span> <span class="o">=</span> <span class="n">ConfigParser</span><span class="p">(</span><span class="n">allow_no_value</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">iniout</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s2">"w"</span><span class="p">)</span> + <span class="k">for</span> <span class="n">section</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_sections</span><span class="p">:</span> + <span class="n">config</span><span class="o">.</span><span class="n">add_section</span><span class="p">(</span><span class="n">section</span><span class="p">)</span> + <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">section</span><span class="p">):</span> + <span class="k">for</span> <span class="n">opt</span> <span class="ow">in</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">section</span><span class="p">)</span><span class="o">.</span><span class="n">config</span><span class="p">:</span> + <span class="n">config</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">section</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">opt</span><span class="p">),</span> + <span class="nb">str</span><span class="p">(</span><span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">section</span><span class="p">)</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">opt</span><span class="p">)))</span> + <span class="n">config</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">iniout</span><span class="p">)</span></div> + + <span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="k">return</span> <span class="s2">"<Settings object></span><span class="se">\n</span><span class="s2"> sections: </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_sections</span></div> + + +<span class="c1"># TODO: AriaEcSettings should probably be an astract class.</span> +<div class="viewcode-block" id="AriaEcSettings"><a class="viewcode-back" href="../../ariaec.html#ariaec.settings.AriaEcSettings">[docs]</a><span class="k">class</span> <span class="nc">AriaEcSettings</span><span class="p">(</span><span class="n">Settings</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Settings object for ariaec</span> +<span class="sd"> @DynamicAttrs</span> +<span class="sd"> """</span> + <span class="c1"># ss_dist = os.path.join(os.path.dirname(os.path.realpath(__file__)),</span> + <span class="c1"># 'conf/ss_dist.txt')</span> + <span class="c1"># TODO: move these constant variable in objects which can read these file !!</span> + <span class="c1"># TODO: Baseclass inspired from this class and ariabase class. All</span> + <span class="c1"># objects in this package should extend the base object</span> + <span class="n">ARIAPROJ_TEMPLATE</span> <span class="o">=</span> <span class="s1">'templates/aria_project_v2.3.0.xml'</span> + <span class="n">SS_DIST</span> <span class="o">=</span> <span class="s1">'data/ss_dist.txt'</span> + <span class="n">SCSC_MIN</span> <span class="o">=</span> <span class="s1">'data/scsc_min.p'</span> + <span class="n">INTERLOWERBOUNDS</span> <span class="o">=</span> <span class="s1">'data/pdbdists/lowerbounds.inter.p'</span> + <span class="n">INTERTARGET</span> <span class="o">=</span> <span class="s1">'data/pdbdists/targetdists.inter.p'</span> + <span class="n">INTERUPPERBOUNDS</span> <span class="o">=</span> <span class="s1">'data/pdbdists/upperbounds.inter.p'</span> + <span class="n">INTRALOWERBOUNDS</span> <span class="o">=</span> <span class="s1">'data/pdbdists/lowerbounds.intra.p'</span> + <span class="n">INTRATARGET</span> <span class="o">=</span> <span class="s1">'data/pdbdists/targetdists.intra.p'</span> + <span class="n">INTRAUPPERBOUNDS</span> <span class="o">=</span> <span class="s1">'data/pdbdists/upperbounds.intra.p'</span> + <span class="c1"># TODO: If aria installed in site-packages, use topallhdg file from aria !</span> + <span class="n">TOPO</span> <span class="o">=</span> <span class="s1">'data/topallhdg5.3.pro'</span> + <span class="c1"># TODO: Should define sections in one object, actually we have to define</span> + <span class="c1"># sections in settings and also command objects ...</span> + <span class="n">SECTIONS</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"main"</span><span class="p">,</span> <span class="s2">"setup"</span><span class="p">,</span> <span class="s2">"maplot"</span><span class="p">,</span> <span class="s2">"bbconv"</span><span class="p">,</span> <span class="s2">"contactdef"</span><span class="p">,</span> + <span class="s2">"pdbqual"</span><span class="p">,</span> <span class="s2">"pdbdist"</span><span class="p">,</span> <span class="s2">"analysis"</span><span class="p">,</span> <span class="s2">"tbl2xml"</span><span class="p">,</span> <span class="s2">"pdbstat"</span><span class="p">)</span> + <span class="c1"># TODO: options in main section should be accessible from all sections ! DO</span> + <span class="c1"># not use this a other section as it is done actually</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Initiate settings with name related to a command</span> +<span class="sd"> :param name:</span> +<span class="sd"> """</span> + <span class="nb">super</span><span class="p">(</span><span class="n">AriaEcSettings</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">SECTIONS</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_infra</span> <span class="o">=</span> <span class="p">{}</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_scsc_min</span> <span class="o">=</span> <span class="kc">None</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_ssdist</span> <span class="o">=</span> <span class="kc">None</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_template</span> <span class="o">=</span> <span class="kc">None</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outdir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">getcwd</span><span class="p">()</span> + <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span> + + <span class="k">def</span> <span class="nf">_up_infra</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">""" """</span> + <span class="k">for</span> <span class="n">dirpath</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">infra</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"set </span><span class="si">%s</span><span class="s2"> dir: </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">dirpath</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">outdir</span><span class="p">,</span> + <span class="n">dirpath</span><span class="p">))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_infra</span><span class="p">[</span><span class="n">dirpath</span><span class="p">]</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">outdir</span><span class="p">,</span> <span class="n">dirpath</span><span class="p">)</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">infra</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Infrastructure for a specific command</span> +<span class="sd"> :return:</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"setup"</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_infra</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_infra</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"xml"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"tbl"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span> <span class="s2">"etc"</span><span class="p">:</span> <span class="s2">""</span><span class="p">}</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_up_infra</span><span class="p">()</span> + <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"maplot"</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_infra</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_infra</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"graphics"</span><span class="p">:</span> <span class="s2">""</span><span class="p">}</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_up_infra</span><span class="p">()</span> + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_infra</span> + + <span class="nd">@infra</span><span class="o">.</span><span class="n">setter</span> + <span class="k">def</span> <span class="nf">infra</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">root</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Change infra root</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> root :</span> +<span class="sd"> return:</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outdir</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="n">root</span><span class="p">)</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">infra</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_up_infra</span><span class="p">()</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">ssdist</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Get distance file for secondary structures in the package or in config</span> +<span class="sd"> file</span> +<span class="sd"> :return:</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_ssdist</span><span class="p">:</span> + <span class="k">if</span> <span class="bp">self</span><span class="p">[</span><span class="s2">"ss_dist_file"</span><span class="p">]</span> <span class="ow">and</span> \ + <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="bp">self</span><span class="p">[</span><span class="s2">"ss_dist_file"</span><span class="p">]):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_ssdist</span> <span class="o">=</span> <span class="bp">self</span><span class="p">[</span><span class="s2">"ss_dist_file"</span><span class="p">]</span> + <span class="k">else</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_ssdist</span> <span class="o">=</span> <span class="n">pkgr</span><span class="o">.</span><span class="n">resource_filename</span><span class="p">(</span><span class="vm">__name__</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">SS_DIST</span><span class="p">)</span> + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_ssdist</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">template</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Get template files in config file or in the package</span> +<span class="sd"> :return:</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_template</span><span class="p">:</span> + <span class="n">templatepath</span> <span class="o">=</span> <span class="s2">"templates/aria_project_v</span><span class="si">%s</span><span class="s2">.xml"</span> <span class="o">%</span> \ + <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="p">[</span><span class="s2">"ariaproject_template"</span><span class="p">])</span> + <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">pkgr</span><span class="o">.</span><span class="n">resource_filename</span><span class="p">(</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">templatepath</span><span class="p">)):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_template</span> <span class="o">=</span> <span class="n">pkgr</span><span class="o">.</span><span class="n">resource_filename</span><span class="p">(</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">templatepath</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"Template version for aria project (</span><span class="si">%s</span><span class="s2">) is not "</span> + <span class="s2">"supported"</span><span class="p">,</span> <span class="bp">self</span><span class="p">[</span><span class="s2">"ariaproject_template"</span><span class="p">])</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_template</span> <span class="o">=</span> <span class="n">pkgr</span><span class="o">.</span><span class="n">resource_filename</span><span class="p">(</span><span class="vm">__name__</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">ARIAPROJ_TEMPLATE</span><span class="p">)</span> + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_template</span> + + <span class="nd">@property</span> + <span class="k">def</span> <span class="nf">scsc_min</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Get contact index for side chains in package or config file</span> +<span class="sd"> :return:</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scsc_min</span><span class="p">:</span> + <span class="k">try</span><span class="p">:</span> + <span class="c1"># Read scsc_min_file given in config.ini</span> + <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="bp">self</span><span class="p">[</span><span class="s2">"scsc_min_file"</span><span class="p">])</span> <span class="k">as</span> <span class="n">scsc</span><span class="p">:</span> + <span class="n">scsc_min</span> <span class="o">=</span> <span class="n">pickle</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">scsc</span><span class="p">)</span> + <span class="k">except</span> <span class="p">(</span><span class="ne">IOError</span><span class="p">,</span> <span class="ne">KeyError</span><span class="p">,</span> <span class="ne">TypeError</span><span class="p">):</span> + <span class="c1"># If file can't be open or given key is invalid, load default</span> + <span class="c1"># package file</span> + <span class="k">with</span> <span class="n">pkgr</span><span class="o">.</span><span class="n">resource_stream</span><span class="p">(</span><span class="vm">__name__</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">SCSC_MIN</span><span class="p">)</span> <span class="k">as</span> <span class="n">scsc</span><span class="p">:</span> + <span class="n">scsc_min</span> <span class="o">=</span> <span class="n">pickle</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="n">scsc</span><span class="p">)</span> + <span class="n">scsc_min</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span> + <span class="p">(</span><span class="n">aa1</span><span class="p">,</span> <span class="nb">dict</span><span class="p">((</span><span class="n">aa2</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">(</span><span class="n">atm_pair</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">', '</span><span class="p">)))</span> + <span class="k">for</span> <span class="n">aa2</span><span class="p">,</span> <span class="n">atm_pair</span> <span class="ow">in</span> <span class="n">atm_pairs</span><span class="o">.</span><span class="n">items</span><span class="p">()))</span> + <span class="k">for</span> <span class="n">aa1</span><span class="p">,</span> <span class="n">atm_pairs</span> <span class="ow">in</span> <span class="n">scsc_min</span><span class="o">.</span><span class="n">items</span><span class="p">())</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_scsc_min</span> <span class="o">=</span> <span class="n">scsc_min</span> + <span class="k">return</span> <span class="n">scsc_min</span> + <span class="k">else</span><span class="p">:</span> + <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scsc_min</span> + +<div class="viewcode-block" id="AriaEcSettings.make_infra"><a class="viewcode-back" href="../../ariaec.html#ariaec.settings.AriaEcSettings.make_infra">[docs]</a> <span class="k">def</span> <span class="nf">make_infra</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""Generate infrastructure"""</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Making output directories"</span><span class="p">)</span> + <span class="k">for</span> <span class="n">direct</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">infra</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Create </span><span class="si">%s</span><span class="s2"> directory"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">infra</span><span class="p">[</span><span class="n">direct</span><span class="p">])</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">infra</span><span class="p">[</span><span class="n">direct</span><span class="p">]):</span> + <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">infra</span><span class="p">[</span><span class="n">direct</span><span class="p">]))</span></div> + +<div class="viewcode-block" id="AriaEcSettings.load_config"><a class="viewcode-back" href="../../ariaec.html#ariaec.settings.AriaEcSettings.load_config">[docs]</a> <span class="k">def</span> <span class="nf">load_config</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">configpath</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> </span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> configpath :</span> +<span class="sd"> param kwargs:</span> +<span class="sd"> **kwargs :</span> +<span class="sd"> </span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="nb">super</span><span class="p">(</span><span class="n">AriaEcSettings</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">load_config</span><span class="p">(</span><span class="n">configpath</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></div> + + <span class="k">def</span> <span class="nf">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item</span><span class="p">):</span> + <span class="k">for</span> <span class="n">section</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_sections</span><span class="p">:</span> + <span class="k">if</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">section</span><span class="p">)</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> + <span class="k">return</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">section</span><span class="p">)</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">item</span><span class="p">]</span> + <span class="k">elif</span> <span class="n">item</span> <span class="ow">in</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">section</span><span class="p">)</span><span class="o">.</span><span class="n">config</span><span class="p">:</span> + <span class="k">return</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">section</span><span class="p">)</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="n">item</span><span class="p">]</span></div> +</pre></div> + + </div> + <div class="articleComments"> + + </div> + </div> + <footer> + + + <hr/> + + <div role="contentinfo"> + <p> + © Copyright 2017, Fabrice Allain. + + </p> + </div> + Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. + +</footer> + + </div> + </div> + + </section> + + </div> + + + + + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT:'../../', + VERSION:'0.2', + COLLAPSE_INDEX:false, + FILE_SUFFIX:'.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt' + }; + </script> + <script type="text/javascript" src="../../_static/jquery.js"></script> + <script type="text/javascript" src="../../_static/underscore.js"></script> + <script type="text/javascript" src="../../_static/doctools.js"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + + + + <script type="text/javascript" src="../../_static/js/theme.js"></script> + + + + + <script type="text/javascript"> + jQuery(function () { + SphinxRtdTheme.StickyNav.enable(); + }); + </script> + + +</body> +</html> \ No newline at end of file diff --git a/examples-dev/olds/_build/html/_modules/ariaec/setup.html b/examples-dev/olds/_build/html/_modules/ariaec/setup.html new file mode 100644 index 0000000000000000000000000000000000000000..31b0401a0aebb9a0d2f74ba49a640982c1152516 --- /dev/null +++ b/examples-dev/olds/_build/html/_modules/ariaec/setup.html @@ -0,0 +1,541 @@ + + +<!DOCTYPE html> +<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> +<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> +<head> + <meta charset="utf-8"> + + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <title>ariaec.setup — AriaEc 0.2 documentation</title> + + + + + + + + + + + + + + + + + + <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> + + + + + + <link rel="index" title="Index" + href="../../genindex.html"/> + <link rel="search" title="Search" href="../../search.html"/> + <link rel="top" title="AriaEc 0.2 documentation" href="../../index.html"/> + <link rel="up" title="Module code" href="../index.html"/> + + + <script src="../../_static/js/modernizr.min.js"></script> + +</head> + +<body class="wy-body-for-nav" role="document"> + + + <div class="wy-grid-for-nav"> + + + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search"> + + + + <a href="../../index.html" class="icon icon-home"> AriaEc + + + + </a> + + + + + <div class="version"> + 0.2 + </div> + + + + +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + + + </div> + + <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> + + + + + + + <!-- Local TOC --> + <div class="local-toc"></div> + + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> + + + <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> + + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">AriaEc</a> + + </nav> + + + + <div class="wy-nav-content"> + <div class="rst-content"> + + + + + + + + + + + + + + + + +<div role="navigation" aria-label="breadcrumbs navigation"> + + <ul class="wy-breadcrumbs"> + + <li><a href="../../index.html">Docs</a> »</li> + + <li><a href="../index.html">Module code</a> »</li> + + <li>ariaec.setup</li> + + + <li class="wy-breadcrumbs-aside"> + + + + </li> + + </ul> + + + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <h1>Source code for ariaec.setup</h1><div class="highlight"><pre> +<span></span><span class="c1"># coding=utf-8</span> +<span class="sd">"""</span> +<span class="sd"> Input/Output aria_ec scripts</span> +<span class="sd">"""</span> +<span class="kn">from</span> <span class="nn">__future__</span> <span class="k">import</span> <span class="n">absolute_import</span><span class="p">,</span> <span class="n">division</span><span class="p">,</span> <span class="n">print_function</span> + +<span class="kn">import</span> <span class="nn">os</span> +<span class="kn">import</span> <span class="nn">json</span> +<span class="kn">import</span> <span class="nn">logging</span> + +<span class="kn">from</span> <span class="nn">.protein</span> <span class="k">import</span> <span class="n">Protein</span> +<span class="kn">from</span> <span class="nn">.reader</span> <span class="k">import</span> <span class="n">MapFileListReader</span> +<span class="kn">from</span> <span class="nn">.common</span> <span class="k">import</span> <span class="n">get_filename</span> +<span class="kn">from</span> <span class="nn">.protmap</span> <span class="k">import</span> <span class="n">MapFilter</span> +<span class="kn">from</span> <span class="nn">.converter</span> <span class="k">import</span> <span class="n">AriaEcXMLConverter</span> + +<span class="c1"># TODO: S'inspirer de pandas/__init__.py pour les dependances</span> + +<span class="n">LOG</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="vm">__name__</span><span class="p">)</span> + + +<div class="viewcode-block" id="AriaEcSetup"><a class="viewcode-back" href="../../ariaec.html#ariaec.setup.AriaEcSetup">[docs]</a><span class="k">class</span> <span class="nc">AriaEcSetup</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span> + <span class="sd">"""Aria Ec Setup protocol"""</span> + + <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">settings</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> :param settings:</span> +<span class="sd"> :return:</span> +<span class="sd"> """</span> + <span class="c1"># TODO: check_type settings (AriaEcSettings)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span> <span class="o">=</span> <span class="n">settings</span> + <span class="bp">self</span><span class="o">.</span><span class="n">protein</span> <span class="o">=</span> <span class="n">Protein</span><span class="p">(</span><span class="n">settings</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span> <span class="o">=</span> <span class="s1">''</span> + <span class="bp">self</span><span class="o">.</span><span class="n">reader</span> <span class="o">=</span> <span class="n">MapFileListReader</span><span class="p">(</span><span class="n">cont_def</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">contactdef</span><span class="o">.</span><span class="n">config</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">allresmap</span> <span class="o">=</span> <span class="p">{}</span> + <span class="bp">self</span><span class="o">.</span><span class="n">targetmaps</span> <span class="o">=</span> <span class="kc">None</span> + <span class="bp">self</span><span class="o">.</span><span class="n">refmaps</span> <span class="o">=</span> <span class="kc">None</span> + <span class="bp">self</span><span class="o">.</span><span class="n">hbmaps</span> <span class="o">=</span> <span class="kc">None</span> + <span class="bp">self</span><span class="o">.</span><span class="n">filter</span> <span class="o">=</span> <span class="n">MapFilter</span><span class="p">(</span> + <span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">,</span> + <span class="n">nofilter</span><span class="o">=</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no_filter"</span><span class="p">))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">converter</span> <span class="o">=</span> <span class="n">AriaEcXMLConverter</span><span class="p">(</span><span class="n">settings</span><span class="p">)</span> + +<div class="viewcode-block" id="AriaEcSetup.run"><a class="viewcode-back" href="../../ariaec.html#ariaec.setup.AriaEcSetup.run">[docs]</a> <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> main method</span> +<span class="sd"> :return:</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># Check input</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Settings:</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">,</span> + <span class="n">indent</span><span class="o">=</span><span class="mi">4</span><span class="p">))</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Args:</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> + <span class="n">indent</span><span class="o">=</span><span class="mi">4</span><span class="p">))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">make_infra</span><span class="p">()</span> + <span class="c1"># -------------------------------------------------------------------- #</span> + <span class="c1"># ----------------------------- Input -------------------------------- #</span> + <span class="c1"># -------------------------------------------------------------------- #</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span> <span class="o">=</span> <span class="n">get_filename</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"seq"</span><span class="p">,</span> <span class="s2">""</span><span class="p">))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">converter</span><span class="o">.</span><span class="n">outprefix</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span> + <span class="c1"># ------------------------- Load sequence ---------------------------- #</span> + <span class="bp">self</span><span class="o">.</span><span class="n">protein</span><span class="o">.</span><span class="n">set_aa_sequence</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"seq"</span><span class="p">,</span> <span class="kc">None</span><span class="p">))</span> + <span class="c1"># -------------- Load secondary structure prediction ----------------- #</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"sspred"</span><span class="p">,</span> <span class="kc">None</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">protein</span><span class="o">.</span><span class="n">set_sec_struct</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"sspred"</span><span class="p">,</span> + <span class="kc">None</span><span class="p">),</span> + <span class="n">ssdist_filename</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">ssdist</span><span class="p">,</span> + <span class="n">ssidx</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span> + <span class="s2">"ssidx"</span><span class="p">,</span> <span class="kc">False</span><span class="p">))</span> + <span class="c1"># -------------------------------------------------------------------- #</span> + <span class="c1"># ---------------------------- Processing ---------------------------- #</span> + <span class="c1"># -------------------------------------------------------------------- #</span> + <span class="c1"># TODO: write submatrix in a file</span> + <span class="c1"># TODO: change read method in reader to __call__</span> + <span class="c1"># -------------------------- contact maps ---------------------------- #</span> + <span class="bp">self</span><span class="o">.</span><span class="n">reader</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"infiles"</span><span class="p">),</span> + <span class="n">maptypes</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span> + <span class="s2">"contact_types"</span><span class="p">),</span> + <span class="n">protein</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">protein</span><span class="p">,</span> + <span class="n">groupby_method</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span> + <span class="s1">'groupby_method'</span><span class="p">],</span> + <span class="n">scsc</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">scsc_min</span><span class="p">)</span> + <span class="k">for</span> <span class="n">mapfile</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">reader</span><span class="o">.</span><span class="n">maps</span><span class="p">:</span> + <span class="c1"># fo need a maplot in order to wite XML dist restraints</span> + <span class="c1"># TODO: filter pour toutes les map de mapdict !! (fonction remove</span> + <span class="c1"># s'applique sur l'humanidx contenant les residus)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">mapfile</span><span class="o">.</span><span class="n">mapdict</span><span class="p">,</span> <span class="n">mapfile</span><span class="o">.</span><span class="n">filetype</span><span class="p">,</span> <span class="n">mapfile</span><span class="o">.</span><span class="n">contactlist</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">protein</span><span class="p">,</span> <span class="n">clashlist</span><span class="o">=</span><span class="n">mapfile</span><span class="o">.</span><span class="n">clashlist</span><span class="p">,</span> + <span class="n">outprefix</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span><span class="p">,</span> + <span class="n">outdir</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">infra</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"etc"</span><span class="p">,</span> <span class="s1">''</span><span class="p">))</span> + <span class="bp">self</span><span class="o">.</span><span class="n">allresmap</span><span class="p">[</span><span class="n">mapfile</span><span class="o">.</span><span class="n">filetype</span><span class="p">]</span> <span class="o">=</span> <span class="n">mapfile</span><span class="o">.</span><span class="n">mapdict</span> + + <span class="k">if</span> <span class="n">mapfile</span><span class="o">.</span><span class="n">filetype</span> <span class="o">!=</span> <span class="s2">"pdb"</span> <span class="ow">and</span> <span class="s2">"pdb"</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">allresmap</span><span class="p">:</span> + <span class="n">mapfile</span><span class="o">.</span><span class="n">maplot</span><span class="o">.</span><span class="n">compareplot</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">allresmap</span><span class="p">[</span><span class="s2">"pdb"</span><span class="p">])</span> + + <span class="c1"># ---------------------------- target map ---------------------------- #</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"distfile"</span><span class="p">)</span> <span class="ow">and</span> \ + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"distance_type"</span><span class="p">)</span> <span class="o">==</span> <span class="s2">"distfile"</span><span class="p">:</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Loading target distance file"</span><span class="p">)</span> + <span class="c1"># Read distance file</span> + <span class="bp">self</span><span class="o">.</span><span class="n">reader</span><span class="o">.</span><span class="n">read</span><span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"distfile"</span><span class="p">),</span> + <span class="n">maptypes</span><span class="o">=</span><span class="s2">"distfile"</span><span class="p">,</span> + <span class="n">protein</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">protein</span><span class="p">,</span> + <span class="n">groupby_method</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'groupby_method'</span><span class="p">],</span> + <span class="n">scsc</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">scsc_min</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">targetmaps</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">converter</span><span class="o">.</span><span class="n">targetdistmaps</span><span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">protein</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">sequence</span><span class="p">,</span> <span class="n">distfile</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">reader</span><span class="o">.</span><span class="n">maps</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> + <span class="k">else</span><span class="p">:</span> + <span class="c1"># Default targetmaps using config parameters</span> + <span class="bp">self</span><span class="o">.</span><span class="n">targetmaps</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">converter</span><span class="o">.</span><span class="n">targetdistmaps</span><span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">protein</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">sequence</span><span class="p">)</span> + + <span class="c1"># ---------------------------- ref map ----------------------------- #</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"ref"</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">reader</span><span class="o">.</span><span class="n">read</span><span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"ref"</span><span class="p">),</span> + <span class="n">maptypes</span><span class="o">=</span><span class="s2">"pdb"</span><span class="p">,</span> + <span class="n">protein</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">protein</span><span class="p">,</span> + <span class="n">groupby_method</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'groupby_method'</span><span class="p">],</span> + <span class="n">scsc</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">scsc_min</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">refmaps</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">reader</span><span class="o">.</span><span class="n">maps</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">mapdict</span> + + <span class="c1"># ---------------------------- hbond map ----------------------------- #</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"hb"</span><span class="p">)</span> <span class="ow">and</span> \ + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"longrange_hb"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> + <span class="bp">self</span><span class="o">.</span><span class="n">reader</span><span class="o">.</span><span class="n">read</span><span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"hb"</span><span class="p">),</span> + <span class="n">maptypes</span><span class="o">=</span><span class="s2">"metapsicovhb"</span><span class="p">,</span> + <span class="n">protein</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">protein</span><span class="p">,</span> + <span class="n">groupby_method</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span><span class="s1">'groupby_method'</span><span class="p">],</span> + <span class="n">scsc</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">scsc_min</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">hbmaps</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">reader</span><span class="o">.</span><span class="n">maps</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">mapdict</span> + <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"longrange_hb"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> + <span class="c1"># Create HBMAP with naive metapsicov method</span> + <span class="c1"># Consider as hbond ec predicted between beta strand</span> + <span class="k">raise</span> <span class="ne">NotImplementedError</span> + + <span class="c1"># -------------------------------------------------------------------- #</span> + <span class="c1"># ------------------------------ Output ------------------------------ #</span> + + <span class="c1"># ----------------------------- SEQ file ----------------------------- #</span> + <span class="bp">self</span><span class="o">.</span><span class="n">protein</span><span class="o">.</span><span class="n">write_seq</span><span class="p">(</span> + <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">infra</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"etc"</span><span class="p">,</span> <span class="s1">''</span><span class="p">),</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span> <span class="o">+</span> <span class="s2">".seq"</span><span class="p">))</span> + <span class="c1"># Load aria molecule object from seq file and convert it into xml format</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Load molecule file and convert it into xml format"</span><span class="p">)</span> + <span class="bp">self</span><span class="o">.</span><span class="n">converter</span><span class="o">.</span><span class="n">read_seq</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">protein</span><span class="o">.</span><span class="n">seqfile_path</span><span class="p">)</span> + <span class="c1"># --------------------------- TBL restraints ------------------------- #</span> + <span class="c1"># Setting contact number limit for hbmap</span> + <span class="n">n_hb</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">protein</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">sequence</span><span class="p">)</span> <span class="o">*</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"nf_longrange_hb"</span><span class="p">))</span> + <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">"Writing tbl files ..."</span><span class="p">)</span> + <span class="n">tbl_files</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">converter</span><span class="o">.</span><span class="n">write_tbl_restraints</span><span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">protein</span><span class="p">,</span> <span class="n">hbmap</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">hbmaps</span><span class="p">,</span> <span class="n">n_hb</span><span class="o">=</span><span class="n">n_hb</span><span class="p">)</span> + + <span class="c1"># --------------------------- XML restraints ------------------------- #</span> + <span class="c1"># Setting contact number limit for map restraints (native, ec, ...)</span> + + <span class="n">dist_files</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">converter</span><span class="o">.</span><span class="n">write_maplist_restraints</span><span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">allresmap</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">targetmaps</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">protein</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span> + + <span class="c1"># --------------------------- XML SEQ file --------------------------- #</span> + <span class="n">xmlseq_file</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">converter</span><span class="o">.</span><span class="n">write_xmlseq</span><span class="p">()</span> + + <span class="c1"># ---------------------- ARIA XML project file ----------------------- #</span> + <span class="bp">self</span><span class="o">.</span><span class="n">converter</span><span class="o">.</span><span class="n">write_ariaproject</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">template</span><span class="p">,</span> + <span class="n">xmlseq_file</span><span class="p">,</span> <span class="n">dist_files</span><span class="p">,</span> <span class="n">tbl_files</span><span class="p">,</span> + <span class="n">desclist</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">allresmap</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span> + <span class="c1"># -------------------------------- etc ------------------------------- #</span> + <span class="bp">self</span><span class="o">.</span><span class="n">write_optional_files</span><span class="p">()</span></div> + +<div class="viewcode-block" id="AriaEcSetup.write_optional_files"><a class="viewcode-back" href="../../ariaec.html#ariaec.setup.AriaEcSetup.write_optional_files">[docs]</a> <span class="k">def</span> <span class="nf">write_optional_files</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Write filtered contacts & distance maps (.csv)</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="c1"># Indextableplus file (submatrix)</span> + <span class="c1"># Contacts_refined.out</span> + <span class="k">for</span> <span class="n">maptype</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">allresmap</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">allresmap</span><span class="p">[</span><span class="n">maptype</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"maplot"</span><span class="p">)</span><span class="o">.</span><span class="n">write_contacts</span><span class="p">(</span> + <span class="s2">"_"</span><span class="o">.</span><span class="n">join</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span><span class="p">,</span> <span class="n">maptype</span><span class="p">,</span> <span class="s2">"filtered"</span><span class="p">)),</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">infra</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"etc"</span><span class="p">),</span> <span class="n">scoremap</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">allresmap</span><span class="p">[</span> + <span class="n">maptype</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"scoremap"</span><span class="p">))</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">allresmap</span><span class="p">[</span><span class="n">maptype</span><span class="p">][</span><span class="s2">"alldistmap"</span><span class="p">]</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">allresmap</span><span class="p">[</span><span class="n">maptype</span><span class="p">][</span><span class="s2">"alldistmap"</span><span class="p">]</span><span class="o">.</span><span class="n">to_csv</span><span class="p">(</span> + <span class="s2">"</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">.distmap.csv"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">infra</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"etc"</span><span class="p">),</span> + <span class="n">maptype</span><span class="p">))</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">refmaps</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">_write_contacts</span><span class="p">(</span> + <span class="bp">self</span><span class="o">.</span><span class="n">allresmap</span><span class="p">[</span><span class="n">maptype</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"filteredlist"</span><span class="p">,</span> <span class="kc">None</span><span class="p">),</span> + <span class="bp">self</span><span class="o">.</span><span class="n">protein</span><span class="o">.</span><span class="n">aa_sequence</span><span class="o">.</span><span class="n">sequence</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">infra</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"etc"</span><span class="p">,</span> <span class="s1">''</span><span class="p">),</span> + <span class="s2">"_"</span><span class="o">.</span><span class="n">join</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span><span class="p">,</span> <span class="n">maptype</span><span class="p">,</span> <span class="s2">"filtered"</span><span class="p">)),</span> + <span class="n">ref</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">refmaps</span><span class="p">[</span><span class="s2">"maplot"</span><span class="p">],</span> + <span class="n">distmap</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">refmaps</span><span class="p">[</span><span class="s2">"distmap"</span><span class="p">])</span> + <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">refmaps</span><span class="p">:</span> + <span class="bp">self</span><span class="o">.</span><span class="n">refmaps</span><span class="p">[</span><span class="s2">"alldistmap"</span><span class="p">]</span><span class="o">.</span><span class="n">to_csv</span><span class="p">(</span> + <span class="s2">"</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">_</span><span class="si">%s</span><span class="s2">.distmap.csv"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">infra</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"etc"</span><span class="p">),</span> + <span class="bp">self</span><span class="o">.</span><span class="n">outprefix</span><span class="p">,</span> + <span class="bp">self</span><span class="o">.</span><span class="n">refmaps</span><span class="o">.</span><span class="n">filetype</span><span class="p">))</span></div> + + <span class="k">def</span> <span class="nf">_write_contacts</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">contacts_list</span><span class="p">,</span> <span class="n">seq</span><span class="p">,</span> <span class="n">out</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">nc</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> + <span class="n">append</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">ref</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">distmap</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Write contacts from contact_list (sorted !)</span> + +<span class="sd"> Parameters</span> +<span class="sd"> ----------</span> +<span class="sd"> contacts_list :</span> +<span class="sd"> param seq:</span> +<span class="sd"> out :</span> +<span class="sd"> param prefix:</span> +<span class="sd"> nc :</span> +<span class="sd"> param append: (Default value = None)</span> +<span class="sd"> ref :</span> +<span class="sd"> return: (Default value = None)</span> +<span class="sd"> seq :</span> +<span class="sd"> </span> +<span class="sd"> prefix :</span> +<span class="sd"> </span> +<span class="sd"> append :</span> +<span class="sd"> (Default value = False)</span> +<span class="sd"> distmap :</span> +<span class="sd"> (Default value = None)</span> + +<span class="sd"> Returns</span> +<span class="sd"> -------</span> + +<span class="sd"> </span> +<span class="sd"> """</span> + <span class="n">mapy</span> <span class="o">=</span> <span class="p">[]</span> + <span class="n">tp_count</span> <span class="o">=</span> <span class="mi">0</span> + <span class="n">filemode</span> <span class="o">=</span> <span class="s1">'a'</span> <span class="k">if</span> <span class="n">append</span> <span class="k">else</span> <span class="s1">'w'</span> + <span class="n">dist_desc</span> <span class="o">=</span> <span class="s1">'</span><span class="se">\t</span><span class="s1">TP/FP</span><span class="se">\t</span><span class="s1">dist</span><span class="si">%s</span><span class="s1">(ref)'</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">setup</span><span class="o">.</span><span class="n">config</span><span class="p">[</span> + <span class="s2">"groupby_method"</span><span class="p">]</span> <span class="k">if</span> \ + <span class="n">distmap</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> \ + <span class="k">else</span> <span class="s1">''</span> + <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">.contacts.txt"</span> <span class="o">%</span> <span class="p">(</span><span class="n">out</span><span class="p">,</span> <span class="n">prefix</span><span class="p">),</span> <span class="n">filemode</span><span class="p">)</span> <span class="k">as</span> <span class="n">outfile</span><span class="p">:</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">append</span><span class="p">:</span> + <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span> + <span class="sd">'''# resid1\tresid2\tres1\tres2%s\n'''</span> <span class="o">%</span> <span class="n">dist_desc</span><span class="p">)</span> + + <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">contacts_list</span><span class="p">,</span> <span class="s1">'keys'</span><span class="p">):</span> + <span class="n">contacts</span> <span class="o">=</span> <span class="n">contacts_list</span><span class="o">.</span><span class="n">keys</span><span class="p">()</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">nc</span> <span class="k">else</span> \ + <span class="n">contacts_list</span><span class="o">.</span><span class="n">keys</span><span class="p">()[:</span><span class="n">nc</span><span class="p">]</span> + <span class="n">d_type</span> <span class="o">=</span> <span class="kc">True</span> + <span class="k">else</span><span class="p">:</span> + <span class="c1"># Check if contacts is 2-tuple</span> + <span class="k">if</span> <span class="kc">False</span> <span class="ow">in</span> <span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">item</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span> <span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">contacts_list</span><span class="p">]:</span> + <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s1">'Contact list must be 2-tuple !'</span><span class="p">)</span> + <span class="n">contacts</span> <span class="o">=</span> <span class="n">contacts_list</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">nc</span> <span class="k">else</span> <span class="n">contacts_list</span><span class="p">[:</span><span class="n">nc</span><span class="p">]</span> + <span class="n">d_type</span> <span class="o">=</span> <span class="kc">False</span> + + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Contact list </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="n">contacts</span><span class="p">)</span> + <span class="k">for</span> <span class="n">contact</span> <span class="ow">in</span> <span class="n">contacts</span><span class="p">:</span> + + <span class="k">if</span> <span class="n">d_type</span><span class="p">:</span> + <span class="c1"># If dictionary</span> + <span class="n">resid1</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">contacts_list</span><span class="p">[</span><span class="n">contact</span><span class="p">]</span><span class="o">.</span><span class="n">setdefault</span><span class="p">(</span><span class="s1">'res1_nb'</span><span class="p">))</span> + <span class="n">resid2</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">contacts_list</span><span class="p">[</span><span class="n">contact</span><span class="p">]</span><span class="o">.</span><span class="n">setdefault</span><span class="p">(</span><span class="s1">'res2_nb'</span><span class="p">))</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">resid1</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">contact</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> + <span class="n">resid2</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">contact</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> + + <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">"Contact </span><span class="si">%s</span><span class="s2">"</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">contact</span><span class="p">))</span> + <span class="k">if</span> <span class="n">distmap</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> + <span class="n">dist</span> <span class="o">=</span> <span class="n">distmap</span><span class="o">.</span><span class="n">ix</span><span class="p">[(</span><span class="n">resid1</span><span class="p">,</span> <span class="n">resid2</span><span class="p">)]</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">dist</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'dist'</span><span class="p">:</span> <span class="s1">''</span><span class="p">,</span> <span class="s1">'atoms'</span><span class="p">:</span> <span class="s1">''</span><span class="p">}</span> + + <span class="k">if</span> <span class="p">(</span><span class="n">resid1</span><span class="p">,</span> <span class="n">resid2</span><span class="p">)</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">mapy</span><span class="p">:</span> + <span class="n">mapy</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">resid1</span><span class="p">,</span> <span class="n">resid2</span><span class="p">))</span> + <span class="k">if</span> <span class="n">ref</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> + <span class="k">if</span> <span class="n">ref</span><span class="o">.</span><span class="n">ix</span><span class="p">[(</span><span class="n">resid1</span><span class="p">,</span> <span class="n">resid2</span><span class="p">)]:</span> + <span class="n">asses</span> <span class="o">=</span> <span class="s1">'TP'</span> + <span class="n">tp_count</span> <span class="o">+=</span> <span class="mi">1</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">asses</span> <span class="o">=</span> <span class="s1">'FP'</span> + <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span> + <span class="s2">"</span><span class="si">%s</span><span class="se">\t</span><span class="si">%s</span><span class="se">\t</span><span class="si">%s</span><span class="se">\t</span><span class="si">%s</span><span class="se">\t</span><span class="si">%s</span><span class="se">\t</span><span class="si">%s</span><span class="se">\n</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">resid1</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> + <span class="n">resid2</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> + <span class="n">seq</span><span class="p">[</span><span class="n">resid1</span><span class="p">],</span> + <span class="n">seq</span><span class="p">[</span><span class="n">resid2</span><span class="p">],</span> <span class="n">asses</span><span class="p">,</span> + <span class="n">dist</span><span class="p">))</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">"</span><span class="si">%s</span><span class="se">\t</span><span class="si">%s</span><span class="se">\t</span><span class="si">%s</span><span class="se">\t</span><span class="si">%s</span><span class="se">\n</span><span class="s2">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">resid1</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> + <span class="n">resid2</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> + <span class="n">seq</span><span class="p">[</span><span class="n">resid1</span><span class="p">],</span> + <span class="n">seq</span><span class="p">[</span><span class="n">resid2</span><span class="p">]))</span> + + <span class="n">ptp</span> <span class="o">=</span> <span class="p">(</span><span class="n">tp_count</span> <span class="o">/</span> <span class="nb">float</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">contacts</span><span class="p">)))</span> <span class="o">*</span> <span class="mf">100.0</span> <span class="k">if</span> <span class="n">ref</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> \ + <span class="kc">None</span> + <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'''</span> +<span class="s1"># TP number : </span><span class="si">{tp}</span><span class="s1"> (</span><span class="si">{ptp:.2f}</span><span class="s1"> %)</span> +<span class="s1"># Number of contacts : </span><span class="si">{nc}</span><span class="s1"></span> +<span class="s1">'''</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">tp</span><span class="o">=</span><span class="n">tp_count</span><span class="p">,</span> <span class="n">ptp</span><span class="o">=</span><span class="n">ptp</span><span class="p">,</span> <span class="n">nc</span><span class="o">=</span><span class="nb">len</span><span class="p">(</span><span class="n">contacts</span><span class="p">)))</span></div> + + +<span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s2">"__main__"</span><span class="p">:</span> + <span class="c1"># Test AriaEcCommand object</span> + <span class="kn">from</span> <span class="nn">.settings</span> <span class="k">import</span> <span class="n">AriaEcSettings</span> + + <span class="n">logging</span><span class="o">.</span><span class="n">basicConfig</span><span class="p">(</span><span class="n">level</span><span class="o">=</span><span class="n">logging</span><span class="o">.</span><span class="n">DEBUG</span><span class="p">)</span> + <span class="n">LOG</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s2">"Setup"</span><span class="p">)</span> + <span class="n">AriaEcSettings</span><span class="p">(</span><span class="s1">'setup'</span><span class="p">)</span><span class="o">.</span><span class="n">load_config</span><span class="p">(</span><span class="s1">'config.ini'</span><span class="p">)</span> +</pre></div> + + </div> + <div class="articleComments"> + + </div> + </div> + <footer> + + + <hr/> + + <div role="contentinfo"> + <p> + © Copyright 2017, Fabrice Allain. + + </p> + </div> + Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. + +</footer> + + </div> + </div> + + </section> + + </div> + + + + + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT:'../../', + VERSION:'0.2', + COLLAPSE_INDEX:false, + FILE_SUFFIX:'.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt' + }; + </script> + <script type="text/javascript" src="../../_static/jquery.js"></script> + <script type="text/javascript" src="../../_static/underscore.js"></script> + <script type="text/javascript" src="../../_static/doctools.js"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + + + + <script type="text/javascript" src="../../_static/js/theme.js"></script> + + + + + <script type="text/javascript"> + jQuery(function () { + SphinxRtdTheme.StickyNav.enable(); + }); + </script> + + +</body> +</html> \ No newline at end of file diff --git a/docs/_build/html/genindex.html b/examples-dev/olds/_build/html/_modules/index.html similarity index 60% rename from docs/_build/html/genindex.html rename to examples-dev/olds/_build/html/_modules/index.html index 127f52a8d4abf25e627e1db945919f44d75cfa76..2fa5593f52a52bbb0fa414d3e868d9f0c7e25db7 100644 --- a/docs/_build/html/genindex.html +++ b/examples-dev/olds/_build/html/_modules/index.html @@ -1,6 +1,5 @@ - <!DOCTYPE html> <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> @@ -9,7 +8,7 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <title>Index — ARIA 4 documentation</title> + <title>Overview: module code — Aria-EC 0.3 documentation</title> @@ -27,20 +26,19 @@ - <link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> + <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" /> <link rel="index" title="Index" - href="#"/> - <link rel="search" title="Search" href="search.html"/> - <link rel="copyright" title="Copyright" href="copyright.html"/> - <link rel="top" title="ARIA 4 documentation" href="index.html"/> + href="../genindex.html"/> + <link rel="search" title="Search" href="../search.html"/> + <link rel="top" title="Aria-EC 0.3 documentation" href="../index.html"/> - <script src="_static/js/modernizr.min.js"></script> + <script src="../_static/js/modernizr.min.js"></script> </head> @@ -56,7 +54,7 @@ - <a href="index.html" class="icon icon-home"> ARIA + <a href="../index.html" class="icon icon-home"> Aria-EC @@ -66,14 +64,14 @@ <div class="version"> - 2 + 0.3 </div> <div role="search"> - <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> + <form id="rtd-search-form" class="wy-form" action="../search.html" method="get"> <input type="text" name="q" placeholder="Search docs" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> @@ -104,7 +102,7 @@ <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="index.html">ARIA</a> + <a href="../index.html">Aria-EC</a> </nav> @@ -132,9 +130,9 @@ <ul class="wy-breadcrumbs"> - <li><a href="index.html">Docs</a> »</li> + <li><a href="../index.html">Docs</a> »</li> - <li>Index</li> + <li>Overview: module code</li> <li class="wy-breadcrumbs-aside"> @@ -151,13 +149,20 @@ <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div itemprop="articleBody"> - -<h1 id="index">Index</h1> - -<div class="genindex-jumpbox"> - -</div> - + <h1>All modules for which code is available</h1> +<ul><li><a href="aria/conbox/analysis.html">aria.conbox.analysis</a></li> +<li><a href="aria/conbox/commands.html">aria.conbox.commands</a></li> +<li><a href="aria/conbox/converter.html">aria.conbox.converter</a></li> +<li><a href="aria/conbox/maplot.html">aria.conbox.maplot</a></li> +<li><a href="aria/conbox/ndconv.html">aria.conbox.ndconv</a></li> +<li><a href="aria/conbox/pdbdist.html">aria.conbox.pdbdist</a></li> +<li><a href="aria/conbox/pdbqual.html">aria.conbox.pdbqual</a></li> +<li><a href="aria/conbox/protein.html">aria.conbox.protein</a></li> +<li><a href="aria/conbox/protmap.html">aria.conbox.protmap</a></li> +<li><a href="aria/conbox/reader.html">aria.conbox.reader</a></li> +<li><a href="aria/conbox/settings.html">aria.conbox.settings</a></li> +<li><a href="aria/conbox/setup.html">aria.conbox.setup</a></li> +</ul> </div> <div class="articleComments"> @@ -171,7 +176,7 @@ <div role="contentinfo"> <p> - © <a href="copyright.html">Copyright</a> 2017, Benjamin Bardiaux, Michael Habeck, Therese Malliavin, Wolfgang Rieping, and Michael Nilges. + © Copyright 2017, Fabrice Allain, Benjamin Bardiaux, Michael Habeck, Therese Malliavin, Wolfgang Rieping, and Michael Nilges. </p> </div> @@ -192,24 +197,24 @@ <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { - URL_ROOT:'./', - VERSION:'4', + URL_ROOT:'../', + VERSION:'0.3', COLLAPSE_INDEX:false, FILE_SUFFIX:'.html', HAS_SOURCE: true, SOURCELINK_SUFFIX: '.txt' }; </script> - <script type="text/javascript" src="_static/jquery.js"></script> - <script type="text/javascript" src="_static/underscore.js"></script> - <script type="text/javascript" src="_static/doctools.js"></script> + <script type="text/javascript" src="../_static/jquery.js"></script> + <script type="text/javascript" src="../_static/underscore.js"></script> + <script type="text/javascript" src="../_static/doctools.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> - <script type="text/javascript" src="_static/js/theme.js"></script> + <script type="text/javascript" src="../_static/js/theme.js"></script> diff --git a/examples-dev/olds/_build/html/_sources/ariaec.rst.txt b/examples-dev/olds/_build/html/_sources/ariaec.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..20f786da216a97258bdcca94acc1a648a5ca7a0d --- /dev/null +++ b/examples-dev/olds/_build/html/_sources/ariaec.rst.txt @@ -0,0 +1,123 @@ +aria.conbox package +=================== + +Subpackages +----------- + +.. toctree:: + +Submodules +---------- + +aria.conbox.analysis module +--------------------------- + +.. automodule:: aria.conbox.analysis + :members: + :undoc-members: + :show-inheritance: + +aria.conbox.base module +----------------------- + +.. automodule:: aria.conbox.base + :members: + :undoc-members: + :show-inheritance: + +aria.conbox.commands module +--------------------------- + +.. automodule:: aria.conbox.commands + :members: + :undoc-members: + :show-inheritance: + +aria.conbox.converter module +---------------------------- + +.. automodule:: aria.conbox.converter + :members: + :undoc-members: + :show-inheritance: + +aria.conbox.maplot module +------------------------- + +.. automodule:: aria.conbox.maplot + :members: + :undoc-members: + :show-inheritance: + +aria.conbox.ndconv module +------------------------- + +.. automodule:: aria.conbox.ndconv + :members: + :undoc-members: + :show-inheritance: + +aria.conbox.pdbdist module +-------------------------- + +.. automodule:: aria.conbox.pdbdist + :members: + :undoc-members: + :show-inheritance: + +aria.conbox.pdbqual module +-------------------------- + +.. automodule:: aria.conbox.pdbqual + :members: + :undoc-members: + :show-inheritance: + +aria.conbox.protein module +-------------------------- + +.. automodule:: aria.conbox.protein + :members: + :undoc-members: + :show-inheritance: + +aria.conbox.protmap module +-------------------------- + +.. automodule:: aria.conbox.protmap + :members: + :undoc-members: + :show-inheritance: + +aria.conbox.reader module +------------------------- + +.. automodule:: aria.conbox.reader + :members: + :undoc-members: + :show-inheritance: + +aria.conbox.settings module +--------------------------- + +.. automodule:: aria.conbox.settings + :members: + :undoc-members: + :show-inheritance: + +aria.conbox.setup module +------------------------ + +.. automodule:: aria.conbox.setup + :members: + :undoc-members: + :show-inheritance: + + +Module contents +--------------- + +.. automodule:: aria.conbox + :members: + :undoc-members: + :show-inheritance: diff --git a/examples-dev/olds/_build/html/_sources/ariaec.test.rst.txt b/examples-dev/olds/_build/html/_sources/ariaec.test.rst.txt new file mode 100644 index 0000000000000000000000000000000000000000..8813337fd0c5d4145318936b602a55b20912fba0 --- /dev/null +++ b/examples-dev/olds/_build/html/_sources/ariaec.test.rst.txt @@ -0,0 +1,10 @@ +ariaec.test package +=================== + +Module contents +--------------- + +.. automodule:: ariaec.test + :members: + :undoc-members: + :show-inheritance: diff --git a/docs/_build/html/_sources/index.rst.txt b/examples-dev/olds/_build/html/_sources/index.rst.txt similarity index 61% rename from docs/_build/html/_sources/index.rst.txt rename to examples-dev/olds/_build/html/_sources/index.rst.txt index b737aaf93725db144448ea732bc66f79e326e29a..c213df6f85ef924e67d93b9ad7c0bb1d687239bf 100644 --- a/docs/_build/html/_sources/index.rst.txt +++ b/examples-dev/olds/_build/html/_sources/index.rst.txt @@ -1,10 +1,10 @@ -.. ARIAEC documentation master file, created by - sphinx-quickstart on Mon Oct 23 16:10:18 2017. +.. AriaEc documentation master file, created by + sphinx-quickstart on Fri Apr 21 16:27:42 2017. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. -Welcome to ARIAEC's documentation! -================================== +Welcome to Aria-EC's documentation! +=================================== .. toctree:: :maxdepth: 2 diff --git a/docs/_build/html/_sources/modules.rst.txt b/examples-dev/olds/_build/html/_sources/modules.rst.txt similarity index 100% rename from docs/_build/html/_sources/modules.rst.txt rename to examples-dev/olds/_build/html/_sources/modules.rst.txt diff --git a/docs/_build/html/_static/ajax-loader.gif b/examples-dev/olds/_build/html/_static/ajax-loader.gif similarity index 100% rename from docs/_build/html/_static/ajax-loader.gif rename to examples-dev/olds/_build/html/_static/ajax-loader.gif diff --git a/docs/_build/html/_static/basic.css b/examples-dev/olds/_build/html/_static/basic.css similarity index 98% rename from docs/_build/html/_static/basic.css rename to examples-dev/olds/_build/html/_static/basic.css index 6f408303f8353eac5731eef280694f62a5a4f479..6df76b0a6c56968b5e521311839cf4139adba1cc 100644 --- a/docs/_build/html/_static/basic.css +++ b/examples-dev/olds/_build/html/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -445,14 +445,10 @@ dd { margin-left: 30px; } -dt:target, span.highlighted { +dt:target, .highlighted { background-color: #fbe54e; } -rect.highlighted { - fill: #fbe54e; -} - dl.glossary dt { font-weight: bold; font-size: 1.1em; diff --git a/docs/_build/html/_static/comment-bright.png b/examples-dev/olds/_build/html/_static/comment-bright.png similarity index 100% rename from docs/_build/html/_static/comment-bright.png rename to examples-dev/olds/_build/html/_static/comment-bright.png diff --git a/docs/_build/html/_static/comment-close.png b/examples-dev/olds/_build/html/_static/comment-close.png similarity index 100% rename from docs/_build/html/_static/comment-close.png rename to examples-dev/olds/_build/html/_static/comment-close.png diff --git a/docs/_build/html/_static/comment.png b/examples-dev/olds/_build/html/_static/comment.png similarity index 100% rename from docs/_build/html/_static/comment.png rename to examples-dev/olds/_build/html/_static/comment.png diff --git a/docs/_build/html/_static/css/badge_only.css b/examples-dev/olds/_build/html/_static/css/badge_only.css similarity index 100% rename from docs/_build/html/_static/css/badge_only.css rename to examples-dev/olds/_build/html/_static/css/badge_only.css diff --git a/docs/_build/html/_static/css/theme.css b/examples-dev/olds/_build/html/_static/css/theme.css similarity index 100% rename from docs/_build/html/_static/css/theme.css rename to examples-dev/olds/_build/html/_static/css/theme.css diff --git a/docs/_build/html/_static/doctools.js b/examples-dev/olds/_build/html/_static/doctools.js similarity index 82% rename from docs/_build/html/_static/doctools.js rename to examples-dev/olds/_build/html/_static/doctools.js index 0c15c0099b5df57d89479a679ae7b060d514e8e2..56549772348502981be27d8a3196baf789b40794 100644 --- a/docs/_build/html/_static/doctools.js +++ b/examples-dev/olds/_build/html/_static/doctools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for all documentation. * - * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -45,7 +45,7 @@ jQuery.urlencode = encodeURIComponent; * it will always return arrays of strings for the value parts. */ jQuery.getQueryParameters = function(s) { - if (typeof s === 'undefined') + if (typeof s == 'undefined') s = document.location.search; var parts = s.substr(s.indexOf('?') + 1).split('&'); var result = {}; @@ -66,53 +66,29 @@ jQuery.getQueryParameters = function(s) { * span elements with the given class name. */ jQuery.fn.highlightText = function(text, className) { - function highlight(node, addItems) { - if (node.nodeType === 3) { + function highlight(node) { + if (node.nodeType == 3) { var val = node.nodeValue; var pos = val.toLowerCase().indexOf(text); if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { - var span; - var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.className = className; - } + var span = document.createElement("span"); + span.className = className; span.appendChild(document.createTextNode(val.substr(pos, text.length))); node.parentNode.insertBefore(span, node.parentNode.insertBefore( document.createTextNode(val.substr(pos + text.length)), node.nextSibling)); node.nodeValue = val.substr(0, pos); - if (isInSVG) { - var bbox = span.getBBox(); - var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute('class', className); - var parentOfText = node.parentNode.parentNode; - addItems.push({ - "parent": node.parentNode, - "target": rect}); - } } } else if (!jQuery(node).is("button, select, textarea")) { jQuery.each(node.childNodes, function() { - highlight(this, addItems); + highlight(this); }); } } - var addItems = []; - var result = this.each(function() { - highlight(this, addItems); + return this.each(function() { + highlight(this); }); - for (var i = 0; i < addItems.length; ++i) { - jQuery(addItems[i].parent).before(addItems[i].target); - } - return result; }; /* @@ -155,21 +131,21 @@ var Documentation = { * i18n support */ TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, + PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, LOCALE : 'unknown', // gettext and ngettext don't access this so that the functions // can safely bound to a different name (_ = Documentation.gettext) gettext : function(string) { var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated === 'undefined') + if (typeof translated == 'undefined') return string; - return (typeof translated === 'string') ? translated : translated[0]; + return (typeof translated == 'string') ? translated : translated[0]; }, ngettext : function(singular, plural, n) { var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated === 'undefined') + if (typeof translated == 'undefined') return (n == 1) ? singular : plural; return translated[Documentation.PLURALEXPR(n)]; }, @@ -204,7 +180,7 @@ var Documentation = { * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 */ fixFirefoxAnchorBug : function() { - if (document.location.hash && $.browser.mozilla) + if (document.location.hash) window.setTimeout(function() { document.location.href += ''; }, 10); @@ -240,7 +216,7 @@ var Documentation = { var src = $(this).attr('src'); var idnum = $(this).attr('id').substr(7); $('tr.cg-' + idnum).toggle(); - if (src.substr(-9) === 'minus.png') + if (src.substr(-9) == 'minus.png') $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); else $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); @@ -272,7 +248,7 @@ var Documentation = { var path = document.location.pathname; var parts = path.split(/\//); $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this === '..') + if (this == '..') parts.pop(); }); var url = parts.join('/'); diff --git a/docs/_build/html/_static/down-pressed.png b/examples-dev/olds/_build/html/_static/down-pressed.png similarity index 100% rename from docs/_build/html/_static/down-pressed.png rename to examples-dev/olds/_build/html/_static/down-pressed.png diff --git a/docs/_build/html/_static/down.png b/examples-dev/olds/_build/html/_static/down.png similarity index 100% rename from docs/_build/html/_static/down.png rename to examples-dev/olds/_build/html/_static/down.png diff --git a/docs/_build/html/_static/file.png b/examples-dev/olds/_build/html/_static/file.png similarity index 100% rename from docs/_build/html/_static/file.png rename to examples-dev/olds/_build/html/_static/file.png diff --git a/docs/_build/html/_static/fonts/Inconsolata-Bold.ttf b/examples-dev/olds/_build/html/_static/fonts/Inconsolata-Bold.ttf similarity index 100% rename from docs/_build/html/_static/fonts/Inconsolata-Bold.ttf rename to examples-dev/olds/_build/html/_static/fonts/Inconsolata-Bold.ttf diff --git a/docs/_build/html/_static/fonts/Inconsolata-Regular.ttf b/examples-dev/olds/_build/html/_static/fonts/Inconsolata-Regular.ttf similarity index 100% rename from docs/_build/html/_static/fonts/Inconsolata-Regular.ttf rename to examples-dev/olds/_build/html/_static/fonts/Inconsolata-Regular.ttf diff --git a/docs/_build/html/_static/fonts/Lato-Bold.ttf b/examples-dev/olds/_build/html/_static/fonts/Lato-Bold.ttf similarity index 100% rename from docs/_build/html/_static/fonts/Lato-Bold.ttf rename to examples-dev/olds/_build/html/_static/fonts/Lato-Bold.ttf diff --git a/docs/_build/html/_static/fonts/Lato-Regular.ttf b/examples-dev/olds/_build/html/_static/fonts/Lato-Regular.ttf similarity index 100% rename from docs/_build/html/_static/fonts/Lato-Regular.ttf rename to examples-dev/olds/_build/html/_static/fonts/Lato-Regular.ttf diff --git a/docs/_build/html/_static/fonts/RobotoSlab-Bold.ttf b/examples-dev/olds/_build/html/_static/fonts/RobotoSlab-Bold.ttf similarity index 100% rename from docs/_build/html/_static/fonts/RobotoSlab-Bold.ttf rename to examples-dev/olds/_build/html/_static/fonts/RobotoSlab-Bold.ttf diff --git a/docs/_build/html/_static/fonts/RobotoSlab-Regular.ttf b/examples-dev/olds/_build/html/_static/fonts/RobotoSlab-Regular.ttf similarity index 100% rename from docs/_build/html/_static/fonts/RobotoSlab-Regular.ttf rename to examples-dev/olds/_build/html/_static/fonts/RobotoSlab-Regular.ttf diff --git a/docs/_build/html/_static/fonts/fontawesome-webfont.eot b/examples-dev/olds/_build/html/_static/fonts/fontawesome-webfont.eot similarity index 100% rename from docs/_build/html/_static/fonts/fontawesome-webfont.eot rename to examples-dev/olds/_build/html/_static/fonts/fontawesome-webfont.eot diff --git a/docs/_build/html/_static/fonts/fontawesome-webfont.svg b/examples-dev/olds/_build/html/_static/fonts/fontawesome-webfont.svg similarity index 100% rename from docs/_build/html/_static/fonts/fontawesome-webfont.svg rename to examples-dev/olds/_build/html/_static/fonts/fontawesome-webfont.svg diff --git a/docs/_build/html/_static/fonts/fontawesome-webfont.ttf b/examples-dev/olds/_build/html/_static/fonts/fontawesome-webfont.ttf similarity index 100% rename from docs/_build/html/_static/fonts/fontawesome-webfont.ttf rename to examples-dev/olds/_build/html/_static/fonts/fontawesome-webfont.ttf diff --git a/docs/_build/html/_static/fonts/fontawesome-webfont.woff b/examples-dev/olds/_build/html/_static/fonts/fontawesome-webfont.woff similarity index 100% rename from docs/_build/html/_static/fonts/fontawesome-webfont.woff rename to examples-dev/olds/_build/html/_static/fonts/fontawesome-webfont.woff diff --git a/docs/_build/html/_static/jquery-3.1.0.js b/examples-dev/olds/_build/html/_static/jquery-3.1.0.js similarity index 100% rename from docs/_build/html/_static/jquery-3.1.0.js rename to examples-dev/olds/_build/html/_static/jquery-3.1.0.js diff --git a/docs/_build/html/_static/jquery.js b/examples-dev/olds/_build/html/_static/jquery.js similarity index 100% rename from docs/_build/html/_static/jquery.js rename to examples-dev/olds/_build/html/_static/jquery.js diff --git a/docs/_build/html/_static/js/modernizr.min.js b/examples-dev/olds/_build/html/_static/js/modernizr.min.js similarity index 100% rename from docs/_build/html/_static/js/modernizr.min.js rename to examples-dev/olds/_build/html/_static/js/modernizr.min.js diff --git a/docs/_build/html/_static/js/theme.js b/examples-dev/olds/_build/html/_static/js/theme.js similarity index 100% rename from docs/_build/html/_static/js/theme.js rename to examples-dev/olds/_build/html/_static/js/theme.js diff --git a/docs/_build/html/_static/minus.png b/examples-dev/olds/_build/html/_static/minus.png similarity index 100% rename from docs/_build/html/_static/minus.png rename to examples-dev/olds/_build/html/_static/minus.png diff --git a/docs/_build/html/_static/plus.png b/examples-dev/olds/_build/html/_static/plus.png similarity index 100% rename from docs/_build/html/_static/plus.png rename to examples-dev/olds/_build/html/_static/plus.png diff --git a/docs/_build/html/_static/pygments.css b/examples-dev/olds/_build/html/_static/pygments.css similarity index 100% rename from docs/_build/html/_static/pygments.css rename to examples-dev/olds/_build/html/_static/pygments.css diff --git a/docs/_build/html/_static/searchtools.js b/examples-dev/olds/_build/html/_static/searchtools.js similarity index 99% rename from docs/_build/html/_static/searchtools.js rename to examples-dev/olds/_build/html/_static/searchtools.js index 41b8336776442fbc64332ffbd3d2c1ddd8b3b9c2..c82157380b008f641a14e50619a23cc5c0b4b04d 100644 --- a/docs/_build/html/_static/searchtools.js +++ b/examples-dev/olds/_build/html/_static/searchtools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for the full-text search. * - * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -540,9 +540,6 @@ var Search = { }); } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) { var suffix = DOCUMENTATION_OPTIONS.SOURCELINK_SUFFIX; - if (suffix === undefined) { - suffix = '.txt'; - } $.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + '_sources/' + item[5] + (item[5].slice(-suffix.length) === suffix ? '' : suffix), dataType: "text", complete: function(jqxhr, textstatus) { diff --git a/docs/_build/html/_static/underscore-1.3.1.js b/examples-dev/olds/_build/html/_static/underscore-1.3.1.js similarity index 100% rename from docs/_build/html/_static/underscore-1.3.1.js rename to examples-dev/olds/_build/html/_static/underscore-1.3.1.js diff --git a/docs/_build/html/_static/underscore.js b/examples-dev/olds/_build/html/_static/underscore.js similarity index 100% rename from docs/_build/html/_static/underscore.js rename to examples-dev/olds/_build/html/_static/underscore.js diff --git a/docs/_build/html/_static/up-pressed.png b/examples-dev/olds/_build/html/_static/up-pressed.png similarity index 100% rename from docs/_build/html/_static/up-pressed.png rename to examples-dev/olds/_build/html/_static/up-pressed.png diff --git a/docs/_build/html/_static/up.png b/examples-dev/olds/_build/html/_static/up.png similarity index 100% rename from docs/_build/html/_static/up.png rename to examples-dev/olds/_build/html/_static/up.png diff --git a/docs/_build/html/_static/websupport.js b/examples-dev/olds/_build/html/_static/websupport.js similarity index 99% rename from docs/_build/html/_static/websupport.js rename to examples-dev/olds/_build/html/_static/websupport.js index 79b18e3898556c26eeebd259cb91868b8b6200c8..53f6a4525cd3db79b5076e557b0d4c89d810fcae 100644 --- a/docs/_build/html/_static/websupport.js +++ b/examples-dev/olds/_build/html/_static/websupport.js @@ -4,7 +4,7 @@ * * sphinx.websupport utilities for all documentation. * - * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2017 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/examples-dev/olds/_build/html/ariaec.html b/examples-dev/olds/_build/html/ariaec.html new file mode 100644 index 0000000000000000000000000000000000000000..0a80067cc9a6864d7564e9fd92b10ad1075b9694 --- /dev/null +++ b/examples-dev/olds/_build/html/ariaec.html @@ -0,0 +1,2953 @@ + + +<!DOCTYPE html> +<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> +<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> +<head> + <meta charset="utf-8"> + + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <title>aria.conbox package — Aria-EC 0.3 documentation</title> + + + + + + + + + + + + + + + + + + <link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> + + + + + + <link rel="index" title="Index" + href="genindex.html"/> + <link rel="search" title="Search" href="search.html"/> + <link rel="top" title="Aria-EC 0.3 documentation" href="index.html"/> + + + <script src="_static/js/modernizr.min.js"></script> + +</head> + +<body class="wy-body-for-nav" role="document"> + + + <div class="wy-grid-for-nav"> + + + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search"> + + + + <a href="index.html" class="icon icon-home"> Aria-EC + + + + </a> + + + + + <div class="version"> + 0.3 + </div> + + + + +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + + + </div> + + <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> + + + + + + + <!-- Local TOC --> + <div class="local-toc"><ul> +<li><a class="reference internal" href="#">aria.conbox package</a><ul> +<li><a class="reference internal" href="#subpackages">Subpackages</a></li> +<li><a class="reference internal" href="#submodules">Submodules</a></li> +<li><a class="reference internal" href="#module-aria.conbox.analysis">aria.conbox.analysis module</a></li> +<li><a class="reference internal" href="#aria-conbox-base-module">aria.conbox.base module</a></li> +<li><a class="reference internal" href="#module-aria.conbox.commands">aria.conbox.commands module</a></li> +<li><a class="reference internal" href="#module-aria.conbox.converter">aria.conbox.converter module</a></li> +<li><a class="reference internal" href="#module-aria.conbox.maplot">aria.conbox.maplot module</a></li> +<li><a class="reference internal" href="#module-aria.conbox.ndconv">aria.conbox.ndconv module</a></li> +<li><a class="reference internal" href="#module-aria.conbox.pdbdist">aria.conbox.pdbdist module</a></li> +<li><a class="reference internal" href="#module-aria.conbox.pdbqual">aria.conbox.pdbqual module</a></li> +<li><a class="reference internal" href="#module-aria.conbox.protein">aria.conbox.protein module</a></li> +<li><a class="reference internal" href="#module-aria.conbox.protmap">aria.conbox.protmap module</a></li> +<li><a class="reference internal" href="#module-aria.conbox.reader">aria.conbox.reader module</a></li> +<li><a class="reference internal" href="#module-aria.conbox.settings">aria.conbox.settings module</a></li> +<li><a class="reference internal" href="#module-aria.conbox.setup">aria.conbox.setup module</a></li> +<li><a class="reference internal" href="#module-aria.conbox">Module contents</a></li> +</ul> +</li> +</ul> +</div> + + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> + + + <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> + + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="index.html">Aria-EC</a> + + </nav> + + + + <div class="wy-nav-content"> + <div class="rst-content"> + + + + + + + + + + + + + + + + +<div role="navigation" aria-label="breadcrumbs navigation"> + + <ul class="wy-breadcrumbs"> + + <li><a href="index.html">Docs</a> »</li> + + <li>aria.conbox package</li> + + + <li class="wy-breadcrumbs-aside"> + + + <a href="_sources/ariaec.rst.txt" rel="nofollow"> View page source</a> + + + </li> + + </ul> + + + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <div class="section" id="aria-conbox-package"> +<h1>aria.conbox package<a class="headerlink" href="#aria-conbox-package" title="Permalink to this headline">¶</a></h1> +<div class="section" id="subpackages"> +<h2>Subpackages<a class="headerlink" href="#subpackages" title="Permalink to this headline">¶</a></h2> +<div class="toctree-wrapper compound"> +</div> +</div> +<div class="section" id="submodules"> +<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2> +</div> +<div class="section" id="module-aria.conbox.analysis"> +<span id="aria-conbox-analysis-module"></span><h2>aria.conbox.analysis module<a class="headerlink" href="#module-aria.conbox.analysis" title="Permalink to this headline">¶</a></h2> +<p>Created on 4/7/17</p> +<p>@author: fallain</p> +<dl class="class"> +<dt id="aria.conbox.analysis.EnsembleAnalysis"> +<em class="property">class </em><code class="descclassname">aria.conbox.analysis.</code><code class="descname">EnsembleAnalysis</code><span class="sig-paren">(</span><em>settings</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/analysis.html#EnsembleAnalysis"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.analysis.EnsembleAnalysis" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p> +<p>ARIA extended ensemble analysis</p> +<dl class="staticmethod"> +<dt id="aria.conbox.analysis.EnsembleAnalysis.pca_projection"> +<em class="property">static </em><code class="descname">pca_projection</code><span class="sig-paren">(</span><em>ensemble</em>, <em>molecule</em>, <em>infos</em>, <em>atmask='CA'</em>, <em>title='3D PCA projection on backbone coordinates'</em>, <em>outfile=None</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/analysis.html#EnsembleAnalysis.pca_projection"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.analysis.EnsembleAnalysis.pca_projection" title="Permalink to this definition">¶</a></dt> +<dd><p>PCA projection of ensemble coordinates</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>ensemble</strong> – </li> +<li><strong>molecule</strong> – </li> +<li><strong>infos</strong> – </li> +<li><strong>atmask</strong> – (Default value = “CAâ€)</li> +<li><strong>title</strong> – </li> +<li><strong>outfile</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.analysis.EnsembleAnalysis.run"> +<code class="descname">run</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/analysis.html#EnsembleAnalysis.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.analysis.EnsembleAnalysis.run" title="Permalink to this definition">¶</a></dt> +<dd><p>Execute Ensemble analysis</p> +</dd></dl> + +<dl class="staticmethod"> +<dt id="aria.conbox.analysis.EnsembleAnalysis.violation_analysis"> +<em class="property">static </em><code class="descname">violation_analysis</code><span class="sig-paren">(</span><em>project</em>, <em>iteration_id</em>, <em>restraints</em>, <em>ensemble</em>, <em>out_file</em>, <em>dists_ref=None</em>, <em>headerflag=True</em>, <em>clusteridx=0</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/analysis.html#EnsembleAnalysis.violation_analysis"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.analysis.EnsembleAnalysis.violation_analysis" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>clusteridx</strong> – </li> +<li><strong>project</strong> (<em>aria.Project.Project object</em>) – </li> +<li><strong>iteration_id</strong> – </li> +<li><strong>restraints</strong> – </li> +<li><strong>ensemble</strong> – </li> +<li><strong>out_file</strong> – </li> +<li><strong>dists_ref</strong> – Reference distances (Default value = None)</li> +<li><strong>headerflag</strong> – (Default value = True)</li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +</dd></dl> + +<dl class="function"> +<dt id="aria.conbox.analysis.colscatter"> +<code class="descclassname">aria.conbox.analysis.</code><code class="descname">colscatter</code><span class="sig-paren">(</span><em>X</em>, <em>axe</em>, <em>colors</em>, <em>ndim=2</em>, <em>axtitle=''</em>, <em>xlabel='x'</em>, <em>ylabel='y'</em>, <em>zlabel='z'</em>, <em>legend_prefix=''</em>, <em>others=False</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/analysis.html#colscatter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.analysis.colscatter" title="Permalink to this definition">¶</a></dt> +<dd><p>Scatter plot with palette colors</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>X</strong> – </li> +<li><strong>axe</strong> – </li> +<li><strong>colors</strong> – </li> +<li><strong>ndim</strong> – (Default value = 2)</li> +<li><strong>axtitle</strong> – (Default value = “â€)</li> +<li><strong>xlabel</strong> – (Default value = “xâ€)</li> +<li><strong>ylabel</strong> – (Default value = “yâ€)</li> +<li><strong>zlabel</strong> – (Default value = “zâ€)</li> +<li><strong>legend_prefix</strong> – (Default value = “â€)</li> +<li><strong>others</strong> – (Default value = False)</li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +</div> +<div class="section" id="aria-conbox-base-module"> +<h2>aria.conbox.base module<a class="headerlink" href="#aria-conbox-base-module" title="Permalink to this headline">¶</a></h2> +</div> +<div class="section" id="module-aria.conbox.commands"> +<span id="aria-conbox-commands-module"></span><h2>aria.conbox.commands module<a class="headerlink" href="#module-aria.conbox.commands" title="Permalink to this headline">¶</a></h2> +<p>ARIA Evolutive Contact toolbox</p> +<dl class="class"> +<dt id="aria.conbox.commands.AriaEcCommands"> +<em class="property">class </em><code class="descclassname">aria.conbox.commands.</code><code class="descname">AriaEcCommands</code><span class="sig-paren">(</span><em>custom_logging=None</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/commands.html#AriaEcCommands"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.commands.AriaEcCommands" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p> +<p>Argparse interface for aria_ec</p> +<dl class="method"> +<dt id="aria.conbox.commands.AriaEcCommands.analysis"> +<code class="descname">analysis</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/commands.html#AriaEcCommands.analysis"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.commands.AriaEcCommands.analysis" title="Permalink to this definition">¶</a></dt> +<dd><p>Extended ensemble analysis of distance restraints</p> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.commands.AriaEcCommands.bbconv"> +<code class="descname">bbconv</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/commands.html#AriaEcCommands.bbconv"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.commands.AriaEcCommands.bbconv" title="Permalink to this definition">¶</a></dt> +<dd><p>bbcontacts converter call</p> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.commands.AriaEcCommands.command_list"> +<code class="descname">command_list</code><em class="property"> = ('setup', 'bbconv', 'maplot', 'pdbqual', 'analysis', 'tbl2xml', 'pdbdist', 'pdbstat')</em><a class="headerlink" href="#aria.conbox.commands.AriaEcCommands.command_list" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.commands.AriaEcCommands.contact_types"> +<code class="descname">contact_types</code><em class="property"> = ('evfold', 'plmev', 'plm', 'plmdca', 'plmc', 'bbcontacts', 'pconsc', 'pconsc1', 'pconsc2', 'psicov', 'metapsicovhb', 'metapsicov_stg1', 'metapsicov_stg2', 'gremlin', 'pdb', 'native', 'native_full', 'contactlist')</em><a class="headerlink" href="#aria.conbox.commands.AriaEcCommands.contact_types" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="aria.conbox.commands.AriaEcCommands.create_settings"> +<code class="descname">create_settings</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/commands.html#AriaEcCommands.create_settings"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.commands.AriaEcCommands.create_settings" title="Permalink to this definition">¶</a></dt> +<dd><p>Create settings relative to args.command</p> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.commands.AriaEcCommands.default_confile"> +<code class="descname">default_confile</code><em class="property"> = 'conf/config.ini'</em><a class="headerlink" href="#aria.conbox.commands.AriaEcCommands.default_confile" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.commands.AriaEcCommands.desc_list"> +<code class="descname">desc_list</code><em class="property"> = (u'Setup ARIA infrastructure with contact maps translated into ARIA restraints', u'Convert a contact map in bbcontact format', u'Contactmap visualization tool', u'Quality tool for pdb file(s)', u'Extended ARIA ensemble analysis on a specific iteration ', u'XML converter for tbl distance restraint', u'Extract distance distribution from culled list of pdb files', u'Analyze distance distribution with GMM, ...')</em><a class="headerlink" href="#aria.conbox.commands.AriaEcCommands.desc_list" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="aria.conbox.commands.AriaEcCommands.maplot"> +<code class="descname">maplot</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/commands.html#AriaEcCommands.maplot"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.commands.AriaEcCommands.maplot" title="Permalink to this definition">¶</a></dt> +<dd><p>instantiate AriaEcContactmap with AriaSettings</p> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.commands.AriaEcCommands.pdbdist"> +<code class="descname">pdbdist</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/commands.html#AriaEcCommands.pdbdist"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.commands.AriaEcCommands.pdbdist" title="Permalink to this definition">¶</a></dt> +<dd><p>Extract pdb distance distributions</p> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.commands.AriaEcCommands.pdbqual"> +<code class="descname">pdbqual</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/commands.html#AriaEcCommands.pdbqual"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.commands.AriaEcCommands.pdbqual" title="Permalink to this definition">¶</a></dt> +<dd><p>Quality run subcommand</p> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.commands.AriaEcCommands.pdbstat"> +<code class="descname">pdbstat</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/commands.html#AriaEcCommands.pdbstat"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.commands.AriaEcCommands.pdbstat" title="Permalink to this definition">¶</a></dt> +<dd><p>Analyse pdb distance distribution</p> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.commands.AriaEcCommands.run"> +<code class="descname">run</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/commands.html#AriaEcCommands.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.commands.AriaEcCommands.run" title="Permalink to this definition">¶</a></dt> +<dd><p>call method relative to args.command</p> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.commands.AriaEcCommands.setup"> +<code class="descname">setup</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/commands.html#AriaEcCommands.setup"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.commands.AriaEcCommands.setup" title="Permalink to this definition">¶</a></dt> +<dd><p>Setup call</p> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.commands.AriaEcCommands.tbl2xml"> +<code class="descname">tbl2xml</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/commands.html#AriaEcCommands.tbl2xml"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.commands.AriaEcCommands.tbl2xml" title="Permalink to this definition">¶</a></dt> +<dd><p>tbl2xml command</p> +</dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="aria.conbox.commands.ReadableFile"> +<em class="property">class </em><code class="descclassname">aria.conbox.commands.</code><code class="descname">ReadableFile</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/commands.html#ReadableFile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.commands.ReadableFile" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">argparse.Action</span></code></p> +<p>Class used with argparse action to check if a file is readable</p> +</dd></dl> + +<dl class="function"> +<dt id="aria.conbox.commands.check_file"> +<code class="descclassname">aria.conbox.commands.</code><code class="descname">check_file</code><span class="sig-paren">(</span><em>prospective_file</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/commands.html#check_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.commands.check_file" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>prospective_file</strong> – </td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="function"> +<dt id="aria.conbox.commands.main"> +<code class="descclassname">aria.conbox.commands.</code><code class="descname">main</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/commands.html#main"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.commands.main" title="Permalink to this definition">¶</a></dt> +<dd><p>Launch ariaec command interface</p> +</dd></dl> + +</div> +<div class="section" id="module-aria.conbox.converter"> +<span id="aria-conbox-converter-module"></span><h2>aria.conbox.converter module<a class="headerlink" href="#module-aria.conbox.converter" title="Permalink to this headline">¶</a></h2> +<p>Input/Output aria_ec scripts</p> +<dl class="class"> +<dt id="aria.conbox.converter.AriaEcBbConverter"> +<em class="property">class </em><code class="descclassname">aria.conbox.converter.</code><code class="descname">AriaEcBbConverter</code><span class="sig-paren">(</span><em>settings</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaEcBbConverter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaEcBbConverter" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p> +<p>Bbcontacts convert main class</p> +<dl class="staticmethod"> +<dt id="aria.conbox.converter.AriaEcBbConverter.compute_diversityvalue"> +<em class="property">static </em><code class="descname">compute_diversityvalue</code><span class="sig-paren">(</span><em>msa</em>, <em>seqlen</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaEcBbConverter.compute_diversityvalue"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaEcBbConverter.compute_diversityvalue" title="Permalink to this definition">¶</a></dt> +<dd><blockquote> +<div><p>Compute bbcontacts diversity value</p> +<dl class="docutils"> +<dt>msa <span class="classifier-delimiter">:</span> <span class="classifier"><cite>str</cite></span></dt> +<dd>multiple sequence alignment file path</dd> +<dt>seqlen <span class="classifier-delimiter">:</span> <span class="classifier"><cite>int</cite></span></dt> +<dd>protein sequence length</dd> +</dl> +<p>diversity_score : <cite>float</cite></p> +<blockquote> +<div><p>Diversity score correspond to the square root of the multiple +sequence alignment length (<span class="math">\(m\)</span>) over the length of the protein +sequence (<span class="math">\(l\)</span>)</p> +<div class="math"> +\[Divscore =\]</div> +</div></blockquote> +</div></blockquote> +<p>rac{sqrt{m}}{l}</p> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.converter.AriaEcBbConverter.run"> +<code class="descname">run</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaEcBbConverter.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaEcBbConverter.run" title="Permalink to this definition">¶</a></dt> +<dd><p>BBConverter command</p> +</dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="aria.conbox.converter.AriaEcXMLConverter"> +<em class="property">class </em><code class="descclassname">aria.conbox.converter.</code><code class="descname">AriaEcXMLConverter</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaEcXMLConverter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaEcXMLConverter" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <a class="reference internal" href="#aria.conbox.converter.AriaXMLConverter" title="aria.conbox.converter.AriaXMLConverter"><code class="xref py py-class docutils literal"><span class="pre">aria.conbox.converter.AriaXMLConverter</span></code></a></p> +<p>XML converter ariaec to aria</p> +<dl class="method"> +<dt id="aria.conbox.converter.AriaEcXMLConverter.atm_list"> +<code class="descname">atm_list</code><span class="sig-paren">(</span><em>idx1</em>, <em>res1</em>, <em>idx2</em>, <em>res2</em>, <em>list_type='min'</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaEcXMLConverter.atm_list"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaEcXMLConverter.atm_list" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>idx1</strong> – </li> +<li><strong>res1</strong> – </li> +<li><strong>idx2</strong> – </li> +<li><strong>res2</strong> – </li> +<li><strong>list_type</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.converter.AriaEcXMLConverter.atm_product"> +<code class="descname">atm_product</code><span class="sig-paren">(</span><em>idx1</em>, <em>res1</em>, <em>idx2</em>, <em>res2</em>, <em>list_type='min'</em>, <em>adr_flag=False</em>, <em>product_type='allvsall'</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaEcXMLConverter.atm_product"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaEcXMLConverter.atm_product" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>product_type</strong> – </li> +<li><strong>adr_flag</strong> – </li> +<li><strong>idx1</strong> – </li> +<li><strong>res1</strong> – </li> +<li><strong>idx2</strong> – </li> +<li><strong>res2</strong> – </li> +<li><strong>list_type</strong> – type of atoms in the product (Default value = “minâ€)</li> +<li><strong>res1</strong> – </li> +<li><strong>res2</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.converter.AriaEcXMLConverter.get_dist"> +<code class="descname">get_dist</code><span class="sig-paren">(</span><em>distmap</em>, <em>contribs</em>, <em>defaultdist</em>, <em>protein</em>, <em>groupby=None</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaEcXMLConverter.get_dist"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaEcXMLConverter.get_dist" title="Permalink to this definition">¶</a></dt> +<dd><p>Get target distance from distance map</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>distmap</strong> – </li> +<li><strong>contribs</strong> – </li> +<li><strong>defaultdist</strong> – </li> +<li><strong>protein</strong> – </li> +<li><strong>groupby</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="staticmethod"> +<dt id="aria.conbox.converter.AriaEcXMLConverter.neighcontact"> +<em class="property">static </em><code class="descname">neighcontact</code><span class="sig-paren">(</span><em>contact</em>, <em>maxidx</em>, <em>offset=0</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaEcXMLConverter.neighcontact"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaEcXMLConverter.neighcontact" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>contact</strong> (<em>tuple object</em>) – </li> +<li><strong>maxidx</strong> (<em>int</em>) – </li> +<li><strong>offset</strong> (<em>int</em>) – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="staticmethod"> +<dt id="aria.conbox.converter.AriaEcXMLConverter.neighcontacts"> +<em class="property">static </em><code class="descname">neighcontacts</code><span class="sig-paren">(</span><em>contacts</em>, <em>maxidx</em>, <em>offset=0</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaEcXMLConverter.neighcontacts"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaEcXMLConverter.neighcontacts" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>contacts</strong> (<em>list of tuple</em>) – </li> +<li><strong>maxidx</strong> (<em>int</em>) – Maximum index value in pairs</li> +<li><strong>offset</strong> (<em>int</em>) – If indexes in pairs start by 0 or 0 + offset</li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.converter.AriaEcXMLConverter.run_tbl2xml"> +<code class="descname">run_tbl2xml</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaEcXMLConverter.run_tbl2xml"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaEcXMLConverter.run_tbl2xml" title="Permalink to this definition">¶</a></dt> +<dd><p>Main command to convert tbl file(s) in ARIA XML Format</p> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.converter.AriaEcXMLConverter.targetdistmaps"> +<code class="descname">targetdistmaps</code><span class="sig-paren">(</span><em>sequence</em>, <em>distfile=None</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaEcXMLConverter.targetdistmaps"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaEcXMLConverter.targetdistmaps" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>distfile</strong> – param groupby: (Default value = None)</li> +<li><strong>sequence</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="staticmethod"> +<dt id="aria.conbox.converter.AriaEcXMLConverter.tbl2xml"> +<em class="property">static </em><code class="descname">tbl2xml</code><span class="sig-paren">(</span><em>outdir_path</em>, <em>molecule_path</em>, <em>tbl_paths</em>, <em>list_name</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaEcXMLConverter.tbl2xml"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaEcXMLConverter.tbl2xml" title="Permalink to this definition">¶</a></dt> +<dd><p>Read cns distance restraints in TBL format and convert them into ARIA +XML format</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> +<li><strong>outdir_path</strong> (<em>str</em>) – Path where ARIA XML files are saved</li> +<li><strong>molecule_path</strong> (<em>str</em>) – Path of molecule file in ARIA XML format</li> +<li><strong>tbl_paths</strong> (<em>list of str</em>) – List of distance restraints paths</li> +<li><strong>list_name</strong> (<em>str</em>) – Name of spec in tbl file which will be converted into XML format</li> +</ul> +</td> +</tr> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>xml_paths</strong> – List of distance restraints in ARIA XML format</p> +</td> +</tr> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">str</p> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.converter.AriaEcXMLConverter.write_ariaproject"> +<code class="descname">write_ariaproject</code><span class="sig-paren">(</span><em>aria_template</em>, <em>seqfile</em>, <em>dist_files</em>, <em>tbl_files</em>, <em>desclist=None</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaEcXMLConverter.write_ariaproject"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaEcXMLConverter.write_ariaproject" title="Permalink to this definition">¶</a></dt> +<dd><p>Generate ariaproject.xml file</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> +<li><strong>aria_template</strong> (<em>str</em>) – ariaproject.xml template path</li> +<li><strong>seqfile</strong> (<em>str</em>) – path of molecule sequence in SEQ format</li> +<li><strong>dist_files</strong> (<em>list of str</em>) – List of distance restraint files in ARIA XML format</li> +<li><strong>tbl_files</strong> (<em>dict</em>) – Distance restraint files in CNS TBL format</li> +<li><strong>desclist</strong> (<em>list of str</em>) – List of data descriptor for the actual run (Default value = None).</li> +</ul> +</td> +</tr> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"></p> +</td> +</tr> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">None</p> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.converter.AriaEcXMLConverter.write_map_restraint"> +<code class="descname">write_map_restraint</code><span class="sig-paren">(</span><em>protein</em>, <em>contactmap</em>, <em>nb_c</em>, <em>targetdists</em>, <em>scoremap=None</em>, <em>listname=''</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaEcXMLConverter.write_map_restraint"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaEcXMLConverter.write_map_restraint" title="Permalink to this definition">¶</a></dt> +<dd><p>Translate maplot in ARIA XML restraint</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>protein</strong> – </li> +<li><strong>listname</strong> – param contactmap: ResAtmMap for a protein (Default value = “â€)</li> +<li><strong>nb_c</strong> – Number of restraints selected</li> +<li><strong>targetdists</strong> (<em>dict</em>) – ResAtmMap for each atom for each amino acid</li> +<li><strong>scoremap</strong> – sorted list of contacts (Default value = None)</li> +<li><strong>contactmap</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.converter.AriaEcXMLConverter.write_maplist_restraints"> +<code class="descname">write_maplist_restraints</code><span class="sig-paren">(</span><em>maplist</em>, <em>targetmaps</em>, <em>protein</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaEcXMLConverter.write_maplist_restraints"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaEcXMLConverter.write_maplist_restraints" title="Permalink to this definition">¶</a></dt> +<dd><p>Generate ARIA XML restraints from maplist</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>maplist</strong> (<em>list of ResAtmMap</em><em> or </em><em>ResMap object</em>) – </li> +<li><strong>targetmaps</strong> (<em>dict</em>) – </li> +<li><strong>protein</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.converter.AriaEcXMLConverter.write_tbl_restraints"> +<code class="descname">write_tbl_restraints</code><span class="sig-paren">(</span><em>protein</em>, <em>hbmap=None</em>, <em>n_hb=None</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaEcXMLConverter.write_tbl_restraints"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaEcXMLConverter.write_tbl_restraints" title="Permalink to this definition">¶</a></dt> +<dd><p>Write tbl restraints</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> +<li><strong>protein</strong> – </li> +<li><strong>hbmap</strong> – Extra hbond map (eg: metapsicov hbonds) (Default value = None)</li> +<li><strong>n_hb</strong> – </li> +</ul> +</td> +</tr> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">{‘hbond’: hb_file, ‘dihed’: dihed_file, ‘ssdist’: ssdist_file}</p> +</td> +</tr> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">dict</p> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="aria.conbox.converter.AriaXMLConverter"> +<em class="property">class </em><code class="descclassname">aria.conbox.converter.</code><code class="descname">AriaXMLConverter</code><span class="sig-paren">(</span><em>settings</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaXMLConverter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaXMLConverter" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">aria.core.conversion.Converter</span></code>, <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p> +<p>XML converter for aria files</p> +<dl class="staticmethod"> +<dt id="aria.conbox.converter.AriaXMLConverter.deff"> +<em class="property">static </em><code class="descname">deff</code><span class="sig-paren">(</span><em>atm_dists</em>, <em>dpow=6</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaXMLConverter.deff"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaXMLConverter.deff" title="Permalink to this definition">¶</a></dt> +<dd><p>Compute aria effective distance from input distances</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>atm_dists</strong> (<em>list</em>) – list of atm-atm distances</li> +<li><strong>dpow</strong> (<em>int</em>) – effective distance exponant (Default value = 6)</li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.converter.AriaXMLConverter.molecule"> +<code class="descname">molecule</code><a class="headerlink" href="#aria.conbox.converter.AriaXMLConverter.molecule" title="Permalink to this definition">¶</a></dt> +<dd><p>aria.Molecule.Molecule object or None. If a structure has been loaded, +use it to update the molecule</p> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.converter.AriaXMLConverter.read_pdb"> +<code class="descname">read_pdb</code><span class="sig-paren">(</span><em>pdbpath</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaXMLConverter.read_pdb"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaXMLConverter.read_pdb" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>pdbpath</strong> – </td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.converter.AriaXMLConverter.read_seq"> +<code class="descname">read_seq</code><span class="sig-paren">(</span><em>seqpath</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaXMLConverter.read_seq"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaXMLConverter.read_seq" title="Permalink to this definition">¶</a></dt> +<dd><p>Load aria Molecule object from seq file</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>seqpath</strong> – </td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="staticmethod"> +<dt id="aria.conbox.converter.AriaXMLConverter.upd_mol"> +<em class="property">static </em><code class="descname">upd_mol</code><span class="sig-paren">(</span><em>molecule</em>, <em>structure</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaXMLConverter.upd_mol"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaXMLConverter.upd_mol" title="Permalink to this definition">¶</a></dt> +<dd><p>Update molecule object according to pdb structure</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>molecule</strong> – </li> +<li><strong>structure</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="staticmethod"> +<dt id="aria.conbox.converter.AriaXMLConverter.write_dihedral_tbl"> +<em class="property">static </em><code class="descname">write_dihedral_tbl</code><span class="sig-paren">(</span><em>secstructs</em>, <em>outfile</em>, <em>knrj=0.5</em>, <em>exp=2</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaXMLConverter.write_dihedral_tbl"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaXMLConverter.write_dihedral_tbl" title="Permalink to this definition">¶</a></dt> +<dd><p>Build dihedral angle restraints (phi, psi) in tbl format</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>secstructs</strong> – </li> +<li><strong>outfile</strong> – </li> +<li><strong>knrj</strong> – (Default value = 0.5)</li> +<li><strong>exp</strong> – (Default value = 2)</li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="staticmethod"> +<dt id="aria.conbox.converter.AriaXMLConverter.write_dist_xml"> +<em class="property">static </em><code class="descname">write_dist_xml</code><span class="sig-paren">(</span><em>dist_restraints</em>, <em>outfile</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaXMLConverter.write_dist_xml"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaXMLConverter.write_dist_xml" title="Permalink to this definition">¶</a></dt> +<dd><p>Write aria distance restraint xml file</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>dist_restraints</strong> – </li> +<li><strong>outfile</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.converter.AriaXMLConverter.write_hb_tbl"> +<code class="descname">write_hb_tbl</code><span class="sig-paren">(</span><em>protein</em>, <em>outfile</em>, <em>hbmap=None</em>, <em>dminus=0.0</em>, <em>dplus=0.5</em>, <em>n_hb=None</em>, <em>lr_type='main'</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaXMLConverter.write_hb_tbl"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaXMLConverter.write_hb_tbl" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>protein</strong> – param outfile:</li> +<li><strong>hbmap</strong> – param dminus: (Default value = None)</li> +<li><strong>dplus</strong> – param n_hb: (Default value = 0.5)</li> +<li><strong>lr_type</strong> – return: (Default value = ‘main’)</li> +<li><strong>outfile</strong> – </li> +<li><strong>dminus</strong> – (Default value = 0.0)</li> +<li><strong>n_hb</strong> – (Default value = None)</li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="staticmethod"> +<dt id="aria.conbox.converter.AriaXMLConverter.write_ssdist_tbl"> +<em class="property">static </em><code class="descname">write_ssdist_tbl</code><span class="sig-paren">(</span><em>sec_struct</em>, <em>ss_dist</em>, <em>outfile</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaXMLConverter.write_ssdist_tbl"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaXMLConverter.write_ssdist_tbl" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>sec_struct</strong> – </li> +<li><strong>ss_dist</strong> – </li> +<li><strong>outfile</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.converter.AriaXMLConverter.write_xmlseq"> +<code class="descname">write_xmlseq</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/converter.html#AriaXMLConverter.write_xmlseq"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.converter.AriaXMLConverter.write_xmlseq" title="Permalink to this definition">¶</a></dt> +<dd><p>Use aria xml pickler to generate xml molecule file</p> +</dd></dl> + +</dd></dl> + +</div> +<div class="section" id="module-aria.conbox.maplot"> +<span id="aria-conbox-maplot-module"></span><h2>aria.conbox.maplot module<a class="headerlink" href="#module-aria.conbox.maplot" title="Permalink to this headline">¶</a></h2> +<p>Input/Output aria_ec scripts</p> +<dl class="class"> +<dt id="aria.conbox.maplot.AriaEcContactMap"> +<em class="property">class </em><code class="descclassname">aria.conbox.maplot.</code><code class="descname">AriaEcContactMap</code><span class="sig-paren">(</span><em>settings</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/maplot.html#AriaEcContactMap"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.maplot.AriaEcContactMap" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p> +<p>Contact maplot class</p> +<dl class="method"> +<dt id="aria.conbox.maplot.AriaEcContactMap.run"> +<code class="descname">run</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/maplot.html#AriaEcContactMap.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.maplot.AriaEcContactMap.run" title="Permalink to this definition">¶</a></dt> +<dd><p>Contact map analysis command</p> +</dd></dl> + +</dd></dl> + +</div> +<div class="section" id="module-aria.conbox.ndconv"> +<span id="aria-conbox-ndconv-module"></span><h2>aria.conbox.ndconv module<a class="headerlink" href="#module-aria.conbox.ndconv" title="Permalink to this headline">¶</a></h2> +<p>Network deconvolution tool</p> +<dl class="function"> +<dt id="aria.conbox.ndconv.net_deconv"> +<code class="descclassname">aria.conbox.ndconv.</code><code class="descname">net_deconv</code><span class="sig-paren">(</span><em>npmat</em>, <em>beta=0.99</em>, <em>alpha=1</em>, <em>control=0</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/ndconv.html#net_deconv"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.ndconv.net_deconv" title="Permalink to this definition">¶</a></dt> +<dd><p>This is a python implementation/translation of network deconvolution by +MIT-KELLIS LAB</p> +<blockquote> +<div><p>LICENSE: MIT-KELLIS LAB</p> +<dl class="docutils"> +<dt>AUTHORS:</dt> +<dd>Algorithm was programmed by Soheil Feizi. +Paper authors are S. Feizi, D. Marbach, M. Medard and M. Kellis</dd> +</dl> +</div></blockquote> +<p>Python implementation: Gideon Rosenthal</p> +<p class="rubric">References</p> +<dl class="docutils"> +<dt>For more details, see the following paper:</dt> +<dd>Network Deconvolution as a General Method to Distinguish +Direct Dependencies over Networks +By: Soheil Feizi, Daniel Marbach, Muriel Medard and Manolis Kellis +Nature Biotechnology</dd> +</dl> +<blockquote> +<div>ND.m: network deconvolution</div></blockquote> +<p>DESCRIPTION:</p> +<blockquote> +<div><dl class="docutils"> +<dt>USAGE:</dt> +<dd>mat_nd = ND(npmat) +mat_nd = ND(npmat,beta) +mat_nd = ND(npmat,beta,alpha,control)</dd> +</dl> +</div></blockquote> +<p>INPUT ARGUMENTS:</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>npmat</strong> – Input matrix, if it is a square matrix, the program assumes +it is a relevance matrix where npmat(i,j) represents the +similarity content between nodes i and j. Elements of +matrix should be non-negative. +optional parameters:</li> +<li><strong>beta</strong> – Scaling parameter, the program maps the largest absolute +eigenvalue of the direct dependency matrix to beta. It +should be between 0 and 1. (Default value = 0.99)</li> +<li><strong>alpha</strong> – fraction of edges of the observed dependency matrix to be +kept in deconvolution process. (Default value = 1)</li> +<li><strong>control</strong> – if 0, displaying direct weights for observed +interactions, if 1, displaying direct weights for both +observed and +non-observed interactions. +OUTPUT ARGUMENTS: +mat_nd Output deconvolved matrix (direct dependency matrix). Its +components +represent direct edge weights of observed interactions. +Choosing top direct interactions (a cut-off) depends on +the application and +is not implemented in this code. +To apply ND on regulatory networks, follow steps explained in +Supplementary notes +1.4.1 and 2.1 and 2.3 of the paper. +In this implementation, input matrices are made symmetric. +<strong>**********************************************************************</strong> +loading scaling and thresholding parameters (Default value = 0)</li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +</div> +<div class="section" id="module-aria.conbox.pdbdist"> +<span id="aria-conbox-pdbdist-module"></span><h2>aria.conbox.pdbdist module<a class="headerlink" href="#module-aria.conbox.pdbdist" title="Permalink to this headline">¶</a></h2> +<p>PDB distance distribution generation</p> +<dl class="class"> +<dt id="aria.conbox.pdbdist.PDBDist"> +<em class="property">class </em><code class="descclassname">aria.conbox.pdbdist.</code><code class="descname">PDBDist</code><span class="sig-paren">(</span><em>settings</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/pdbdist.html#PDBDist"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.pdbdist.PDBDist" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p> +<p>Extract pdb distance distribution from culled list of pdb files provided by +PICSES server [G. Wang and R. L. Dunbrack, Jr. PISCES: a protein sequence +culling server. Bioinformatics, 19:1589-1591, 2003.] with Bio.PDB tools +[Hamelryck, T., Manderick, B. (2003) PDB pdbparser and structure class +implemented in Python. Bioinformatics 19: 2308–2310]</p> +<dl class="staticmethod"> +<dt id="aria.conbox.pdbdist.PDBDist.get_proteinblocks"> +<em class="property">static </em><code class="descname">get_proteinblocks</code><span class="sig-paren">(</span><em>pdb</em>, <em>chain</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/pdbdist.html#PDBDist.get_proteinblocks"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.pdbdist.PDBDist.get_proteinblocks" title="Permalink to this definition">¶</a></dt> +<dd><p>Get Protein Block assignment index for chain with pbxplore</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>pdb</strong> (<em>pdb file path</em>) – </li> +<li><strong>chain</strong> (<em>str</em>) – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="staticmethod"> +<dt id="aria.conbox.pdbdist.PDBDist.get_secstructs"> +<em class="property">static </em><code class="descname">get_secstructs</code><span class="sig-paren">(</span><em>backbone</em>, <em>dssp_dict</em>, <em>chain</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/pdbdist.html#PDBDist.get_secstructs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.pdbdist.PDBDist.get_secstructs" title="Permalink to this definition">¶</a></dt> +<dd><p>Return related secondary structure dictionary for each backbone residue</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>backbone</strong> – List of bacbkone residues</li> +<li><strong>dssp_dict</strong> – </li> +<li><strong>chain</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.pdbdist.PDBDist.pdbdists"> +<code class="descname">pdbdists</code><span class="sig-paren">(</span><em>pdb</em>, <em>pdbid</em>, <em>chain</em>, <em>pair_list='all'</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/pdbdist.html#PDBDist.pdbdists"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.pdbdist.PDBDist.pdbdists" title="Permalink to this definition">¶</a></dt> +<dd><p>Get distance matrix from pdb file and write distances into output file</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> +<li><strong>pdb</strong> (<em>str</em>) – Path of pdb file</li> +<li><strong>pdbid</strong> (<em>str</em>) – PDB id</li> +<li><strong>chain</strong> (<em>str</em>) – Chain id</li> +<li><strong>pair_list</strong> (<em>{'all'</em><em>, </em><em>'min'</em><em>, </em><em>'heavy'}</em>) – Defining if we generate a distance distribution for a minimal set +of atom pairs, heavy pairs or all atom pairs (Default value = “allâ€)</li> +</ul> +</td> +</tr> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"><strong>dists</strong></p> +</td> +</tr> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">obj:</th><td class="field-body"><cite>list</cite> of :obj: <cite>OrderedDict</cite></td> +</tr> +</tbody> +</table> +</p> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.pdbdist.PDBDist.run"> +<code class="descname">run</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/pdbdist.html#PDBDist.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.pdbdist.PDBDist.run" title="Permalink to this definition">¶</a></dt> +<dd><p>main method</p> +</dd></dl> + +</dd></dl> + +</div> +<div class="section" id="module-aria.conbox.pdbqual"> +<span id="aria-conbox-pdbqual-module"></span><h2>aria.conbox.pdbqual module<a class="headerlink" href="#module-aria.conbox.pdbqual" title="Permalink to this headline">¶</a></h2> +<p>Created on 9/5/16 +@author: fallain</p> +<p>Derived from qual.py script by Dr. Benjamin Bardiaux</p> +<dl class="class"> +<dt id="aria.conbox.pdbqual.AriaEcPdbqual"> +<em class="property">class </em><code class="descclassname">aria.conbox.pdbqual.</code><code class="descname">AriaEcPdbqual</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/pdbqual.html#AriaEcPdbqual"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.pdbqual.AriaEcPdbqual" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">aria.conbox.common.CommandProtocol</span></code></p> +<p>Quality pdb tool</p> +<dl class="method"> +<dt id="aria.conbox.pdbqual.AriaEcPdbqual.run"> +<code class="descname">run</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/pdbqual.html#AriaEcPdbqual.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.pdbqual.AriaEcPdbqual.run" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"></td> +</tr> +</tbody> +</table> +</dd></dl> + +</dd></dl> + +</div> +<div class="section" id="module-aria.conbox.protein"> +<span id="aria-conbox-protein-module"></span><h2>aria.conbox.protein module<a class="headerlink" href="#module-aria.conbox.protein" title="Permalink to this headline">¶</a></h2> +<p>Secondary structure list</p> +<dl class="class"> +<dt id="aria.conbox.protein.AminoAcidSequence"> +<em class="property">class </em><code class="descclassname">aria.conbox.protein.</code><code class="descname">AminoAcidSequence</code><span class="sig-paren">(</span><em>topologyfile</em>, <em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protein.html#AminoAcidSequence"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protein.AminoAcidSequence" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">aria.core.legacy.SequenceList.SequenceList</span></code>, <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p> +<p>Amino acid sequence</p> +<dl class="attribute"> +<dt id="aria.conbox.protein.AminoAcidSequence.end_reg"> +<code class="descname">end_reg</code><em class="property"> = <_sre.SRE_Pattern object></em><a class="headerlink" href="#aria.conbox.protein.AminoAcidSequence.end_reg" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protein.AminoAcidSequence.humanidx"> +<code class="descname">humanidx</code><a class="headerlink" href="#aria.conbox.protein.AminoAcidSequence.humanidx" title="Permalink to this definition">¶</a></dt> +<dd><p><em>return</em></p> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protein.AminoAcidSequence.read"> +<code class="descname">read</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protein.html#AminoAcidSequence.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protein.AminoAcidSequence.read" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>filename</strong> – return:</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protein.AminoAcidSequence.readtopo"> +<code class="descname">readtopo</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protein.html#AminoAcidSequence.readtopo"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protein.AminoAcidSequence.readtopo" title="Permalink to this definition">¶</a></dt> +<dd><p>Parse topology file for amino acids +:return:</p> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protein.AminoAcidSequence.restatement_reg"> +<code class="descname">restatement_reg</code><em class="property"> = {u'dihedral': <_sre.SRE_Pattern object at 0x4ced770>, u'acce': <_sre.SRE_Pattern object>, u'improper': <_sre.SRE_Pattern object at 0x4c62630>, u'atom': <_sre.SRE_Pattern object at 0x4d63060>, u'dono': <_sre.SRE_Pattern object>, u'bond': <_sre.SRE_Pattern object>}</em><a class="headerlink" href="#aria.conbox.protein.AminoAcidSequence.restatement_reg" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protein.AminoAcidSequence.startres_reg"> +<code class="descname">startres_reg</code><em class="property"> = <_sre.SRE_Pattern object></em><a class="headerlink" href="#aria.conbox.protein.AminoAcidSequence.startres_reg" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protein.AminoAcidSequence.topology"> +<code class="descname">topology</code><a class="headerlink" href="#aria.conbox.protein.AminoAcidSequence.topology" title="Permalink to this definition">¶</a></dt> +<dd><p>Topology dict with 3l code as dict key +:return:</p> +</dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="aria.conbox.protein.Protein"> +<em class="property">class </em><code class="descclassname">aria.conbox.protein.</code><code class="descname">Protein</code><span class="sig-paren">(</span><em>sett</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protein.html#Protein"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protein.Protein" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p> +<p>Protein class</p> +<dl class="method"> +<dt id="aria.conbox.protein.Protein.set_aa_sequence"> +<code class="descname">set_aa_sequence</code><span class="sig-paren">(</span><em>filename</em>, <em>ssidx=False</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protein.html#Protein.set_aa_sequence"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protein.Protein.set_aa_sequence" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>filename</strong> – param ssidx:</li> +<li><strong>ssidx</strong> – (Default value = False)</li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protein.Protein.set_sec_struct"> +<code class="descname">set_sec_struct</code><span class="sig-paren">(</span><em>filename</em>, <em>ssdist_filename=u''</em>, <em>ssidx=False</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protein.html#Protein.set_sec_struct"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protein.Protein.set_sec_struct" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>filename</strong> – param ssdist_filename:</li> +<li><strong>ssidx</strong> – return: (Default value = False)</li> +<li><strong>ssdist_filename</strong> – (Default value = ‘’)</li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="staticmethod"> +<dt id="aria.conbox.protein.Protein.sync_index"> +<em class="property">static </em><code class="descname">sync_index</code><span class="sig-paren">(</span><em>index1</em>, <em>index2</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protein.html#Protein.sync_index"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protein.Protein.sync_index" title="Permalink to this definition">¶</a></dt> +<dd><p>Return humanidx with upper min from existing humanidx</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>index1</strong> – param index2:</li> +<li><strong>index2</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protein.Protein.topology"> +<code class="descname">topology</code><a class="headerlink" href="#aria.conbox.protein.Protein.topology" title="Permalink to this definition">¶</a></dt> +<dd><p><em>return</em></p> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protein.Protein.write_seq"> +<code class="descname">write_seq</code><span class="sig-paren">(</span><em>outfile</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protein.html#Protein.write_seq"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protein.Protein.write_seq" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>outfile</strong> – return:</td> +</tr> +</tbody> +</table> +</dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="aria.conbox.protein.SsList"> +<em class="property">class </em><code class="descclassname">aria.conbox.protein.</code><code class="descname">SsList</code><span class="sig-paren">(</span><em>sett</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protein.html#SsList"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protein.SsList" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p> +<p>Reader for secondary prediction structure files</p> +<dl class="method"> +<dt id="aria.conbox.protein.SsList.check_filetype"> +<code class="descname">check_filetype</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protein.html#SsList.check_filetype"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protein.SsList.check_filetype" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>filename</strong> – return:</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protein.SsList.index"> +<code class="descname">index</code><a class="headerlink" href="#aria.conbox.protein.SsList.index" title="Permalink to this definition">¶</a></dt> +<dd><p><em>return</em></p> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protein.SsList.indxplus_reg"> +<code class="descname">indxplus_reg</code><em class="property"> = <_sre.SRE_Pattern object at 0x4d527b0></em><a class="headerlink" href="#aria.conbox.protein.SsList.indxplus_reg" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protein.SsList.psipred2_reg"> +<code class="descname">psipred2_reg</code><em class="property"> = <_sre.SRE_Pattern object></em><a class="headerlink" href="#aria.conbox.protein.SsList.psipred2_reg" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protein.SsList.psipred3_reg"> +<code class="descname">psipred3_reg</code><em class="property"> = <_sre.SRE_Pattern object at 0x4d52fd0></em><a class="headerlink" href="#aria.conbox.protein.SsList.psipred3_reg" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protein.SsList.psipred_reg"> +<code class="descname">psipred_reg</code><em class="property"> = <_sre.SRE_Pattern object></em><a class="headerlink" href="#aria.conbox.protein.SsList.psipred_reg" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protein.SsList.read"> +<code class="descname">read</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protein.html#SsList.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protein.SsList.read" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>filename</strong> – return:</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protein.SsList.read_indextableplus"> +<code class="descname">read_indextableplus</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protein.html#SsList.read_indextableplus"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protein.SsList.read_indextableplus" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>filename</strong> – return:</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protein.SsList.read_psipred"> +<code class="descname">read_psipred</code><span class="sig-paren">(</span><em>filename</em>, <em>ss2=False</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protein.html#SsList.read_psipred"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protein.SsList.read_psipred" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>filename</strong> – </td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protein.SsList.read_ssdist"> +<code class="descname">read_ssdist</code><span class="sig-paren">(</span><em>ssdistpath=None</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protein.html#SsList.read_ssdist"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protein.SsList.read_ssdist" title="Permalink to this definition">¶</a></dt> +<dd><p>Read average dist file generated using PDB</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>ssdistpath</strong> – return: (Default value = None)</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protein.SsList.seq_sublist"> +<code class="descname">seq_sublist</code><span class="sig-paren">(</span><em>sequence</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protein.html#SsList.seq_sublist"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protein.SsList.seq_sublist" title="Permalink to this definition">¶</a></dt> +<dd><p>Check and adjust sslist with given sequence</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>sequence</strong> – input amino acid sequence (one letter format)</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protein.SsList.sequence"> +<code class="descname">sequence</code><a class="headerlink" href="#aria.conbox.protein.SsList.sequence" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protein.SsList.ss_dist_reg"> +<code class="descname">ss_dist_reg</code><em class="property"> = <_sre.SRE_Pattern object></em><a class="headerlink" href="#aria.conbox.protein.SsList.ss_dist_reg" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protein.SsList.write_ssfasta"> +<code class="descname">write_ssfasta</code><span class="sig-paren">(</span><em>filename</em>, <em>desc=u'pdbid'</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protein.html#SsList.write_ssfasta"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protein.SsList.write_ssfasta" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>filename</strong> – param desc:</li> +<li><strong>desc</strong> – (Default value = “pdbidâ€)</li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +</dd></dl> + +</div> +<div class="section" id="module-aria.conbox.protmap"> +<span id="aria-conbox-protmap-module"></span><h2>aria.conbox.protmap module<a class="headerlink" href="#module-aria.conbox.protmap" title="Permalink to this headline">¶</a></h2> +<p>ARIA Evolutionary Constraints Tools</p> +<dl class="class"> +<dt id="aria.conbox.protmap.AaAtmMap"> +<em class="property">class </em><code class="descclassname">aria.conbox.protmap.</code><code class="descname">AaAtmMap</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#AaAtmMap"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.AaAtmMap" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <a class="reference internal" href="#aria.conbox.protmap.AaMap" title="aria.conbox.protmap.AaMap"><code class="xref py py-class docutils literal"><span class="pre">aria.conbox.protmap.AaMap</span></code></a></p> +<p>Amino acid map with atom levels</p> +<dl class="method"> +<dt id="aria.conbox.protmap.AaAtmMap.contact_map"> +<code class="descname">contact_map</code><span class="sig-paren">(</span><em>contactdef</em>, <em>scsc_min=None</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#AaAtmMap.contact_map"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.AaAtmMap.contact_map" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>contactdef</strong> – </li> +<li><strong>scsc_min</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.AaAtmMap.copy"> +<code class="descname">copy</code><span class="sig-paren">(</span><em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#AaAtmMap.copy"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.AaAtmMap.copy" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>kwargs</strong> – </li> +<li><strong>**kwargs</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.AaAtmMap.create_heatmap"> +<code class="descname">create_heatmap</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#AaAtmMap.create_heatmap"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.AaAtmMap.create_heatmap" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.AaAtmMap.create_index"> +<code class="descname">create_index</code><span class="sig-paren">(</span><em>sequence</em>, <em>atom_types='min'</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#AaAtmMap.create_index"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.AaAtmMap.create_index" title="Permalink to this definition">¶</a></dt> +<dd><p>Update Aa index with atoms</p> +</dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="aria.conbox.protmap.AaMap"> +<em class="property">class </em><code class="descclassname">aria.conbox.protmap.</code><code class="descname">AaMap</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#AaMap"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.AaMap" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <a class="reference internal" href="#aria.conbox.protmap.ProteinMap" title="aria.conbox.protmap.ProteinMap"><code class="xref py py-class docutils literal"><span class="pre">aria.conbox.protmap.ProteinMap</span></code></a></p> +<p>Amino Acid Distance Matrix</p> +<dl class="method"> +<dt id="aria.conbox.protmap.AaMap.contact_map"> +<code class="descname">contact_map</code><span class="sig-paren">(</span><em>contactdef</em>, <em>scsc_min=None</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#AaMap.contact_map"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.AaMap.contact_map" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>contactdef</strong> – </li> +<li><strong>scsc_min</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.AaMap.copy"> +<code class="descname">copy</code><span class="sig-paren">(</span><em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#AaMap.copy"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.AaMap.copy" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>kwargs</strong> – </li> +<li><strong>**kwargs</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.AaMap.create_heatmap"> +<code class="descname">create_heatmap</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#AaMap.create_heatmap"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.AaMap.create_heatmap" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.AaMap.create_index"> +<code class="descname">create_index</code><span class="sig-paren">(</span><em>sequence</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#AaMap.create_index"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.AaMap.create_index" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.AaMap.reduce"> +<code class="descname">reduce</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#AaMap.reduce"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.AaMap.reduce" title="Permalink to this definition">¶</a></dt> +<dd><p>Reduce level of the contactmap</p> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protmap.AaMap.sequence"> +<code class="descname">sequence</code><a class="headerlink" href="#aria.conbox.protmap.AaMap.sequence" title="Permalink to this definition">¶</a></dt> +<dd><p>returns: String containing all amino acid 1L code +:rtype: str</p> +</dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="aria.conbox.protmap.AtmMap"> +<em class="property">class </em><code class="descclassname">aria.conbox.protmap.</code><code class="descname">AtmMap</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#AtmMap"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.AtmMap" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <a class="reference internal" href="#aria.conbox.protmap.Map" title="aria.conbox.protmap.Map"><code class="xref py py-class docutils literal"><span class="pre">aria.conbox.protmap.Map</span></code></a></p> +<p>Atom Distance Matrix</p> +<dl class="method"> +<dt id="aria.conbox.protmap.AtmMap.copy"> +<code class="descname">copy</code><span class="sig-paren">(</span><em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#AtmMap.copy"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.AtmMap.copy" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>kwargs</strong> – </li> +<li><strong>**kwargs</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.AtmMap.create_index"> +<code class="descname">create_index</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#AtmMap.create_index"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.AtmMap.create_index" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"></td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.AtmMap.reduce"> +<code class="descname">reduce</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#AtmMap.reduce"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.AtmMap.reduce" title="Permalink to this definition">¶</a></dt> +<dd><p>Reduce level of the contactmap</p> +</dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="aria.conbox.protmap.Map"> +<em class="property">class </em><code class="descclassname">aria.conbox.protmap.</code><code class="descname">Map</code><span class="sig-paren">(</span><em>index=None</em>, <em>columns=None</em>, <em>mtype='distance'</em>, <em>duplicate_levels=False</em>, <em>data=None</em>, <em>dtype=None</em>, <em>sym=True</em>, <em>desc=''</em>, <em>path=''</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#Map"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.Map" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">pandas.core.frame.DataFrame</span></code></p> +<p>Distance/contact matrix</p> +<dl class="method"> +<dt id="aria.conbox.protmap.Map.check_type"> +<code class="descname">check_type</code><span class="sig-paren">(</span><em>mtype</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#Map.check_type"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.Map.check_type" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>mtype</strong> – return:</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.Map.copy"> +<code class="descname">copy</code><span class="sig-paren">(</span><em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#Map.copy"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.Map.copy" title="Permalink to this definition">¶</a></dt> +<dd><p>Copy the current map</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>**kwargs</strong> – </td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protmap.Map.mtype_choices"> +<code class="descname">mtype_choices</code><em class="property"> = {'distance': <type 'float'>, 'contact': <type 'bool'>, 'score': <type 'float'>}</em><a class="headerlink" href="#aria.conbox.protmap.Map.mtype_choices" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.Map.reduce"> +<code class="descname">reduce</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#Map.reduce"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.Map.reduce" title="Permalink to this definition">¶</a></dt> +<dd><p>Low complexcity dataframe</p> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.Map.remove"> +<code class="descname">remove</code><span class="sig-paren">(</span><em>rm_list</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#Map.remove"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.Map.remove" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>rm_list</strong> – </td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.Map.set_value"> +<code class="descname">set_value</code><span class="sig-paren">(</span><em>index</em>, <em>col</em>, <em>value</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#Map.set_value"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.Map.set_value" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>index</strong> – param col:</li> +<li><strong>value</strong> – param kwargs:</li> +<li><strong>col</strong> – </li> +<li><strong>**kwargs</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.Map.sortedset"> +<code class="descname">sortedset</code><span class="sig-paren">(</span><em>human_idx=False</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#Map.sortedset"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.Map.sortedset" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>human_idx</strong> – (Default value = False)</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.Map.subfill"> +<code class="descname">subfill</code><span class="sig-paren">(</span><em>pairdict</em>, <em>level=0</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#Map.subfill"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.Map.subfill" title="Permalink to this definition">¶</a></dt> +<dd><p>Fill map with dict giving</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>pairdict</strong> – param level:</li> +<li><strong>level</strong> – (Default value = 0)</li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.Map.to_series"> +<code class="descname">to_series</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#Map.to_series"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.Map.to_series" title="Permalink to this definition">¶</a></dt> +<dd><p>Return panda series related to lower triangle values</p> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.Map.topmap"> +<code class="descname">topmap</code><span class="sig-paren">(</span><em>scoremap</em>, <em>nb_topcontact</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#Map.topmap"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.Map.topmap" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>scoremap</strong> – param nb_topcontact:</li> +<li><strong>nb_topcontact</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.Map.update"> +<code class="descname">update</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#Map.update"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.Map.update" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>args</strong> – param kwargs:</li> +<li><strong>*args</strong> – </li> +<li><strong>**kwargs</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="aria.conbox.protmap.MapFilter"> +<em class="property">class </em><code class="descclassname">aria.conbox.protmap.</code><code class="descname">MapFilter</code><span class="sig-paren">(</span><em>settings</em>, <em>nofilter=False</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#MapFilter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.MapFilter" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p> +<dl class="docutils"> +<dt>Filter maplot/distancemap</dt> +<dd>nd : Network deconvolution +pos : remove close contacts +cons : remove contacts with highly conservated residues +cys-cys : unicity of ss contacts +ssclash : secondary structure conflict</dd> +</dl> +<dl class="attribute"> +<dt id="aria.conbox.protmap.MapFilter.clash_dict"> +<code class="descname">clash_dict</code><em class="property"> = {'cys': {'clash': '222', 'desc': 'disulfide bond unicity'}, 'cons': {'clash': '888', 'desc': 'high conservation'}, 'pos': {'clash': 'physical proximity', 'desc': 'sequence position'}, 'ssclash': {'clash': '999', 'desc': 'secondary structure prediction conflict'}}</em><a class="headerlink" href="#aria.conbox.protmap.MapFilter.clash_dict" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.MapFilter.cons_filter"> +<code class="descname">cons_filter</code><span class="sig-paren">(</span><em>mapdict</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#MapFilter.cons_filter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.MapFilter.cons_filter" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>mapdict</strong> – </li> +<li><strong>**kwargs</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="staticmethod"> +<dt id="aria.conbox.protmap.MapFilter.cys_filter"> +<em class="property">static </em><code class="descname">cys_filter</code><span class="sig-paren">(</span><em>mapdict</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#MapFilter.cys_filter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.MapFilter.cys_filter" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>mapdict</strong> – </li> +<li><strong>**kwargs</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protmap.MapFilter.filter_types"> +<code class="descname">filter_types</code><em class="property"> = ('pos', 'cons', 'ssclash', 'cys')</em><a class="headerlink" href="#aria.conbox.protmap.MapFilter.filter_types" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.MapFilter.nd_filter"> +<code class="descname">nd_filter</code><span class="sig-paren">(</span><em>mapdict</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#MapFilter.nd_filter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.MapFilter.nd_filter" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>mapdict</strong> – </td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.MapFilter.pos_filter"> +<code class="descname">pos_filter</code><span class="sig-paren">(</span><em>mapdict</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#MapFilter.pos_filter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.MapFilter.pos_filter" title="Permalink to this definition">¶</a></dt> +<dd><p>Position filter on maplot</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>kwargs</strong> – param mapdict: dict with maplot key</li> +<li><strong>mapdict</strong> – </li> +<li><strong>**kwargs</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="staticmethod"> +<dt id="aria.conbox.protmap.MapFilter.ssclash_filter"> +<em class="property">static </em><code class="descname">ssclash_filter</code><span class="sig-paren">(</span><em>mapdict</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#MapFilter.ssclash_filter"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.MapFilter.ssclash_filter" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>mapdict</strong> – param kwargs:</li> +<li><strong>**kwargs</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="staticmethod"> +<dt id="aria.conbox.protmap.MapFilter.write_filtout"> +<em class="property">static </em><code class="descname">write_filtout</code><span class="sig-paren">(</span><em>clash_dict</em>, <em>desc_dict</em>, <em>contactlist</em>, <em>outdir=''</em>, <em>outprefix='protein'</em>, <em>clashlist=None</em>, <em>human_idx=True</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#MapFilter.write_filtout"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.MapFilter.write_filtout" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>clash_dict</strong> – </li> +<li><strong>desc_dict</strong> – </li> +<li><strong>contactlist</strong> – </li> +<li><strong>outdir</strong> – (Default value = “â€)</li> +<li><strong>outprefix</strong> – (Default value = “proteinâ€)</li> +<li><strong>clashlist</strong> – (Default value = None)</li> +<li><strong>human_idx</strong> – (Default value = True)</li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="aria.conbox.protmap.ProtMapCollection"> +<em class="property">class </em><code class="descclassname">aria.conbox.protmap.</code><code class="descname">ProtMapCollection</code><span class="sig-paren">(</span><em>settings</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ProtMapCollection"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ProtMapCollection" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p> +<p>Group all protein maps</p> +<dl class="attribute"> +<dt id="aria.conbox.protmap.ProtMapCollection.allcontactmap"> +<code class="descname">allcontactmap</code><a class="headerlink" href="#aria.conbox.protmap.ProtMapCollection.allcontactmap" title="Permalink to this definition">¶</a></dt> +<dd><p>Atom level contact map. If alldistmap exists, return the maplot +form +:return:</p> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protmap.ProtMapCollection.alldistmap"> +<code class="descname">alldistmap</code><a class="headerlink" href="#aria.conbox.protmap.ProtMapCollection.alldistmap" title="Permalink to this definition">¶</a></dt> +<dd><p>Atom level distance map. +:return:</p> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protmap.ProtMapCollection.allscoremap"> +<code class="descname">allscoremap</code><a class="headerlink" href="#aria.conbox.protmap.ProtMapCollection.allscoremap" title="Permalink to this definition">¶</a></dt> +<dd><p>Atom level score map +:return:</p> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protmap.ProtMapCollection.distmap"> +<code class="descname">distmap</code><a class="headerlink" href="#aria.conbox.protmap.ProtMapCollection.distmap" title="Permalink to this definition">¶</a></dt> +<dd><p><em>return</em></p> +</dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="aria.conbox.protmap.ProteinMap"> +<em class="property">class </em><code class="descclassname">aria.conbox.protmap.</code><code class="descname">ProteinMap</code><span class="sig-paren">(</span><em>sequence</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ProteinMap"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ProteinMap" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <a class="reference internal" href="#aria.conbox.protmap.Map" title="aria.conbox.protmap.Map"><code class="xref py py-class docutils literal"><span class="pre">aria.conbox.protmap.Map</span></code></a></p> +<p>Abstract class for protein contact map objects</p> +<dl class="attribute"> +<dt id="aria.conbox.protmap.ProteinMap.all_reg"> +<code class="descname">all_reg</code><em class="property"> = <_sre.SRE_Pattern object></em><a class="headerlink" href="#aria.conbox.protmap.ProteinMap.all_reg" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="staticmethod"> +<dt id="aria.conbox.protmap.ProteinMap.classification_metrics"> +<em class="property">static </em><code class="descname">classification_metrics</code><span class="sig-paren">(</span><em>y_true</em>, <em>y_pred</em>, <em>y_scores=None</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ProteinMap.classification_metrics"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ProteinMap.classification_metrics" title="Permalink to this definition">¶</a></dt> +<dd><p>Compute classification metrics</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>y_true</strong> (<em>numpy array of true values</em>) – </li> +<li><strong>y_pred</strong> (<em>numpy array of predicted values</em>) – </li> +<li><strong>y_scores</strong> (<em>numpy array of prediction scores</em>) – (Default value = None)</li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.ProteinMap.compare_contactmap"> +<code class="descname">compare_contactmap</code><span class="sig-paren">(</span><em>cmpmap</em>, <em>contactlist</em>, <em>outprefix</em>, <em>outdir=''</em>, <em>distmap=None</em>, <em>human_idx=True</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ProteinMap.compare_contactmap"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ProteinMap.compare_contactmap" title="Permalink to this definition">¶</a></dt> +<dd><p>Compare 2 contact map and plot differences</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>cmpmap</strong> – param contactlist:</li> +<li><strong>outprefix</strong> – param outdir:</li> +<li><strong>distmap</strong> – param human_idx: (Default value = None)</li> +<li><strong>contactlist</strong> – </li> +<li><strong>outdir</strong> – (Default value = “â€)</li> +<li><strong>human_idx</strong> – (Default value = True)</li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.ProteinMap.compareplot"> +<code class="descname">compareplot</code><span class="sig-paren">(</span><em>protmap</em>, <em>save_fig=True</em>, <em>alpha=None</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ProteinMap.compareplot"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ProteinMap.compareplot" title="Permalink to this definition">¶</a></dt> +<dd><p>Compare 2 contact map and plot differences</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>protmap</strong> – param save_fig:</li> +<li><strong>alpha</strong> – param kwargs: (Default value = None)</li> +<li><strong>save_fig</strong> – (Default value = True)</li> +<li><strong>**kwargs</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.ProteinMap.contact_list"> +<code class="descname">contact_list</code><span class="sig-paren">(</span><em>human_idx=False</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ProteinMap.contact_list"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ProteinMap.contact_list" title="Permalink to this definition">¶</a></dt> +<dd><p>Return contact list</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>human_idx</strong> – return: (Default value = False)</td> +</tr> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"></td> +</tr> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">list</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.ProteinMap.contact_map"> +<code class="descname">contact_map</code><span class="sig-paren">(</span><em>contactdef</em>, <em>scsc_min=None</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ProteinMap.contact_map"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ProteinMap.contact_map" title="Permalink to this definition">¶</a></dt> +<dd><p>Generate contact map</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>contactdef</strong> – param scsc_min:</li> +<li><strong>scsc_min</strong> – (Default value = None)</li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.ProteinMap.contactset"> +<code class="descname">contactset</code><span class="sig-paren">(</span><em>human_idx=False</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ProteinMap.contactset"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ProteinMap.contactset" title="Permalink to this definition">¶</a></dt> +<dd><p>Remove duplicate in contact_list</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>human_idx</strong> – return: (Default value = False)</td> +</tr> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"></td> +</tr> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">list</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.ProteinMap.copy"> +<code class="descname">copy</code><span class="sig-paren">(</span><em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ProteinMap.copy"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ProteinMap.copy" title="Permalink to this definition">¶</a></dt> +<dd><p>Copy dataframe and related attributes of the map</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>**kwargs</strong> – </td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.ProteinMap.create_heatmap"> +<code class="descname">create_heatmap</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ProteinMap.create_heatmap"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ProteinMap.create_heatmap" title="Permalink to this definition">¶</a></dt> +<dd><p>Generate heatmap</p> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.ProteinMap.create_index"> +<code class="descname">create_index</code><span class="sig-paren">(</span><em>sequence</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ProteinMap.create_index"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ProteinMap.create_index" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>sequence</strong> – </li> +<li><strong>kwargs</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protmap.ProteinMap.distance_method"> +<code class="descname">distance_method</code><em class="property"> = 'euclidean'</em><a class="headerlink" href="#aria.conbox.protmap.ProteinMap.distance_method" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protmap.ProteinMap.heavy_reg"> +<code class="descname">heavy_reg</code><em class="property"> = <_sre.SRE_Pattern object></em><a class="headerlink" href="#aria.conbox.protmap.ProteinMap.heavy_reg" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protmap.ProteinMap.maplot"> +<code class="descname">maplot</code><a class="headerlink" href="#aria.conbox.protmap.ProteinMap.maplot" title="Permalink to this definition">¶</a></dt> +<dd><p>Contact map plot +:return:</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>linewidths</strong> – (Default value = 0.0)</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.ProteinMap.plotflush"> +<code class="descname">plotflush</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ProteinMap.plotflush"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ProteinMap.plotflush" title="Permalink to this definition">¶</a></dt> +<dd><p>Flush contact map plot</p> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.ProteinMap.reduce"> +<code class="descname">reduce</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ProteinMap.reduce"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ProteinMap.reduce" title="Permalink to this definition">¶</a></dt> +<dd><p>Lower index level if multi index</p> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.ProteinMap.report"> +<code class="descname">report</code><span class="sig-paren">(</span><em>cmpmap</em>, <em>scoremap=None</em>, <em>outprefix=''</em>, <em>outdir=''</em>, <em>plotdir=''</em>, <em>plot_ext='pdf'</em>, <em>plotag=True</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ProteinMap.report"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ProteinMap.report" title="Permalink to this definition">¶</a></dt> +<dd><p>Generate contact map report file</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>cmpmap</strong> – </li> +<li><strong>scoremap</strong> – (Default value = None)</li> +<li><strong>outprefix</strong> – (Default value = “â€)</li> +<li><strong>outdir</strong> – (Default value = “â€)</li> +<li><strong>plotdir</strong> – (Default value = “â€)</li> +<li><strong>plot_ext</strong> – (Default value = “pdfâ€)</li> +<li><strong>plotag</strong> – (Default value = True)</li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.ProteinMap.saveplot"> +<code class="descname">saveplot</code><span class="sig-paren">(</span><em>outdir=''</em>, <em>outprefix='protein'</em>, <em>size_fig=10</em>, <em>plot_ext='pdf'</em>, <em>plot_dpi=200</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ProteinMap.saveplot"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ProteinMap.saveplot" title="Permalink to this definition">¶</a></dt> +<dd><p>Save plot</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>outdir</strong> – param outprefix: (Default value = ‘’)</li> +<li><strong>size_fig</strong> – param plot_ext: (Default value = 10)</li> +<li><strong>plot_dpi</strong> – (Default value = 200)</li> +<li><strong>outprefix</strong> – (Default value = “proteinâ€)</li> +<li><strong>plot_ext</strong> – (Default value = “pdfâ€)</li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protmap.ProteinMap.sequence"> +<code class="descname">sequence</code><a class="headerlink" href="#aria.conbox.protmap.ProteinMap.sequence" title="Permalink to this definition">¶</a></dt> +<dd><p>Specific sequence related to the map in a string +:returns: +:rtype: str</p> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.ProteinMap.write_contacts"> +<code class="descname">write_contacts</code><span class="sig-paren">(</span><em>filename</em>, <em>outdir=''</em>, <em>prefix=''</em>, <em>human_idx=True</em>, <em>scoremap=None</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ProteinMap.write_contacts"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ProteinMap.write_contacts" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>prefix</strong> – </li> +<li><strong>filename</strong> – param outdir:</li> +<li><strong>human_idx</strong> – param scoremap: (Default value = True)</li> +<li><strong>outdir</strong> – (Default value = “â€)</li> +<li><strong>scoremap</strong> – (Default value = None)</li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="aria.conbox.protmap.ResAtmMap"> +<em class="property">class </em><code class="descclassname">aria.conbox.protmap.</code><code class="descname">ResAtmMap</code><span class="sig-paren">(</span><em>sequence</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ResAtmMap"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ResAtmMap" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <a class="reference internal" href="#aria.conbox.protmap.ProteinMap" title="aria.conbox.protmap.ProteinMap"><code class="xref py py-class docutils literal"><span class="pre">aria.conbox.protmap.ProteinMap</span></code></a></p> +<p>Protein distance/contact matrix for all atom pairs. If no sequence given, +protein distance/contact matrix for all amino acids +Ex: +residue PHE1 atom CD1 CD2 CB CA CG CZ +residue atom +PHE1 CD1 0.000000 2.394145 2.455440 3.269219 1.391024 2.421148</p> +<blockquote> +<div>CD2 2.394145 0.000000 2.509243 3.407996 1.379875 2.401098 +CB 2.455440 2.509243 0.000000 1.507025 1.478053 4.267602 +CA 3.269219 3.407996 1.507025 0.000000 2.505414 5.085997 +CG 1.391024 1.379875 1.478053 2.505414 0.000000 2.790403</div></blockquote> +<dl class="method"> +<dt id="aria.conbox.protmap.ResAtmMap.contact_map"> +<code class="descname">contact_map</code><span class="sig-paren">(</span><em>contactdef</em>, <em>scsc_min=None</em>, <em>def_cut=5.0</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ResAtmMap.contact_map"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ResAtmMap.contact_map" title="Permalink to this definition">¶</a></dt> +<dd><p>Contact map generator from all atoms distance map. There’s a contact +with 2 residues iff dist between 2 atoms are below the given treshold</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>def_cut</strong> – (Default value = 5.0)</li> +<li><strong>contactdef</strong> – for all atom pair</li> +<li><strong>scsc_min</strong> – (Default value = None)</li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.ResAtmMap.copy"> +<code class="descname">copy</code><span class="sig-paren">(</span><em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ResAtmMap.copy"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ResAtmMap.copy" title="Permalink to this definition">¶</a></dt> +<dd><p>Copy dataframe and related attributes of the map</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>**kwargs</strong> – </td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.ResAtmMap.create_heatmap"> +<code class="descname">create_heatmap</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ResAtmMap.create_heatmap"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ResAtmMap.create_heatmap" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"></td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.ResAtmMap.create_index"> +<code class="descname">create_index</code><span class="sig-paren">(</span><em>sequence</em>, <em>seq_pos=True</em>, <em>seqidx=None</em>, <em>idxnames=None</em>, <em>colnames=None</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ResAtmMap.create_index"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ResAtmMap.create_index" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> +<li><strong>sequence</strong> – </li> +<li><strong>seq_pos</strong> – </li> +<li><strong>seqidx</strong> (<em>pandas.MultiIndex</em><em>, </em><em>optional</em>) – </li> +<li><strong>idxnames</strong> – </li> +<li><strong>colnames</strong> – </li> +</ul> +</td> +</tr> +<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first"></p> +</td> +</tr> +<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">tuple of pandas.MultiIndex objects</p> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.ResAtmMap.reduce"> +<code class="descname">reduce</code><span class="sig-paren">(</span><em>groupby='min'</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ResAtmMap.reduce"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ResAtmMap.reduce" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>groupby</strong> – return: (Default value = “minâ€)</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protmap.ResAtmMap.sequence"> +<code class="descname">sequence</code><a class="headerlink" href="#aria.conbox.protmap.ResAtmMap.sequence" title="Permalink to this definition">¶</a></dt> +<dd><p>Amino Acid sequence string in humanidx</p> +</dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="aria.conbox.protmap.ResMap"> +<em class="property">class </em><code class="descclassname">aria.conbox.protmap.</code><code class="descname">ResMap</code><span class="sig-paren">(</span><em>sequence</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ResMap"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ResMap" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <a class="reference internal" href="#aria.conbox.protmap.ResAtmMap" title="aria.conbox.protmap.ResAtmMap"><code class="xref py py-class docutils literal"><span class="pre">aria.conbox.protmap.ResAtmMap</span></code></a></p> +<p>Res - res distance/contact matrix</p> +<dl class="method"> +<dt id="aria.conbox.protmap.ResMap.contact_map"> +<code class="descname">contact_map</code><span class="sig-paren">(</span><em>contactdef</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ResMap.contact_map"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ResMap.contact_map" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>contactdef</strong> – param kwargs:</li> +<li><strong>**kwargs</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.ResMap.copy"> +<code class="descname">copy</code><span class="sig-paren">(</span><em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ResMap.copy"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ResMap.copy" title="Permalink to this definition">¶</a></dt> +<dd><p>Copy dataframe and related attributes of the map</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>**kwargs</strong> – </td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.ResMap.create_heatmap"> +<code class="descname">create_heatmap</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ResMap.create_heatmap"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ResMap.create_heatmap" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"></td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.ResMap.create_index"> +<code class="descname">create_index</code><span class="sig-paren">(</span><em>sequence</em>, <em>seqidx=None</em>, <em>idxnames=None</em>, <em>colnames=None</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#ResMap.create_index"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.ResMap.create_index" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>sequence</strong> – </li> +<li><strong>seqidx</strong> (<em>pandas.Index</em>) – </li> +<li><strong>idxnames</strong> – </li> +<li><strong>colnames</strong> – </li> +<li><strong>kwargs</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protmap.ResMap.sequence"> +<code class="descname">sequence</code><a class="headerlink" href="#aria.conbox.protmap.ResMap.sequence" title="Permalink to this definition">¶</a></dt> +<dd><p>Amino Acid sequence string in humanidx</p> +</dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="aria.conbox.protmap.SsAaAtmMap"> +<em class="property">class </em><code class="descclassname">aria.conbox.protmap.</code><code class="descname">SsAaAtmMap</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#SsAaAtmMap"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.SsAaAtmMap" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <a class="reference internal" href="#aria.conbox.protmap.AaAtmMap" title="aria.conbox.protmap.AaAtmMap"><code class="xref py py-class docutils literal"><span class="pre">aria.conbox.protmap.AaAtmMap</span></code></a></p> +<p>Amino acid map with atom and secondary structure levels</p> +<dl class="method"> +<dt id="aria.conbox.protmap.SsAaAtmMap.contact_map"> +<code class="descname">contact_map</code><span class="sig-paren">(</span><em>contactdef</em>, <em>scsc_min=None</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#SsAaAtmMap.contact_map"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.SsAaAtmMap.contact_map" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>contactdef</strong> – </li> +<li><strong>scsc_min</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.SsAaAtmMap.copy"> +<code class="descname">copy</code><span class="sig-paren">(</span><em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#SsAaAtmMap.copy"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.SsAaAtmMap.copy" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>kwargs</strong> – </li> +<li><strong>**kwargs</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.SsAaAtmMap.create_heatmap"> +<code class="descname">create_heatmap</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#SsAaAtmMap.create_heatmap"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.SsAaAtmMap.create_heatmap" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.SsAaAtmMap.create_index"> +<code class="descname">create_index</code><span class="sig-paren">(</span><em>sequence</em>, <em>atom_types='min'</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#SsAaAtmMap.create_index"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.SsAaAtmMap.create_index" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>atom_types</strong> – </li> +<li><strong>sequence</strong> – </li> +<li><strong>kwargs</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.protmap.SsAaAtmMap.reduce"> +<code class="descname">reduce</code><span class="sig-paren">(</span><em>groupby='min'</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/protmap.html#SsAaAtmMap.reduce"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.protmap.SsAaAtmMap.reduce" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>groupby</strong> – return: (Default value = “minâ€)</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.protmap.SsAaAtmMap.ss_types"> +<code class="descname">ss_types</code><em class="property"> = ('H', 'E', 'X')</em><a class="headerlink" href="#aria.conbox.protmap.SsAaAtmMap.ss_types" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + +</div> +<div class="section" id="module-aria.conbox.reader"> +<span id="aria-conbox-reader-module"></span><h2>aria.conbox.reader module<a class="headerlink" href="#module-aria.conbox.reader" title="Permalink to this headline">¶</a></h2> +<p>Reader objects</p> +<dl class="class"> +<dt id="aria.conbox.reader.Atom"> +<em class="property">class </em><code class="descclassname">aria.conbox.reader.</code><code class="descname">Atom</code><span class="sig-paren">(</span><em>name</em>, <em>coords</em><span class="sig-paren">)</span><a class="headerlink" href="#aria.conbox.reader.Atom" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">tuple</span></code></p> +<dl class="attribute"> +<dt id="aria.conbox.reader.Atom.coords"> +<code class="descname">coords</code><a class="headerlink" href="#aria.conbox.reader.Atom.coords" title="Permalink to this definition">¶</a></dt> +<dd><p>Alias for field number 1</p> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.reader.Atom.name"> +<code class="descname">name</code><a class="headerlink" href="#aria.conbox.reader.Atom.name" title="Permalink to this definition">¶</a></dt> +<dd><p>Alias for field number 0</p> +</dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="aria.conbox.reader.ContactMapFile"> +<em class="property">class </em><code class="descclassname">aria.conbox.reader.</code><code class="descname">ContactMapFile</code><span class="sig-paren">(</span><em>filepath</em>, <em>filetype</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/reader.html#ContactMapFile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.reader.ContactMapFile" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <a class="reference internal" href="#aria.conbox.reader.MapFile" title="aria.conbox.reader.MapFile"><code class="xref py py-class docutils literal"><span class="pre">aria.conbox.reader.MapFile</span></code></a></p> +<p>Contact map file</p> +<dl class="method"> +<dt id="aria.conbox.reader.ContactMapFile.create_map"> +<code class="descname">create_map</code><span class="sig-paren">(</span><em>protein</em>, <em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/reader.html#ContactMapFile.create_map"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.reader.ContactMapFile.create_map" title="Permalink to this definition">¶</a></dt> +<dd><p>Initialize and fill Res - Res maps based on contactlist</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>protein</strong> – </li> +<li><strong>args</strong> – </li> +<li><strong>kwargs</strong> – </li> +<li><strong>*args</strong> – </li> +<li><strong>**kwargs</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.reader.ContactMapFile.update_map"> +<code class="descname">update_map</code><span class="sig-paren">(</span><em>resmap</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/reader.html#ContactMapFile.update_map"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.reader.ContactMapFile.update_map" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>resmap</strong> – return:</td> +</tr> +</tbody> +</table> +</dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="aria.conbox.reader.CulledPdbFile"> +<em class="property">class </em><code class="descclassname">aria.conbox.reader.</code><code class="descname">CulledPdbFile</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/reader.html#CulledPdbFile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.reader.CulledPdbFile" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <a class="reference internal" href="#aria.conbox.reader.RegexFile" title="aria.conbox.reader.RegexFile"><code class="xref py py-class docutils literal"><span class="pre">aria.conbox.reader.RegexFile</span></code></a></p> +<p>Reader class for culled pdb list</p> +<dl class="attribute"> +<dt id="aria.conbox.reader.CulledPdbFile.default"> +<code class="descname">default</code><em class="property"> = 'data/cullpdb/160427/cullpdb_pc25_res1.6_R0.25_d160427_chains3743'</em><a class="headerlink" href="#aria.conbox.reader.CulledPdbFile.default" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.reader.CulledPdbFile.filetype"> +<code class="descname">filetype</code><em class="property"> = 'cullpdb'</em><a class="headerlink" href="#aria.conbox.reader.CulledPdbFile.filetype" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.reader.CulledPdbFile.regex"> +<code class="descname">regex</code><em class="property"> = <_sre.SRE_Pattern object at 0x4d7b8a0></em><a class="headerlink" href="#aria.conbox.reader.CulledPdbFile.regex" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="aria.conbox.reader.DistanceMapFile"> +<em class="property">class </em><code class="descclassname">aria.conbox.reader.</code><code class="descname">DistanceMapFile</code><span class="sig-paren">(</span><em>filepath</em>, <em>filetype</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/reader.html#DistanceMapFile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.reader.DistanceMapFile" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <a class="reference internal" href="#aria.conbox.reader.MapFile" title="aria.conbox.reader.MapFile"><code class="xref py py-class docutils literal"><span class="pre">aria.conbox.reader.MapFile</span></code></a></p> +<p>Distance matrix file</p> +<dl class="method"> +<dt id="aria.conbox.reader.DistanceMapFile.create_map"> +<code class="descname">create_map</code><span class="sig-paren">(</span><em>aa_seq</em>, <em>contactdef</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/reader.html#DistanceMapFile.create_map"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.reader.DistanceMapFile.create_map" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>aa_seq</strong> – param contactdef:</li> +<li><strong>kwargs</strong> – return:</li> +<li><strong>contactdef</strong> – </li> +<li><strong>**kwargs</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.reader.DistanceMapFile.update_map"> +<code class="descname">update_map</code><span class="sig-paren">(</span><em>resmap</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/reader.html#DistanceMapFile.update_map"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.reader.DistanceMapFile.update_map" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>resmap</strong> – return:</td> +</tr> +</tbody> +</table> +</dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="aria.conbox.reader.MapFile"> +<em class="property">class </em><code class="descclassname">aria.conbox.reader.</code><code class="descname">MapFile</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/reader.html#MapFile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.reader.MapFile" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <a class="reference internal" href="#aria.conbox.reader.RegexFile" title="aria.conbox.reader.RegexFile"><code class="xref py py-class docutils literal"><span class="pre">aria.conbox.reader.RegexFile</span></code></a></p> +<p>Abstract class related to all kind of protein maps</p> +<dl class="method"> +<dt id="aria.conbox.reader.MapFile.check_maptype"> +<code class="descname">check_maptype</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/reader.html#MapFile.check_maptype"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.reader.MapFile.check_maptype" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body"></td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.reader.MapFile.check_type"> +<code class="descname">check_type</code><em class="property"> = True</em><a class="headerlink" href="#aria.conbox.reader.MapFile.check_type" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="aria.conbox.reader.MapFile.create_map"> +<code class="descname">create_map</code><span class="sig-paren">(</span><em>protein</em>, <em>contactdef</em>, <em>flaglist=None</em>, <em>offset=0</em>, <em>sym=True</em>, <em>path=''</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/reader.html#MapFile.create_map"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.reader.MapFile.create_map" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>path</strong> – param protein: (Default value = “â€)</li> +<li><strong>contactdef</strong> – param flaglist:</li> +<li><strong>offset</strong> – param sym: (Default value = 0)</li> +<li><strong>kwargs</strong> – return:</li> +<li><strong>protein</strong> – </li> +<li><strong>flaglist</strong> – (Default value = None)</li> +<li><strong>sym</strong> – (Default value = True)</li> +<li><strong>**kwargs</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.reader.MapFile.read"> +<code class="descname">read</code><span class="sig-paren">(</span><em>protein</em>, <em>contactdef=5.0</em>, <em>groupby_method='min'</em>, <em>scsc=None</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/reader.html#MapFile.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.reader.MapFile.read" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>protein</strong> – param contactdef: (Default value = None)</li> +<li><strong>groupby_method</strong> – param scsc: (Default value = “minâ€)</li> +<li><strong>contactdef</strong> – (Default value = 5.0)</li> +<li><strong>scsc</strong> – (Default value = None)</li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.reader.MapFile.types"> +<code class="descname">types</code><em class="property"> = {'pconsc1': {'regex': <_sre.SRE_Pattern object>, 'score_field': 'ec_score'}, 'pconsc2': {'regex': <_sre.SRE_Pattern object>, 'score_field': 'ec_score'}, 'plmc': {'regex': <_sre.SRE_Pattern object at 0x4d72420>, 'score_field': 'plm_score'}, 'metapsicovhb': {'regex': <_sre.SRE_Pattern object at 0x4d7ec70>, 'score_field': 'hbscore'}, 'evfold': {'regex': <_sre.SRE_Pattern object at 0x4d74780>, 'score_field': 'ec_score'}, 'native': {'regex': <_sre.SRE_Pattern object at 0x4d7d8d0>, 'score_field': None}, 'psicov': {'regex': <_sre.SRE_Pattern object at 0x4d75410>, 'score_field': 'ec_score'}, 'metapsicov_stg1': {'regex': <_sre.SRE_Pattern object at 0x4d75410>, 'score_field': 'ec_score'}, 'metapsicov_stg2': {'regex': <_sre.SRE_Pattern object at 0x4d75410>, 'score_field': 'ec_score'}, 'empty': {'regex': <_sre.SRE_Pattern object>, 'score_field': None}, 'gremlin': {'regex': <_sre.SRE_Pattern object at 0x4d7de60>, 'score_field': 'scale_score'}, 'bbcontacts': {'regex': <_sre.SRE_Pattern object at 0x4d7f140>, 'score_field': None}, 'default_4': {'regex': <_sre.SRE_Pattern object>, 'score_field': None}, 'default_3': {'regex': <_sre.SRE_Pattern object at 0x4d76640>, 'score_field': None}, 'default_2': {'regex': <_sre.SRE_Pattern object>, 'score_field': 'score'}, 'default_1': {'regex': <_sre.SRE_Pattern object at 0x4d74500>, 'score_field': 'score'}, 'plm': {'regex': <_sre.SRE_Pattern object at 0x4d72420>, 'score_field': 'plm_score'}, 'pconsc': {'regex': <_sre.SRE_Pattern object>, 'score_field': 'ec_score'}, 'plmdca': {'regex': <_sre.SRE_Pattern object at 0x4d72420>, 'score_field': 'plm_score'}, 'native_full': {'regex': <_sre.SRE_Pattern object at 0x4d7d8d0>, 'score_field': None}, 'contactlist': {'regex': <_sre.SRE_Pattern object>, 'score_field': None}, 'plmev': {'regex': <_sre.SRE_Pattern object at 0x4d72420>, 'score_field': 'plm_score'}}</em><a class="headerlink" href="#aria.conbox.reader.MapFile.types" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="aria.conbox.reader.MapFile.update_map"> +<code class="descname">update_map</code><span class="sig-paren">(</span><em>resmap</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/reader.html#MapFile.update_map"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.reader.MapFile.update_map" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>resmap</strong> – return:</td> +</tr> +</tbody> +</table> +</dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="aria.conbox.reader.MapFileListReader"> +<em class="property">class </em><code class="descclassname">aria.conbox.reader.</code><code class="descname">MapFileListReader</code><span class="sig-paren">(</span><em>cont_def=5.0</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/reader.html#MapFileListReader"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.reader.MapFileListReader" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p> +<p>Reader class for Map files</p> +<dl class="method"> +<dt id="aria.conbox.reader.MapFileListReader.clear"> +<code class="descname">clear</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/reader.html#MapFileListReader.clear"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.reader.MapFileListReader.clear" title="Permalink to this definition">¶</a></dt> +<dd><p>Initiatize object from scratch object</p> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.reader.MapFileListReader.read"> +<code class="descname">read</code><span class="sig-paren">(</span><em>maps</em>, <em>maptypes=None</em>, <em>protein=None</em>, <em>scsc=None</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/reader.html#MapFileListReader.read"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.reader.MapFileListReader.read" title="Permalink to this definition">¶</a></dt> +<dd><p>Read contact map files. The generated maps will be accessible in +<cite>self.maps</cite></p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>maps</strong> – List of Map file paths</li> +<li><strong>maptypes</strong> – List of Map file types (Default value = None)</li> +<li><strong>protein</strong> (<em>ariaec.protein.Protein object</em><em> or </em><em>None</em><em>, </em><em>optional</em>) – (Default value = None)</li> +<li><strong>scsc</strong> (<em>dict</em><em>, </em><em>optional</em>) – Optional dictionary used for Atom Map reduction by selecting only +one atom in the side chain. (Default value = None)</li> +<li><strong>kwargs</strong> – Optional arguments used for MapFile readers</li> +<li><strong>**kwargs</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="aria.conbox.reader.PDBFile"> +<em class="property">class </em><code class="descclassname">aria.conbox.reader.</code><code class="descname">PDBFile</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/reader.html#PDBFile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.reader.PDBFile" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <a class="reference internal" href="#aria.conbox.reader.MapFile" title="aria.conbox.reader.MapFile"><code class="xref py py-class docutils literal"><span class="pre">aria.conbox.reader.MapFile</span></code></a></p> +<p>PDB file</p> +<dl class="method"> +<dt id="aria.conbox.reader.PDBFile.create_map"> +<code class="descname">create_map</code><span class="sig-paren">(</span><em>protein</em>, <em>contactdef</em>, <em>groupby_method='min'</em>, <em>scsc=None</em>, <em>flaglist=None</em>, <em>sym=True</em>, <em>path=''</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/reader.html#PDBFile.create_map"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.reader.PDBFile.create_map" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>protein</strong> – </li> +<li><strong>contactdef</strong> – </li> +<li><strong>groupby_method</strong> – (Default value = “minâ€)</li> +<li><strong>scsc</strong> – (Default value = None)</li> +<li><strong>flaglist</strong> – (Default value = None)</li> +<li><strong>sym</strong> – (Default value = True)</li> +<li><strong>path</strong> – (Default value = “â€)</li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.reader.PDBFile.pdbreg"> +<code class="descname">pdbreg</code><em class="property"> = <_sre.SRE_Pattern object at 0x4d817b0></em><a class="headerlink" href="#aria.conbox.reader.PDBFile.pdbreg" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="method"> +<dt id="aria.conbox.reader.PDBFile.update_map"> +<code class="descname">update_map</code><span class="sig-paren">(</span><em>resmap</em>, <em>sym=True</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/reader.html#PDBFile.update_map"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.reader.PDBFile.update_map" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>resmap</strong> – param sym:</li> +<li><strong>sym</strong> – (Default value = True)</li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="aria.conbox.reader.RegexFile"> +<em class="property">class </em><code class="descclassname">aria.conbox.reader.</code><code class="descname">RegexFile</code><span class="sig-paren">(</span><em>filepath</em>, <em>filetype=''</em>, <em>regex=''</em>, <em>sort=''</em>, <em>default=''</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/reader.html#RegexFile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.reader.RegexFile" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p> +<p>File which can be parsed with a regex</p> +<dl class="attribute"> +<dt id="aria.conbox.reader.RegexFile.filename"> +<code class="descname">filename</code><a class="headerlink" href="#aria.conbox.reader.RegexFile.filename" title="Permalink to this definition">¶</a></dt> +<dd><p>Get basename of filepath</p> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.reader.RegexFile.filepath"> +<code class="descname">filepath</code><a class="headerlink" href="#aria.conbox.reader.RegexFile.filepath" title="Permalink to this definition">¶</a></dt> +<dd><p>File path</p> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.reader.RegexFile.load"> +<code class="descname">load</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/reader.html#RegexFile.load"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.reader.RegexFile.load" title="Permalink to this definition">¶</a></dt> +<dd><p>Fill lines with dictionary. Each key is a line number in the given file +:return: None</p> +</dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="aria.conbox.reader.TblDistFile"> +<em class="property">class </em><code class="descclassname">aria.conbox.reader.</code><code class="descname">TblDistFile</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/reader.html#TblDistFile"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.reader.TblDistFile" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <a class="reference internal" href="#aria.conbox.reader.RegexFile" title="aria.conbox.reader.RegexFile"><code class="xref py py-class docutils literal"><span class="pre">aria.conbox.reader.RegexFile</span></code></a></p> +<p>Reader class for TBL Distance restraint file</p> +<dl class="attribute"> +<dt id="aria.conbox.reader.TblDistFile.filetype"> +<code class="descname">filetype</code><em class="property"> = 'tbldist'</em><a class="headerlink" href="#aria.conbox.reader.TblDistFile.filetype" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.reader.TblDistFile.regex"> +<code class="descname">regex</code><em class="property"> = <_sre.SRE_Pattern object at 0x4d7c8b0></em><a class="headerlink" href="#aria.conbox.reader.TblDistFile.regex" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +</dd></dl> + +</div> +<div class="section" id="module-aria.conbox.settings"> +<span id="aria-conbox-settings-module"></span><h2>aria.conbox.settings module<a class="headerlink" href="#module-aria.conbox.settings" title="Permalink to this headline">¶</a></h2> +<p>Settings section</p> +<dl class="class"> +<dt id="aria.conbox.settings.AriaEcSettings"> +<em class="property">class </em><code class="descclassname">aria.conbox.settings.</code><code class="descname">AriaEcSettings</code><span class="sig-paren">(</span><em>name</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/settings.html#AriaEcSettings"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.settings.AriaEcSettings" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <a class="reference internal" href="#aria.conbox.settings.Settings" title="aria.conbox.settings.Settings"><code class="xref py py-class docutils literal"><span class="pre">aria.conbox.settings.Settings</span></code></a></p> +<p>Settings object for ariaec +@DynamicAttrs</p> +<dl class="attribute"> +<dt id="aria.conbox.settings.AriaEcSettings.ARIAPROJ_TEMPLATE"> +<code class="descname">ARIAPROJ_TEMPLATE</code><em class="property"> = 'templates/aria_project_v2.3.0.xml'</em><a class="headerlink" href="#aria.conbox.settings.AriaEcSettings.ARIAPROJ_TEMPLATE" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.settings.AriaEcSettings.INTERLOWERBOUNDS"> +<code class="descname">INTERLOWERBOUNDS</code><em class="property"> = 'data/pdbdists/lowerbounds.inter.p'</em><a class="headerlink" href="#aria.conbox.settings.AriaEcSettings.INTERLOWERBOUNDS" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.settings.AriaEcSettings.INTERTARGET"> +<code class="descname">INTERTARGET</code><em class="property"> = 'data/pdbdists/targetdists.inter.p'</em><a class="headerlink" href="#aria.conbox.settings.AriaEcSettings.INTERTARGET" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.settings.AriaEcSettings.INTERUPPERBOUNDS"> +<code class="descname">INTERUPPERBOUNDS</code><em class="property"> = 'data/pdbdists/upperbounds.inter.p'</em><a class="headerlink" href="#aria.conbox.settings.AriaEcSettings.INTERUPPERBOUNDS" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.settings.AriaEcSettings.INTRALOWERBOUNDS"> +<code class="descname">INTRALOWERBOUNDS</code><em class="property"> = 'data/pdbdists/lowerbounds.intra.p'</em><a class="headerlink" href="#aria.conbox.settings.AriaEcSettings.INTRALOWERBOUNDS" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.settings.AriaEcSettings.INTRATARGET"> +<code class="descname">INTRATARGET</code><em class="property"> = 'data/pdbdists/targetdists.intra.p'</em><a class="headerlink" href="#aria.conbox.settings.AriaEcSettings.INTRATARGET" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.settings.AriaEcSettings.INTRAUPPERBOUNDS"> +<code class="descname">INTRAUPPERBOUNDS</code><em class="property"> = 'data/pdbdists/upperbounds.intra.p'</em><a class="headerlink" href="#aria.conbox.settings.AriaEcSettings.INTRAUPPERBOUNDS" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.settings.AriaEcSettings.SCSC_MIN"> +<code class="descname">SCSC_MIN</code><em class="property"> = 'data/scsc_min.p'</em><a class="headerlink" href="#aria.conbox.settings.AriaEcSettings.SCSC_MIN" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.settings.AriaEcSettings.SECTIONS"> +<code class="descname">SECTIONS</code><em class="property"> = ('main', 'setup', 'maplot', 'bbconv', 'contactdef', 'pdbqual', 'pdbdist', 'analysis', 'tbl2xml', 'pdbstat')</em><a class="headerlink" href="#aria.conbox.settings.AriaEcSettings.SECTIONS" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.settings.AriaEcSettings.SS_DIST"> +<code class="descname">SS_DIST</code><em class="property"> = 'data/ss_dist.txt'</em><a class="headerlink" href="#aria.conbox.settings.AriaEcSettings.SS_DIST" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.settings.AriaEcSettings.TOPO"> +<code class="descname">TOPO</code><em class="property"> = 'data/topallhdg5.3.pro'</em><a class="headerlink" href="#aria.conbox.settings.AriaEcSettings.TOPO" title="Permalink to this definition">¶</a></dt> +<dd></dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.settings.AriaEcSettings.infra"> +<code class="descname">infra</code><a class="headerlink" href="#aria.conbox.settings.AriaEcSettings.infra" title="Permalink to this definition">¶</a></dt> +<dd><p>Infrastructure for a specific command +:return:</p> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.settings.AriaEcSettings.load_config"> +<code class="descname">load_config</code><span class="sig-paren">(</span><em>configpath</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/settings.html#AriaEcSettings.load_config"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.settings.AriaEcSettings.load_config" title="Permalink to this definition">¶</a></dt> +<dd><table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>configpath</strong> – param kwargs:</li> +<li><strong>**kwargs</strong> – </li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.settings.AriaEcSettings.make_infra"> +<code class="descname">make_infra</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/settings.html#AriaEcSettings.make_infra"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.settings.AriaEcSettings.make_infra" title="Permalink to this definition">¶</a></dt> +<dd><p>Generate infrastructure</p> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.settings.AriaEcSettings.scsc_min"> +<code class="descname">scsc_min</code><a class="headerlink" href="#aria.conbox.settings.AriaEcSettings.scsc_min" title="Permalink to this definition">¶</a></dt> +<dd><p>Get contact index for side chains in package or config file +:return:</p> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.settings.AriaEcSettings.ssdist"> +<code class="descname">ssdist</code><a class="headerlink" href="#aria.conbox.settings.AriaEcSettings.ssdist" title="Permalink to this definition">¶</a></dt> +<dd><p>Get distance file for secondary structures in the package or in config +file +:return:</p> +</dd></dl> + +<dl class="attribute"> +<dt id="aria.conbox.settings.AriaEcSettings.template"> +<code class="descname">template</code><a class="headerlink" href="#aria.conbox.settings.AriaEcSettings.template" title="Permalink to this definition">¶</a></dt> +<dd><p>Get template files in config file or in the package +:return:</p> +</dd></dl> + +</dd></dl> + +<dl class="class"> +<dt id="aria.conbox.settings.Setting"> +<em class="property">class </em><code class="descclassname">aria.conbox.settings.</code><code class="descname">Setting</code><a class="reference internal" href="_modules/aria/conbox/settings.html#Setting"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.settings.Setting" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p> +<p>Main setting object with args and config section</p> +</dd></dl> + +<dl class="class"> +<dt id="aria.conbox.settings.Settings"> +<em class="property">class </em><code class="descclassname">aria.conbox.settings.</code><code class="descname">Settings</code><span class="sig-paren">(</span><em>sections</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/settings.html#Settings"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.settings.Settings" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p> +<p>Group settings with each section corresponding to a Setting object</p> +<dl class="method"> +<dt id="aria.conbox.settings.Settings.load_config"> +<code class="descname">load_config</code><span class="sig-paren">(</span><em>configpath</em>, <em>pkg=False</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/settings.html#Settings.load_config"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.settings.Settings.load_config" title="Permalink to this definition">¶</a></dt> +<dd><p>Use ConfigParser module to load config sections</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> +<li><strong>pkg</strong> – file is inside the package (Default value = False)</li> +<li><strong>configpath</strong> – return:</li> +</ul> +</td> +</tr> +</tbody> +</table> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.settings.Settings.write_config"> +<code class="descname">write_config</code><span class="sig-paren">(</span><em>filename</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/settings.html#Settings.write_config"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.settings.Settings.write_config" title="Permalink to this definition">¶</a></dt> +<dd><p>Write config of all sections into another file</p> +<table class="docutils field-list" frame="void" rules="none"> +<col class="field-name" /> +<col class="field-body" /> +<tbody valign="top"> +<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>filename</strong> – </td> +</tr> +</tbody> +</table> +</dd></dl> + +</dd></dl> + +</div> +<div class="section" id="module-aria.conbox.setup"> +<span id="aria-conbox-setup-module"></span><h2>aria.conbox.setup module<a class="headerlink" href="#module-aria.conbox.setup" title="Permalink to this headline">¶</a></h2> +<p>Input/Output aria_ec scripts</p> +<dl class="class"> +<dt id="aria.conbox.setup.AriaEcSetup"> +<em class="property">class </em><code class="descclassname">aria.conbox.setup.</code><code class="descname">AriaEcSetup</code><span class="sig-paren">(</span><em>settings</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/setup.html#AriaEcSetup"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.setup.AriaEcSetup" title="Permalink to this definition">¶</a></dt> +<dd><p>Bases: <code class="xref py py-class docutils literal"><span class="pre">object</span></code></p> +<p>Aria Ec Setup protocol</p> +<dl class="method"> +<dt id="aria.conbox.setup.AriaEcSetup.run"> +<code class="descname">run</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/setup.html#AriaEcSetup.run"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.setup.AriaEcSetup.run" title="Permalink to this definition">¶</a></dt> +<dd><p>main method +:return:</p> +</dd></dl> + +<dl class="method"> +<dt id="aria.conbox.setup.AriaEcSetup.write_optional_files"> +<code class="descname">write_optional_files</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/aria/conbox/setup.html#AriaEcSetup.write_optional_files"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#aria.conbox.setup.AriaEcSetup.write_optional_files" title="Permalink to this definition">¶</a></dt> +<dd><p>Write filtered contacts & distance maps (.csv)</p> +</dd></dl> + +</dd></dl> + +</div> +<div class="section" id="module-aria.conbox"> +<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-aria.conbox" title="Permalink to this headline">¶</a></h2> +<p>ARIA Evolutive Contact toolbox</p> +</div> +</div> + + + </div> + <div class="articleComments"> + + </div> + </div> + <footer> + + + <hr/> + + <div role="contentinfo"> + <p> + © Copyright 2017, Fabrice Allain, Benjamin Bardiaux, Michael Habeck, Therese Malliavin, Wolfgang Rieping, and Michael Nilges. + + </p> + </div> + Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. + +</footer> + + </div> + </div> + + </section> + + </div> + + + + + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT:'./', + VERSION:'0.3', + COLLAPSE_INDEX:false, + FILE_SUFFIX:'.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt' + }; + </script> + <script type="text/javascript" src="_static/jquery.js"></script> + <script type="text/javascript" src="_static/underscore.js"></script> + <script type="text/javascript" src="_static/doctools.js"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + + + + <script type="text/javascript" src="_static/js/theme.js"></script> + + + + + <script type="text/javascript"> + jQuery(function () { + SphinxRtdTheme.StickyNav.enable(); + }); + </script> + + +</body> +</html> \ No newline at end of file diff --git a/docs/_build/html/glossary.html b/examples-dev/olds/_build/html/ariaec.test.html similarity index 77% rename from docs/_build/html/glossary.html rename to examples-dev/olds/_build/html/ariaec.test.html index fc38f6ce6c277baa907f8c1ce46bdcb39cbab545..b22619c7d87596311e9224e9dab1f4311195ffea 100644 --- a/docs/_build/html/glossary.html +++ b/examples-dev/olds/_build/html/ariaec.test.html @@ -8,7 +8,7 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <title><no title> — ARIA 4 documentation</title> + <title>ariaec.test package — Aria-EC 0.3 documentation</title> @@ -35,8 +35,7 @@ <link rel="index" title="Index" href="genindex.html"/> <link rel="search" title="Search" href="search.html"/> - <link rel="copyright" title="Copyright" href="copyright.html"/> - <link rel="top" title="ARIA 4 documentation" href="index.html"/> + <link rel="top" title="Aria-EC 0.3 documentation" href="index.html"/> <script src="_static/js/modernizr.min.js"></script> @@ -55,7 +54,7 @@ - <a href="index.html" class="icon icon-home"> ARIA + <a href="index.html" class="icon icon-home"> Aria-EC @@ -65,7 +64,7 @@ <div class="version"> - 2 + 0.3 </div> @@ -90,7 +89,11 @@ <!-- Local TOC --> - <div class="local-toc"><ul class="simple"> + <div class="local-toc"><ul> +<li><a class="reference internal" href="#">ariaec.test package</a><ul> +<li><a class="reference internal" href="#module-contents">Module contents</a></li> +</ul> +</li> </ul> </div> @@ -105,7 +108,7 @@ <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="index.html">ARIA</a> + <a href="index.html">Aria-EC</a> </nav> @@ -135,13 +138,13 @@ <li><a href="index.html">Docs</a> »</li> - <li><no title></li> + <li>ariaec.test package</li> <li class="wy-breadcrumbs-aside"> - <a href="_sources/glossary.rst.txt" rel="nofollow"> View page source</a> + <a href="_sources/ariaec.test.rst.txt" rel="nofollow"> View page source</a> </li> @@ -154,7 +157,13 @@ <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div itemprop="articleBody"> - + <div class="section" id="ariaec-test-package"> +<h1>ariaec.test package<a class="headerlink" href="#ariaec-test-package" title="Permalink to this headline">¶</a></h1> +<div class="section" id="module-contents"> +<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2> +</div> +</div> + </div> <div class="articleComments"> @@ -168,7 +177,7 @@ <div role="contentinfo"> <p> - © <a href="copyright.html">Copyright</a> 2017, Benjamin Bardiaux, Michael Habeck, Therese Malliavin, Wolfgang Rieping, and Michael Nilges. + © Copyright 2017, Fabrice Allain, Benjamin Bardiaux, Michael Habeck, Therese Malliavin, Wolfgang Rieping, and Michael Nilges. </p> </div> @@ -190,7 +199,7 @@ <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT:'./', - VERSION:'4', + VERSION:'0.3', COLLAPSE_INDEX:false, FILE_SUFFIX:'.html', HAS_SOURCE: true, diff --git a/examples-dev/olds/_build/html/genindex.html b/examples-dev/olds/_build/html/genindex.html new file mode 100644 index 0000000000000000000000000000000000000000..7dab38fecd3e6ba5ba8e34cdf503e9d1d55b0d09 --- /dev/null +++ b/examples-dev/olds/_build/html/genindex.html @@ -0,0 +1,905 @@ + + + +<!DOCTYPE html> +<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> +<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> +<head> + <meta charset="utf-8"> + + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + + <title>Index — Aria-EC 0.3 documentation</title> + + + + + + + + + + + + + + + + + + <link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> + + + + + + <link rel="index" title="Index" + href="#"/> + <link rel="search" title="Search" href="search.html"/> + <link rel="top" title="Aria-EC 0.3 documentation" href="index.html"/> + + + <script src="_static/js/modernizr.min.js"></script> + +</head> + +<body class="wy-body-for-nav" role="document"> + + + <div class="wy-grid-for-nav"> + + + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search"> + + + + <a href="index.html" class="icon icon-home"> Aria-EC + + + + </a> + + + + + <div class="version"> + 0.3 + </div> + + + + +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + + + </div> + + <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> + + + + + + + <!-- Local TOC --> + <div class="local-toc"></div> + + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> + + + <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> + + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="index.html">Aria-EC</a> + + </nav> + + + + <div class="wy-nav-content"> + <div class="rst-content"> + + + + + + + + + + + + + + + + +<div role="navigation" aria-label="breadcrumbs navigation"> + + <ul class="wy-breadcrumbs"> + + <li><a href="index.html">Docs</a> »</li> + + <li>Index</li> + + + <li class="wy-breadcrumbs-aside"> + + + + </li> + + </ul> + + + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + +<h1 id="index">Index</h1> + +<div class="genindex-jumpbox"> + <a href="#A"><strong>A</strong></a> + | <a href="#B"><strong>B</strong></a> + | <a href="#C"><strong>C</strong></a> + | <a href="#D"><strong>D</strong></a> + | <a href="#E"><strong>E</strong></a> + | <a href="#F"><strong>F</strong></a> + | <a href="#G"><strong>G</strong></a> + | <a href="#H"><strong>H</strong></a> + | <a href="#I"><strong>I</strong></a> + | <a href="#L"><strong>L</strong></a> + | <a href="#M"><strong>M</strong></a> + | <a href="#N"><strong>N</strong></a> + | <a href="#P"><strong>P</strong></a> + | <a href="#R"><strong>R</strong></a> + | <a href="#S"><strong>S</strong></a> + | <a href="#T"><strong>T</strong></a> + | <a href="#U"><strong>U</strong></a> + | <a href="#V"><strong>V</strong></a> + | <a href="#W"><strong>W</strong></a> + +</div> +<h2 id="A">A</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.protmap.AaAtmMap">AaAtmMap (class in aria.conbox.protmap)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.AaMap">AaMap (class in aria.conbox.protmap)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ProteinMap.all_reg">all_reg (aria.conbox.protmap.ProteinMap attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ProtMapCollection.allcontactmap">allcontactmap (aria.conbox.protmap.ProtMapCollection attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ProtMapCollection.alldistmap">alldistmap (aria.conbox.protmap.ProtMapCollection attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ProtMapCollection.allscoremap">allscoremap (aria.conbox.protmap.ProtMapCollection attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protein.AminoAcidSequence">AminoAcidSequence (class in aria.conbox.protein)</a> +</li> + <li><a href="ariaec.html#aria.conbox.commands.AriaEcCommands.analysis">analysis() (aria.conbox.commands.AriaEcCommands method)</a> +</li> + <li><a href="ariaec.html#module-aria.conbox">aria.conbox (module)</a> +</li> + <li><a href="ariaec.html#module-aria.conbox.analysis">aria.conbox.analysis (module)</a> +</li> + <li><a href="ariaec.html#module-aria.conbox.commands">aria.conbox.commands (module)</a> +</li> + <li><a href="ariaec.html#module-aria.conbox.converter">aria.conbox.converter (module)</a> +</li> + <li><a href="ariaec.html#module-aria.conbox.maplot">aria.conbox.maplot (module)</a> +</li> + <li><a href="ariaec.html#module-aria.conbox.ndconv">aria.conbox.ndconv (module)</a> +</li> + <li><a href="ariaec.html#module-aria.conbox.pdbdist">aria.conbox.pdbdist (module)</a> +</li> + <li><a href="ariaec.html#module-aria.conbox.pdbqual">aria.conbox.pdbqual (module)</a> +</li> + <li><a href="ariaec.html#module-aria.conbox.protein">aria.conbox.protein (module)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#module-aria.conbox.protmap">aria.conbox.protmap (module)</a> +</li> + <li><a href="ariaec.html#module-aria.conbox.reader">aria.conbox.reader (module)</a> +</li> + <li><a href="ariaec.html#module-aria.conbox.settings">aria.conbox.settings (module)</a> +</li> + <li><a href="ariaec.html#module-aria.conbox.setup">aria.conbox.setup (module)</a> +</li> + <li><a href="ariaec.html#aria.conbox.converter.AriaEcBbConverter">AriaEcBbConverter (class in aria.conbox.converter)</a> +</li> + <li><a href="ariaec.html#aria.conbox.commands.AriaEcCommands">AriaEcCommands (class in aria.conbox.commands)</a> +</li> + <li><a href="ariaec.html#aria.conbox.maplot.AriaEcContactMap">AriaEcContactMap (class in aria.conbox.maplot)</a> +</li> + <li><a href="ariaec.html#aria.conbox.pdbqual.AriaEcPdbqual">AriaEcPdbqual (class in aria.conbox.pdbqual)</a> +</li> + <li><a href="ariaec.html#aria.conbox.settings.AriaEcSettings">AriaEcSettings (class in aria.conbox.settings)</a> +</li> + <li><a href="ariaec.html#aria.conbox.setup.AriaEcSetup">AriaEcSetup (class in aria.conbox.setup)</a> +</li> + <li><a href="ariaec.html#aria.conbox.converter.AriaEcXMLConverter">AriaEcXMLConverter (class in aria.conbox.converter)</a> +</li> + <li><a href="ariaec.html#aria.conbox.settings.AriaEcSettings.ARIAPROJ_TEMPLATE">ARIAPROJ_TEMPLATE (aria.conbox.settings.AriaEcSettings attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.converter.AriaXMLConverter">AriaXMLConverter (class in aria.conbox.converter)</a> +</li> + <li><a href="ariaec.html#aria.conbox.converter.AriaEcXMLConverter.atm_list">atm_list() (aria.conbox.converter.AriaEcXMLConverter method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.converter.AriaEcXMLConverter.atm_product">atm_product() (aria.conbox.converter.AriaEcXMLConverter method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.AtmMap">AtmMap (class in aria.conbox.protmap)</a> +</li> + <li><a href="ariaec.html#aria.conbox.reader.Atom">Atom (class in aria.conbox.reader)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="B">B</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.commands.AriaEcCommands.bbconv">bbconv() (aria.conbox.commands.AriaEcCommands method)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="C">C</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.commands.check_file">check_file() (in module aria.conbox.commands)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protein.SsList.check_filetype">check_filetype() (aria.conbox.protein.SsList method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.reader.MapFile.check_maptype">check_maptype() (aria.conbox.reader.MapFile method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.reader.MapFile.check_type">check_type (aria.conbox.reader.MapFile attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.Map.check_type">check_type() (aria.conbox.protmap.Map method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.MapFilter.clash_dict">clash_dict (aria.conbox.protmap.MapFilter attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ProteinMap.classification_metrics">classification_metrics() (aria.conbox.protmap.ProteinMap static method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.reader.MapFileListReader.clear">clear() (aria.conbox.reader.MapFileListReader method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.analysis.colscatter">colscatter() (in module aria.conbox.analysis)</a> +</li> + <li><a href="ariaec.html#aria.conbox.commands.AriaEcCommands.command_list">command_list (aria.conbox.commands.AriaEcCommands attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ProteinMap.compare_contactmap">compare_contactmap() (aria.conbox.protmap.ProteinMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ProteinMap.compareplot">compareplot() (aria.conbox.protmap.ProteinMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.converter.AriaEcBbConverter.compute_diversityvalue">compute_diversityvalue() (aria.conbox.converter.AriaEcBbConverter static method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.MapFilter.cons_filter">cons_filter() (aria.conbox.protmap.MapFilter method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ProteinMap.contact_list">contact_list() (aria.conbox.protmap.ProteinMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.AaAtmMap.contact_map">contact_map() (aria.conbox.protmap.AaAtmMap method)</a> + + <ul> + <li><a href="ariaec.html#aria.conbox.protmap.AaMap.contact_map">(aria.conbox.protmap.AaMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ProteinMap.contact_map">(aria.conbox.protmap.ProteinMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ResAtmMap.contact_map">(aria.conbox.protmap.ResAtmMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ResMap.contact_map">(aria.conbox.protmap.ResMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.SsAaAtmMap.contact_map">(aria.conbox.protmap.SsAaAtmMap method)</a> +</li> + </ul></li> + <li><a href="ariaec.html#aria.conbox.commands.AriaEcCommands.contact_types">contact_types (aria.conbox.commands.AriaEcCommands attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.reader.ContactMapFile">ContactMapFile (class in aria.conbox.reader)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ProteinMap.contactset">contactset() (aria.conbox.protmap.ProteinMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.reader.Atom.coords">coords (aria.conbox.reader.Atom attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.AaAtmMap.copy">copy() (aria.conbox.protmap.AaAtmMap method)</a> + + <ul> + <li><a href="ariaec.html#aria.conbox.protmap.AaMap.copy">(aria.conbox.protmap.AaMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.AtmMap.copy">(aria.conbox.protmap.AtmMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.Map.copy">(aria.conbox.protmap.Map method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ProteinMap.copy">(aria.conbox.protmap.ProteinMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ResAtmMap.copy">(aria.conbox.protmap.ResAtmMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ResMap.copy">(aria.conbox.protmap.ResMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.SsAaAtmMap.copy">(aria.conbox.protmap.SsAaAtmMap method)</a> +</li> + </ul></li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.protmap.AaAtmMap.create_heatmap">create_heatmap() (aria.conbox.protmap.AaAtmMap method)</a> + + <ul> + <li><a href="ariaec.html#aria.conbox.protmap.AaMap.create_heatmap">(aria.conbox.protmap.AaMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ProteinMap.create_heatmap">(aria.conbox.protmap.ProteinMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ResAtmMap.create_heatmap">(aria.conbox.protmap.ResAtmMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ResMap.create_heatmap">(aria.conbox.protmap.ResMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.SsAaAtmMap.create_heatmap">(aria.conbox.protmap.SsAaAtmMap method)</a> +</li> + </ul></li> + <li><a href="ariaec.html#aria.conbox.protmap.AaAtmMap.create_index">create_index() (aria.conbox.protmap.AaAtmMap method)</a> + + <ul> + <li><a href="ariaec.html#aria.conbox.protmap.AaMap.create_index">(aria.conbox.protmap.AaMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.AtmMap.create_index">(aria.conbox.protmap.AtmMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ProteinMap.create_index">(aria.conbox.protmap.ProteinMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ResAtmMap.create_index">(aria.conbox.protmap.ResAtmMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ResMap.create_index">(aria.conbox.protmap.ResMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.SsAaAtmMap.create_index">(aria.conbox.protmap.SsAaAtmMap method)</a> +</li> + </ul></li> + <li><a href="ariaec.html#aria.conbox.reader.ContactMapFile.create_map">create_map() (aria.conbox.reader.ContactMapFile method)</a> + + <ul> + <li><a href="ariaec.html#aria.conbox.reader.DistanceMapFile.create_map">(aria.conbox.reader.DistanceMapFile method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.reader.MapFile.create_map">(aria.conbox.reader.MapFile method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.reader.PDBFile.create_map">(aria.conbox.reader.PDBFile method)</a> +</li> + </ul></li> + <li><a href="ariaec.html#aria.conbox.commands.AriaEcCommands.create_settings">create_settings() (aria.conbox.commands.AriaEcCommands method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.reader.CulledPdbFile">CulledPdbFile (class in aria.conbox.reader)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.MapFilter.cys_filter">cys_filter() (aria.conbox.protmap.MapFilter static method)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="D">D</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.reader.CulledPdbFile.default">default (aria.conbox.reader.CulledPdbFile attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.commands.AriaEcCommands.default_confile">default_confile (aria.conbox.commands.AriaEcCommands attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.converter.AriaXMLConverter.deff">deff() (aria.conbox.converter.AriaXMLConverter static method)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.commands.AriaEcCommands.desc_list">desc_list (aria.conbox.commands.AriaEcCommands attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ProteinMap.distance_method">distance_method (aria.conbox.protmap.ProteinMap attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.reader.DistanceMapFile">DistanceMapFile (class in aria.conbox.reader)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ProtMapCollection.distmap">distmap (aria.conbox.protmap.ProtMapCollection attribute)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="E">E</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.protein.AminoAcidSequence.end_reg">end_reg (aria.conbox.protein.AminoAcidSequence attribute)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.analysis.EnsembleAnalysis">EnsembleAnalysis (class in aria.conbox.analysis)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="F">F</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.reader.RegexFile.filename">filename (aria.conbox.reader.RegexFile attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.reader.RegexFile.filepath">filepath (aria.conbox.reader.RegexFile attribute)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.reader.CulledPdbFile.filetype">filetype (aria.conbox.reader.CulledPdbFile attribute)</a> + + <ul> + <li><a href="ariaec.html#aria.conbox.reader.TblDistFile.filetype">(aria.conbox.reader.TblDistFile attribute)</a> +</li> + </ul></li> + <li><a href="ariaec.html#aria.conbox.protmap.MapFilter.filter_types">filter_types (aria.conbox.protmap.MapFilter attribute)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="G">G</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.converter.AriaEcXMLConverter.get_dist">get_dist() (aria.conbox.converter.AriaEcXMLConverter method)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.pdbdist.PDBDist.get_proteinblocks">get_proteinblocks() (aria.conbox.pdbdist.PDBDist static method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.pdbdist.PDBDist.get_secstructs">get_secstructs() (aria.conbox.pdbdist.PDBDist static method)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="H">H</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.protmap.ProteinMap.heavy_reg">heavy_reg (aria.conbox.protmap.ProteinMap attribute)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.protein.AminoAcidSequence.humanidx">humanidx (aria.conbox.protein.AminoAcidSequence attribute)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="I">I</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.protein.SsList.index">index (aria.conbox.protein.SsList attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protein.SsList.indxplus_reg">indxplus_reg (aria.conbox.protein.SsList attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.settings.AriaEcSettings.infra">infra (aria.conbox.settings.AriaEcSettings attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.settings.AriaEcSettings.INTERLOWERBOUNDS">INTERLOWERBOUNDS (aria.conbox.settings.AriaEcSettings attribute)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.settings.AriaEcSettings.INTERTARGET">INTERTARGET (aria.conbox.settings.AriaEcSettings attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.settings.AriaEcSettings.INTERUPPERBOUNDS">INTERUPPERBOUNDS (aria.conbox.settings.AriaEcSettings attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.settings.AriaEcSettings.INTRALOWERBOUNDS">INTRALOWERBOUNDS (aria.conbox.settings.AriaEcSettings attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.settings.AriaEcSettings.INTRATARGET">INTRATARGET (aria.conbox.settings.AriaEcSettings attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.settings.AriaEcSettings.INTRAUPPERBOUNDS">INTRAUPPERBOUNDS (aria.conbox.settings.AriaEcSettings attribute)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="L">L</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.reader.RegexFile.load">load() (aria.conbox.reader.RegexFile method)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.settings.AriaEcSettings.load_config">load_config() (aria.conbox.settings.AriaEcSettings method)</a> + + <ul> + <li><a href="ariaec.html#aria.conbox.settings.Settings.load_config">(aria.conbox.settings.Settings method)</a> +</li> + </ul></li> + </ul></td> +</tr></table> + +<h2 id="M">M</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.commands.main">main() (in module aria.conbox.commands)</a> +</li> + <li><a href="ariaec.html#aria.conbox.settings.AriaEcSettings.make_infra">make_infra() (aria.conbox.settings.AriaEcSettings method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.Map">Map (class in aria.conbox.protmap)</a> +</li> + <li><a href="ariaec.html#aria.conbox.reader.MapFile">MapFile (class in aria.conbox.reader)</a> +</li> + <li><a href="ariaec.html#aria.conbox.reader.MapFileListReader">MapFileListReader (class in aria.conbox.reader)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.protmap.MapFilter">MapFilter (class in aria.conbox.protmap)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ProteinMap.maplot">maplot (aria.conbox.protmap.ProteinMap attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.commands.AriaEcCommands.maplot">maplot() (aria.conbox.commands.AriaEcCommands method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.converter.AriaXMLConverter.molecule">molecule (aria.conbox.converter.AriaXMLConverter attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.Map.mtype_choices">mtype_choices (aria.conbox.protmap.Map attribute)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="N">N</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.reader.Atom.name">name (aria.conbox.reader.Atom attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.MapFilter.nd_filter">nd_filter() (aria.conbox.protmap.MapFilter method)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.converter.AriaEcXMLConverter.neighcontact">neighcontact() (aria.conbox.converter.AriaEcXMLConverter static method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.converter.AriaEcXMLConverter.neighcontacts">neighcontacts() (aria.conbox.converter.AriaEcXMLConverter static method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.ndconv.net_deconv">net_deconv() (in module aria.conbox.ndconv)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="P">P</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.analysis.EnsembleAnalysis.pca_projection">pca_projection() (aria.conbox.analysis.EnsembleAnalysis static method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.pdbdist.PDBDist">PDBDist (class in aria.conbox.pdbdist)</a> +</li> + <li><a href="ariaec.html#aria.conbox.commands.AriaEcCommands.pdbdist">pdbdist() (aria.conbox.commands.AriaEcCommands method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.pdbdist.PDBDist.pdbdists">pdbdists() (aria.conbox.pdbdist.PDBDist method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.reader.PDBFile">PDBFile (class in aria.conbox.reader)</a> +</li> + <li><a href="ariaec.html#aria.conbox.commands.AriaEcCommands.pdbqual">pdbqual() (aria.conbox.commands.AriaEcCommands method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.reader.PDBFile.pdbreg">pdbreg (aria.conbox.reader.PDBFile attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.commands.AriaEcCommands.pdbstat">pdbstat() (aria.conbox.commands.AriaEcCommands method)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.protmap.ProteinMap.plotflush">plotflush() (aria.conbox.protmap.ProteinMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.MapFilter.pos_filter">pos_filter() (aria.conbox.protmap.MapFilter method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protein.Protein">Protein (class in aria.conbox.protein)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ProteinMap">ProteinMap (class in aria.conbox.protmap)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ProtMapCollection">ProtMapCollection (class in aria.conbox.protmap)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protein.SsList.psipred2_reg">psipred2_reg (aria.conbox.protein.SsList attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protein.SsList.psipred3_reg">psipred3_reg (aria.conbox.protein.SsList attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protein.SsList.psipred_reg">psipred_reg (aria.conbox.protein.SsList attribute)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="R">R</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.protein.AminoAcidSequence.read">read() (aria.conbox.protein.AminoAcidSequence method)</a> + + <ul> + <li><a href="ariaec.html#aria.conbox.protein.SsList.read">(aria.conbox.protein.SsList method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.reader.MapFile.read">(aria.conbox.reader.MapFile method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.reader.MapFileListReader.read">(aria.conbox.reader.MapFileListReader method)</a> +</li> + </ul></li> + <li><a href="ariaec.html#aria.conbox.protein.SsList.read_indextableplus">read_indextableplus() (aria.conbox.protein.SsList method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.converter.AriaXMLConverter.read_pdb">read_pdb() (aria.conbox.converter.AriaXMLConverter method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protein.SsList.read_psipred">read_psipred() (aria.conbox.protein.SsList method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.converter.AriaXMLConverter.read_seq">read_seq() (aria.conbox.converter.AriaXMLConverter method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protein.SsList.read_ssdist">read_ssdist() (aria.conbox.protein.SsList method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.commands.ReadableFile">ReadableFile (class in aria.conbox.commands)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protein.AminoAcidSequence.readtopo">readtopo() (aria.conbox.protein.AminoAcidSequence method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.AaMap.reduce">reduce() (aria.conbox.protmap.AaMap method)</a> + + <ul> + <li><a href="ariaec.html#aria.conbox.protmap.AtmMap.reduce">(aria.conbox.protmap.AtmMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.Map.reduce">(aria.conbox.protmap.Map method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ProteinMap.reduce">(aria.conbox.protmap.ProteinMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ResAtmMap.reduce">(aria.conbox.protmap.ResAtmMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.SsAaAtmMap.reduce">(aria.conbox.protmap.SsAaAtmMap method)</a> +</li> + </ul></li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.reader.CulledPdbFile.regex">regex (aria.conbox.reader.CulledPdbFile attribute)</a> + + <ul> + <li><a href="ariaec.html#aria.conbox.reader.TblDistFile.regex">(aria.conbox.reader.TblDistFile attribute)</a> +</li> + </ul></li> + <li><a href="ariaec.html#aria.conbox.reader.RegexFile">RegexFile (class in aria.conbox.reader)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.Map.remove">remove() (aria.conbox.protmap.Map method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ProteinMap.report">report() (aria.conbox.protmap.ProteinMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ResAtmMap">ResAtmMap (class in aria.conbox.protmap)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ResMap">ResMap (class in aria.conbox.protmap)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protein.AminoAcidSequence.restatement_reg">restatement_reg (aria.conbox.protein.AminoAcidSequence attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.analysis.EnsembleAnalysis.run">run() (aria.conbox.analysis.EnsembleAnalysis method)</a> + + <ul> + <li><a href="ariaec.html#aria.conbox.commands.AriaEcCommands.run">(aria.conbox.commands.AriaEcCommands method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.converter.AriaEcBbConverter.run">(aria.conbox.converter.AriaEcBbConverter method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.maplot.AriaEcContactMap.run">(aria.conbox.maplot.AriaEcContactMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.pdbdist.PDBDist.run">(aria.conbox.pdbdist.PDBDist method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.pdbqual.AriaEcPdbqual.run">(aria.conbox.pdbqual.AriaEcPdbqual method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.setup.AriaEcSetup.run">(aria.conbox.setup.AriaEcSetup method)</a> +</li> + </ul></li> + <li><a href="ariaec.html#aria.conbox.converter.AriaEcXMLConverter.run_tbl2xml">run_tbl2xml() (aria.conbox.converter.AriaEcXMLConverter method)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="S">S</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.protmap.ProteinMap.saveplot">saveplot() (aria.conbox.protmap.ProteinMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.settings.AriaEcSettings.SCSC_MIN">SCSC_MIN (aria.conbox.settings.AriaEcSettings attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.settings.AriaEcSettings.scsc_min">scsc_min (aria.conbox.settings.AriaEcSettings attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.settings.AriaEcSettings.SECTIONS">SECTIONS (aria.conbox.settings.AriaEcSettings attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protein.SsList.seq_sublist">seq_sublist() (aria.conbox.protein.SsList method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protein.SsList.sequence">sequence (aria.conbox.protein.SsList attribute)</a> + + <ul> + <li><a href="ariaec.html#aria.conbox.protmap.AaMap.sequence">(aria.conbox.protmap.AaMap attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ProteinMap.sequence">(aria.conbox.protmap.ProteinMap attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ResAtmMap.sequence">(aria.conbox.protmap.ResAtmMap attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ResMap.sequence">(aria.conbox.protmap.ResMap attribute)</a> +</li> + </ul></li> + <li><a href="ariaec.html#aria.conbox.protein.Protein.set_aa_sequence">set_aa_sequence() (aria.conbox.protein.Protein method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protein.Protein.set_sec_struct">set_sec_struct() (aria.conbox.protein.Protein method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.Map.set_value">set_value() (aria.conbox.protmap.Map method)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.settings.Setting">Setting (class in aria.conbox.settings)</a> +</li> + <li><a href="ariaec.html#aria.conbox.settings.Settings">Settings (class in aria.conbox.settings)</a> +</li> + <li><a href="ariaec.html#aria.conbox.commands.AriaEcCommands.setup">setup() (aria.conbox.commands.AriaEcCommands method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.Map.sortedset">sortedset() (aria.conbox.protmap.Map method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.settings.AriaEcSettings.SS_DIST">SS_DIST (aria.conbox.settings.AriaEcSettings attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protein.SsList.ss_dist_reg">ss_dist_reg (aria.conbox.protein.SsList attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.SsAaAtmMap.ss_types">ss_types (aria.conbox.protmap.SsAaAtmMap attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.SsAaAtmMap">SsAaAtmMap (class in aria.conbox.protmap)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.MapFilter.ssclash_filter">ssclash_filter() (aria.conbox.protmap.MapFilter static method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.settings.AriaEcSettings.ssdist">ssdist (aria.conbox.settings.AriaEcSettings attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protein.SsList">SsList (class in aria.conbox.protein)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protein.AminoAcidSequence.startres_reg">startres_reg (aria.conbox.protein.AminoAcidSequence attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.Map.subfill">subfill() (aria.conbox.protmap.Map method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protein.Protein.sync_index">sync_index() (aria.conbox.protein.Protein static method)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="T">T</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.converter.AriaEcXMLConverter.targetdistmaps">targetdistmaps() (aria.conbox.converter.AriaEcXMLConverter method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.commands.AriaEcCommands.tbl2xml">tbl2xml() (aria.conbox.commands.AriaEcCommands method)</a> + + <ul> + <li><a href="ariaec.html#aria.conbox.converter.AriaEcXMLConverter.tbl2xml">(aria.conbox.converter.AriaEcXMLConverter static method)</a> +</li> + </ul></li> + <li><a href="ariaec.html#aria.conbox.reader.TblDistFile">TblDistFile (class in aria.conbox.reader)</a> +</li> + <li><a href="ariaec.html#aria.conbox.settings.AriaEcSettings.template">template (aria.conbox.settings.AriaEcSettings attribute)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.protmap.Map.to_series">to_series() (aria.conbox.protmap.Map method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.Map.topmap">topmap() (aria.conbox.protmap.Map method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.settings.AriaEcSettings.TOPO">TOPO (aria.conbox.settings.AriaEcSettings attribute)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protein.AminoAcidSequence.topology">topology (aria.conbox.protein.AminoAcidSequence attribute)</a> + + <ul> + <li><a href="ariaec.html#aria.conbox.protein.Protein.topology">(aria.conbox.protein.Protein attribute)</a> +</li> + </ul></li> + <li><a href="ariaec.html#aria.conbox.reader.MapFile.types">types (aria.conbox.reader.MapFile attribute)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="U">U</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.converter.AriaXMLConverter.upd_mol">upd_mol() (aria.conbox.converter.AriaXMLConverter static method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.Map.update">update() (aria.conbox.protmap.Map method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.reader.ContactMapFile.update_map">update_map() (aria.conbox.reader.ContactMapFile method)</a> + + <ul> + <li><a href="ariaec.html#aria.conbox.reader.DistanceMapFile.update_map">(aria.conbox.reader.DistanceMapFile method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.reader.MapFile.update_map">(aria.conbox.reader.MapFile method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.reader.PDBFile.update_map">(aria.conbox.reader.PDBFile method)</a> +</li> + </ul></li> + </ul></td> +</tr></table> + +<h2 id="V">V</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.analysis.EnsembleAnalysis.violation_analysis">violation_analysis() (aria.conbox.analysis.EnsembleAnalysis static method)</a> +</li> + </ul></td> +</tr></table> + +<h2 id="W">W</h2> +<table style="width: 100%" class="indextable genindextable"><tr> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.converter.AriaEcXMLConverter.write_ariaproject">write_ariaproject() (aria.conbox.converter.AriaEcXMLConverter method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.settings.Settings.write_config">write_config() (aria.conbox.settings.Settings method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.ProteinMap.write_contacts">write_contacts() (aria.conbox.protmap.ProteinMap method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.converter.AriaXMLConverter.write_dihedral_tbl">write_dihedral_tbl() (aria.conbox.converter.AriaXMLConverter static method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.converter.AriaXMLConverter.write_dist_xml">write_dist_xml() (aria.conbox.converter.AriaXMLConverter static method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protmap.MapFilter.write_filtout">write_filtout() (aria.conbox.protmap.MapFilter static method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.converter.AriaXMLConverter.write_hb_tbl">write_hb_tbl() (aria.conbox.converter.AriaXMLConverter method)</a> +</li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="ariaec.html#aria.conbox.converter.AriaEcXMLConverter.write_map_restraint">write_map_restraint() (aria.conbox.converter.AriaEcXMLConverter method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.converter.AriaEcXMLConverter.write_maplist_restraints">write_maplist_restraints() (aria.conbox.converter.AriaEcXMLConverter method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.setup.AriaEcSetup.write_optional_files">write_optional_files() (aria.conbox.setup.AriaEcSetup method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protein.Protein.write_seq">write_seq() (aria.conbox.protein.Protein method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.converter.AriaXMLConverter.write_ssdist_tbl">write_ssdist_tbl() (aria.conbox.converter.AriaXMLConverter static method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.protein.SsList.write_ssfasta">write_ssfasta() (aria.conbox.protein.SsList method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.converter.AriaEcXMLConverter.write_tbl_restraints">write_tbl_restraints() (aria.conbox.converter.AriaEcXMLConverter method)</a> +</li> + <li><a href="ariaec.html#aria.conbox.converter.AriaXMLConverter.write_xmlseq">write_xmlseq() (aria.conbox.converter.AriaXMLConverter method)</a> +</li> + </ul></td> +</tr></table> + + + + </div> + <div class="articleComments"> + + </div> + </div> + <footer> + + + <hr/> + + <div role="contentinfo"> + <p> + © Copyright 2017, Fabrice Allain, Benjamin Bardiaux, Michael Habeck, Therese Malliavin, Wolfgang Rieping, and Michael Nilges. + + </p> + </div> + Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. + +</footer> + + </div> + </div> + + </section> + + </div> + + + + + + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT:'./', + VERSION:'0.3', + COLLAPSE_INDEX:false, + FILE_SUFFIX:'.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt' + }; + </script> + <script type="text/javascript" src="_static/jquery.js"></script> + <script type="text/javascript" src="_static/underscore.js"></script> + <script type="text/javascript" src="_static/doctools.js"></script> + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> + + + + + + <script type="text/javascript" src="_static/js/theme.js"></script> + + + + + <script type="text/javascript"> + jQuery(function () { + SphinxRtdTheme.StickyNav.enable(); + }); + </script> + + +</body> +</html> \ No newline at end of file diff --git a/docs/_build/html/index.html b/examples-dev/olds/_build/html/index.html similarity index 84% rename from docs/_build/html/index.html rename to examples-dev/olds/_build/html/index.html index 4dc42399dc79f80d97593b8a10875134aaf94518..775a39dbafd7ce003a859fc623a8b8e3c7c1a8f7 100644 --- a/docs/_build/html/index.html +++ b/examples-dev/olds/_build/html/index.html @@ -8,7 +8,7 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <title>Welcome to ARIAEC’s documentation! — ARIA 4 documentation</title> + <title>Welcome to Aria-EC’s documentation! — Aria-EC 0.3 documentation</title> @@ -35,8 +35,7 @@ <link rel="index" title="Index" href="genindex.html"/> <link rel="search" title="Search" href="search.html"/> - <link rel="copyright" title="Copyright" href="copyright.html"/> - <link rel="top" title="ARIA 4 documentation" href="#"/> + <link rel="top" title="Aria-EC 0.3 documentation" href="#"/> <script src="_static/js/modernizr.min.js"></script> @@ -55,7 +54,7 @@ - <a href="#" class="icon icon-home"> ARIA + <a href="#" class="icon icon-home"> Aria-EC @@ -65,7 +64,7 @@ <div class="version"> - 2 + 0.3 </div> @@ -91,7 +90,7 @@ <!-- Local TOC --> <div class="local-toc"><ul> -<li><a class="reference internal" href="#">Welcome to ARIAEC’s documentation!</a></li> +<li><a class="reference internal" href="#">Welcome to Aria-EC’s documentation!</a></li> <li><a class="reference internal" href="#indices-and-tables">Indices and tables</a></li> </ul> </div> @@ -107,7 +106,7 @@ <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="#">ARIA</a> + <a href="#">Aria-EC</a> </nav> @@ -137,7 +136,7 @@ <li><a href="#">Docs</a> »</li> - <li>Welcome to ARIAEC’s documentation!</li> + <li>Welcome to Aria-EC’s documentation!</li> <li class="wy-breadcrumbs-aside"> @@ -156,8 +155,8 @@ <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div itemprop="articleBody"> - <div class="section" id="welcome-to-ariaec-s-documentation"> -<h1>Welcome to ARIAEC’s documentation!<a class="headerlink" href="#welcome-to-ariaec-s-documentation" title="Permalink to this headline">¶</a></h1> + <div class="section" id="welcome-to-aria-ec-s-documentation"> +<h1>Welcome to Aria-EC’s documentation!<a class="headerlink" href="#welcome-to-aria-ec-s-documentation" title="Permalink to this headline">¶</a></h1> <div class="toctree-wrapper compound"> </div> </div> @@ -183,7 +182,7 @@ <div role="contentinfo"> <p> - © <a href="copyright.html">Copyright</a> 2017, Benjamin Bardiaux, Michael Habeck, Therese Malliavin, Wolfgang Rieping, and Michael Nilges. + © Copyright 2017, Fabrice Allain, Benjamin Bardiaux, Michael Habeck, Therese Malliavin, Wolfgang Rieping, and Michael Nilges. </p> </div> @@ -205,7 +204,7 @@ <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT:'./', - VERSION:'4', + VERSION:'0.3', COLLAPSE_INDEX:false, FILE_SUFFIX:'.html', HAS_SOURCE: true, diff --git a/docs/_build/html/modules.html b/examples-dev/olds/_build/html/modules.html similarity index 89% rename from docs/_build/html/modules.html rename to examples-dev/olds/_build/html/modules.html index 931ee32b1703cb6da45cd1e593856aa055cf6c0f..215b78d750a8a8354b038d7aa8ba5d77cd46836b 100644 --- a/docs/_build/html/modules.html +++ b/examples-dev/olds/_build/html/modules.html @@ -8,7 +8,7 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <title>ariaec — ARIA 4 documentation</title> + <title>ariaec — Aria-EC 0.3 documentation</title> @@ -35,8 +35,7 @@ <link rel="index" title="Index" href="genindex.html"/> <link rel="search" title="Search" href="search.html"/> - <link rel="copyright" title="Copyright" href="copyright.html"/> - <link rel="top" title="ARIA 4 documentation" href="index.html"/> + <link rel="top" title="Aria-EC 0.3 documentation" href="index.html"/> <script src="_static/js/modernizr.min.js"></script> @@ -55,7 +54,7 @@ - <a href="index.html" class="icon icon-home"> ARIA + <a href="index.html" class="icon icon-home"> Aria-EC @@ -65,7 +64,7 @@ <div class="version"> - 2 + 0.3 </div> @@ -106,7 +105,7 @@ <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="index.html">ARIA</a> + <a href="index.html">Aria-EC</a> </nav> @@ -174,7 +173,7 @@ <div role="contentinfo"> <p> - © <a href="copyright.html">Copyright</a> 2017, Benjamin Bardiaux, Michael Habeck, Therese Malliavin, Wolfgang Rieping, and Michael Nilges. + © Copyright 2017, Fabrice Allain, Benjamin Bardiaux, Michael Habeck, Therese Malliavin, Wolfgang Rieping, and Michael Nilges. </p> </div> @@ -196,7 +195,7 @@ <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT:'./', - VERSION:'4', + VERSION:'0.3', COLLAPSE_INDEX:false, FILE_SUFFIX:'.html', HAS_SOURCE: true, diff --git a/examples-dev/olds/_build/html/objects.inv b/examples-dev/olds/_build/html/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..c900d64e5731d3f63b395fad172e6a70709faee8 Binary files /dev/null and b/examples-dev/olds/_build/html/objects.inv differ diff --git a/docs/_build/html/copyright.html b/examples-dev/olds/_build/html/py-modindex.html similarity index 50% rename from docs/_build/html/copyright.html rename to examples-dev/olds/_build/html/py-modindex.html index fe1f0a9081a0365fd217d64c141e04b408ad989c..83c11458948c2ddf00c1aa9f1147e2d86e400a22 100644 --- a/docs/_build/html/copyright.html +++ b/examples-dev/olds/_build/html/py-modindex.html @@ -8,7 +8,7 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <title>Sphinx authors — ARIA 4 documentation</title> + <title>Python Module Index — Aria-EC 0.3 documentation</title> @@ -35,8 +35,10 @@ <link rel="index" title="Index" href="genindex.html"/> <link rel="search" title="Search" href="search.html"/> - <link rel="copyright" title="Copyright" href="#"/> - <link rel="top" title="ARIA 4 documentation" href="index.html"/> + <link rel="top" title="Aria-EC 0.3 documentation" href="index.html"/> + + + <script src="_static/js/modernizr.min.js"></script> @@ -55,7 +57,7 @@ - <a href="index.html" class="icon icon-home"> ARIA + <a href="index.html" class="icon icon-home"> Aria-EC @@ -65,7 +67,7 @@ <div class="version"> - 2 + 0.3 </div> @@ -90,10 +92,7 @@ <!-- Local TOC --> - <div class="local-toc"><ul> -<li><a class="reference internal" href="#">Sphinx authors</a></li> -</ul> -</div> + <div class="local-toc"></div> </div> @@ -106,7 +105,7 @@ <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="index.html">ARIA</a> + <a href="index.html">Aria-EC</a> </nav> @@ -136,14 +135,12 @@ <li><a href="index.html">Docs</a> »</li> - <li>Sphinx authors</li> + <li>Python Module Index</li> <li class="wy-breadcrumbs-aside"> - <a href="_sources/copyright.rst.txt" rel="nofollow"> View page source</a> - </li> @@ -155,32 +152,89 @@ <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div itemprop="articleBody"> - <div class="section" id="sphinx-authors"> -<span id="copyright"></span><h1>Sphinx authors<a class="headerlink" href="#sphinx-authors" title="Permalink to this headline">¶</a></h1> -<dl class="docutils"> -<dt>“â€â€œ</dt> -<dd><p class="first">ARIA – Ambiguous Restraints for Iterative Assignment</p> -<blockquote class="last"> -<div><p>A software for automated NOE assignment</p> -<blockquote> -<div>Version 2.3</div></blockquote> -</div></blockquote> -</dd> -<dt>Copyright (C) Benjamin Bardiaux, Michael Habeck, Therese Malliavin,</dt> -<dd>Wolfgang Rieping, and Michael Nilges</dd> -</dl> -<p>All rights reserved.</p> -<p>NO WARRANTY. This software package is provided ‘as is’ without warranty of -any kind, expressed or implied, including, but not limited to the implied -warranties of merchantability and fitness for a particular purpose or -a warranty of non-infringement.</p> -<p>Distribution of substantively modified versions of this module is -prohibited without the explicit permission of the copyright holders.</p> -<p>$Author: bardiaux $ -$Revision: 1.1.1.1 $ -$Date: 2010/03/23 15:27:16 $ -“â€â€œ</p> -</div> + + <h1>Python Module Index</h1> + + <div class="modindex-jumpbox"> + <a href="#cap-a"><strong>a</strong></a> + </div> + + <table class="indextable modindextable"> + <tr class="pcap"><td></td><td> </td><td></td></tr> + <tr class="cap" id="cap-a"><td></td><td> + <strong>a</strong></td><td></td></tr> + <tr> + <td><img src="_static/minus.png" class="toggler" + id="toggle-1" style="display: none" alt="-" /></td> + <td> + <code class="xref">aria</code></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="ariaec.html#module-aria.conbox"><code class="xref">aria.conbox</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="ariaec.html#module-aria.conbox.analysis"><code class="xref">aria.conbox.analysis</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="ariaec.html#module-aria.conbox.commands"><code class="xref">aria.conbox.commands</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="ariaec.html#module-aria.conbox.converter"><code class="xref">aria.conbox.converter</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="ariaec.html#module-aria.conbox.maplot"><code class="xref">aria.conbox.maplot</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="ariaec.html#module-aria.conbox.ndconv"><code class="xref">aria.conbox.ndconv</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="ariaec.html#module-aria.conbox.pdbdist"><code class="xref">aria.conbox.pdbdist</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="ariaec.html#module-aria.conbox.pdbqual"><code class="xref">aria.conbox.pdbqual</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="ariaec.html#module-aria.conbox.protein"><code class="xref">aria.conbox.protein</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="ariaec.html#module-aria.conbox.protmap"><code class="xref">aria.conbox.protmap</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="ariaec.html#module-aria.conbox.reader"><code class="xref">aria.conbox.reader</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="ariaec.html#module-aria.conbox.settings"><code class="xref">aria.conbox.settings</code></a></td><td> + <em></em></td></tr> + <tr class="cg-1"> + <td></td> + <td>    + <a href="ariaec.html#module-aria.conbox.setup"><code class="xref">aria.conbox.setup</code></a></td><td> + <em></em></td></tr> + </table> </div> @@ -195,7 +249,7 @@ $Date: 2010/03/23 15:27:16 $ <div role="contentinfo"> <p> - © <a href="#">Copyright</a> 2017, Benjamin Bardiaux, Michael Habeck, Therese Malliavin, Wolfgang Rieping, and Michael Nilges. + © Copyright 2017, Fabrice Allain, Benjamin Bardiaux, Michael Habeck, Therese Malliavin, Wolfgang Rieping, and Michael Nilges. </p> </div> @@ -217,7 +271,7 @@ $Date: 2010/03/23 15:27:16 $ <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT:'./', - VERSION:'4', + VERSION:'0.3', COLLAPSE_INDEX:false, FILE_SUFFIX:'.html', HAS_SOURCE: true, diff --git a/docs/_build/html/search.html b/examples-dev/olds/_build/html/search.html similarity index 89% rename from docs/_build/html/search.html rename to examples-dev/olds/_build/html/search.html index f65054604e9dbd9c848d59ff6142e3ec26bf77fe..392f0e7a1590618b0ef7a0569d69fb6c16bd7497 100644 --- a/docs/_build/html/search.html +++ b/examples-dev/olds/_build/html/search.html @@ -8,7 +8,7 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <title>Search — ARIA 4 documentation</title> + <title>Search — Aria-EC 0.3 documentation</title> @@ -35,8 +35,7 @@ <link rel="index" title="Index" href="genindex.html"/> <link rel="search" title="Search" href="#"/> - <link rel="copyright" title="Copyright" href="copyright.html"/> - <link rel="top" title="ARIA 4 documentation" href="index.html"/> + <link rel="top" title="Aria-EC 0.3 documentation" href="index.html"/> <script src="_static/js/modernizr.min.js"></script> @@ -55,7 +54,7 @@ - <a href="index.html" class="icon icon-home"> ARIA + <a href="index.html" class="icon icon-home"> Aria-EC @@ -65,7 +64,7 @@ <div class="version"> - 2 + 0.3 </div> @@ -103,7 +102,7 @@ <nav class="wy-nav-top" role="navigation" aria-label="top navigation"> <i data-toggle="wy-nav-top" class="fa fa-bars"></i> - <a href="index.html">ARIA</a> + <a href="index.html">Aria-EC</a> </nav> @@ -174,7 +173,7 @@ <div role="contentinfo"> <p> - © <a href="copyright.html">Copyright</a> 2017, Benjamin Bardiaux, Michael Habeck, Therese Malliavin, Wolfgang Rieping, and Michael Nilges. + © Copyright 2017, Fabrice Allain, Benjamin Bardiaux, Michael Habeck, Therese Malliavin, Wolfgang Rieping, and Michael Nilges. </p> </div> @@ -196,7 +195,7 @@ <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT:'./', - VERSION:'4', + VERSION:'0.3', COLLAPSE_INDEX:false, FILE_SUFFIX:'.html', HAS_SOURCE: true, diff --git a/examples-dev/olds/_build/html/searchindex.js b/examples-dev/olds/_build/html/searchindex.js new file mode 100644 index 0000000000000000000000000000000000000000..f7428e485f4292058f1b09149dbed003ffaab010 --- /dev/null +++ b/examples-dev/olds/_build/html/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({docnames:["ariaec","ariaec.test","index","modules"],envversion:52,filenames:["ariaec.rst","ariaec.test.rst","index.rst","modules.rst"],objects:{"aria.conbox":{analysis:[0,0,0,"-"],commands:[0,0,0,"-"],converter:[0,0,0,"-"],maplot:[0,0,0,"-"],ndconv:[0,0,0,"-"],pdbdist:[0,0,0,"-"],pdbqual:[0,0,0,"-"],protein:[0,0,0,"-"],protmap:[0,0,0,"-"],reader:[0,0,0,"-"],settings:[0,0,0,"-"],setup:[0,0,0,"-"]},"aria.conbox.analysis":{EnsembleAnalysis:[0,1,1,""],colscatter:[0,4,1,""]},"aria.conbox.analysis.EnsembleAnalysis":{pca_projection:[0,2,1,""],run:[0,3,1,""],violation_analysis:[0,2,1,""]},"aria.conbox.commands":{AriaEcCommands:[0,1,1,""],ReadableFile:[0,1,1,""],check_file:[0,4,1,""],main:[0,4,1,""]},"aria.conbox.commands.AriaEcCommands":{analysis:[0,3,1,""],bbconv:[0,3,1,""],command_list:[0,5,1,""],contact_types:[0,5,1,""],create_settings:[0,3,1,""],default_confile:[0,5,1,""],desc_list:[0,5,1,""],maplot:[0,3,1,""],pdbdist:[0,3,1,""],pdbqual:[0,3,1,""],pdbstat:[0,3,1,""],run:[0,3,1,""],setup:[0,3,1,""],tbl2xml:[0,3,1,""]},"aria.conbox.converter":{AriaEcBbConverter:[0,1,1,""],AriaEcXMLConverter:[0,1,1,""],AriaXMLConverter:[0,1,1,""]},"aria.conbox.converter.AriaEcBbConverter":{compute_diversityvalue:[0,2,1,""],run:[0,3,1,""]},"aria.conbox.converter.AriaEcXMLConverter":{atm_list:[0,3,1,""],atm_product:[0,3,1,""],get_dist:[0,3,1,""],neighcontact:[0,2,1,""],neighcontacts:[0,2,1,""],run_tbl2xml:[0,3,1,""],targetdistmaps:[0,3,1,""],tbl2xml:[0,2,1,""],write_ariaproject:[0,3,1,""],write_map_restraint:[0,3,1,""],write_maplist_restraints:[0,3,1,""],write_tbl_restraints:[0,3,1,""]},"aria.conbox.converter.AriaXMLConverter":{deff:[0,2,1,""],molecule:[0,5,1,""],read_pdb:[0,3,1,""],read_seq:[0,3,1,""],upd_mol:[0,2,1,""],write_dihedral_tbl:[0,2,1,""],write_dist_xml:[0,2,1,""],write_hb_tbl:[0,3,1,""],write_ssdist_tbl:[0,2,1,""],write_xmlseq:[0,3,1,""]},"aria.conbox.maplot":{AriaEcContactMap:[0,1,1,""]},"aria.conbox.maplot.AriaEcContactMap":{run:[0,3,1,""]},"aria.conbox.ndconv":{net_deconv:[0,4,1,""]},"aria.conbox.pdbdist":{PDBDist:[0,1,1,""]},"aria.conbox.pdbdist.PDBDist":{get_proteinblocks:[0,2,1,""],get_secstructs:[0,2,1,""],pdbdists:[0,3,1,""],run:[0,3,1,""]},"aria.conbox.pdbqual":{AriaEcPdbqual:[0,1,1,""]},"aria.conbox.pdbqual.AriaEcPdbqual":{run:[0,3,1,""]},"aria.conbox.protein":{AminoAcidSequence:[0,1,1,""],Protein:[0,1,1,""],SsList:[0,1,1,""]},"aria.conbox.protein.AminoAcidSequence":{end_reg:[0,5,1,""],humanidx:[0,5,1,""],read:[0,3,1,""],readtopo:[0,3,1,""],restatement_reg:[0,5,1,""],startres_reg:[0,5,1,""],topology:[0,5,1,""]},"aria.conbox.protein.Protein":{set_aa_sequence:[0,3,1,""],set_sec_struct:[0,3,1,""],sync_index:[0,2,1,""],topology:[0,5,1,""],write_seq:[0,3,1,""]},"aria.conbox.protein.SsList":{check_filetype:[0,3,1,""],index:[0,5,1,""],indxplus_reg:[0,5,1,""],psipred2_reg:[0,5,1,""],psipred3_reg:[0,5,1,""],psipred_reg:[0,5,1,""],read:[0,3,1,""],read_indextableplus:[0,3,1,""],read_psipred:[0,3,1,""],read_ssdist:[0,3,1,""],seq_sublist:[0,3,1,""],sequence:[0,5,1,""],ss_dist_reg:[0,5,1,""],write_ssfasta:[0,3,1,""]},"aria.conbox.protmap":{AaAtmMap:[0,1,1,""],AaMap:[0,1,1,""],AtmMap:[0,1,1,""],Map:[0,1,1,""],MapFilter:[0,1,1,""],ProtMapCollection:[0,1,1,""],ProteinMap:[0,1,1,""],ResAtmMap:[0,1,1,""],ResMap:[0,1,1,""],SsAaAtmMap:[0,1,1,""]},"aria.conbox.protmap.AaAtmMap":{contact_map:[0,3,1,""],copy:[0,3,1,""],create_heatmap:[0,3,1,""],create_index:[0,3,1,""]},"aria.conbox.protmap.AaMap":{contact_map:[0,3,1,""],copy:[0,3,1,""],create_heatmap:[0,3,1,""],create_index:[0,3,1,""],reduce:[0,3,1,""],sequence:[0,5,1,""]},"aria.conbox.protmap.AtmMap":{copy:[0,3,1,""],create_index:[0,3,1,""],reduce:[0,3,1,""]},"aria.conbox.protmap.Map":{check_type:[0,3,1,""],copy:[0,3,1,""],mtype_choices:[0,5,1,""],reduce:[0,3,1,""],remove:[0,3,1,""],set_value:[0,3,1,""],sortedset:[0,3,1,""],subfill:[0,3,1,""],to_series:[0,3,1,""],topmap:[0,3,1,""],update:[0,3,1,""]},"aria.conbox.protmap.MapFilter":{clash_dict:[0,5,1,""],cons_filter:[0,3,1,""],cys_filter:[0,2,1,""],filter_types:[0,5,1,""],nd_filter:[0,3,1,""],pos_filter:[0,3,1,""],ssclash_filter:[0,2,1,""],write_filtout:[0,2,1,""]},"aria.conbox.protmap.ProtMapCollection":{allcontactmap:[0,5,1,""],alldistmap:[0,5,1,""],allscoremap:[0,5,1,""],distmap:[0,5,1,""]},"aria.conbox.protmap.ProteinMap":{all_reg:[0,5,1,""],classification_metrics:[0,2,1,""],compare_contactmap:[0,3,1,""],compareplot:[0,3,1,""],contact_list:[0,3,1,""],contact_map:[0,3,1,""],contactset:[0,3,1,""],copy:[0,3,1,""],create_heatmap:[0,3,1,""],create_index:[0,3,1,""],distance_method:[0,5,1,""],heavy_reg:[0,5,1,""],maplot:[0,5,1,""],plotflush:[0,3,1,""],reduce:[0,3,1,""],report:[0,3,1,""],saveplot:[0,3,1,""],sequence:[0,5,1,""],write_contacts:[0,3,1,""]},"aria.conbox.protmap.ResAtmMap":{contact_map:[0,3,1,""],copy:[0,3,1,""],create_heatmap:[0,3,1,""],create_index:[0,3,1,""],reduce:[0,3,1,""],sequence:[0,5,1,""]},"aria.conbox.protmap.ResMap":{contact_map:[0,3,1,""],copy:[0,3,1,""],create_heatmap:[0,3,1,""],create_index:[0,3,1,""],sequence:[0,5,1,""]},"aria.conbox.protmap.SsAaAtmMap":{contact_map:[0,3,1,""],copy:[0,3,1,""],create_heatmap:[0,3,1,""],create_index:[0,3,1,""],reduce:[0,3,1,""],ss_types:[0,5,1,""]},"aria.conbox.reader":{Atom:[0,1,1,""],ContactMapFile:[0,1,1,""],CulledPdbFile:[0,1,1,""],DistanceMapFile:[0,1,1,""],MapFile:[0,1,1,""],MapFileListReader:[0,1,1,""],PDBFile:[0,1,1,""],RegexFile:[0,1,1,""],TblDistFile:[0,1,1,""]},"aria.conbox.reader.Atom":{coords:[0,5,1,""],name:[0,5,1,""]},"aria.conbox.reader.ContactMapFile":{create_map:[0,3,1,""],update_map:[0,3,1,""]},"aria.conbox.reader.CulledPdbFile":{"default":[0,5,1,""],filetype:[0,5,1,""],regex:[0,5,1,""]},"aria.conbox.reader.DistanceMapFile":{create_map:[0,3,1,""],update_map:[0,3,1,""]},"aria.conbox.reader.MapFile":{check_maptype:[0,3,1,""],check_type:[0,5,1,""],create_map:[0,3,1,""],read:[0,3,1,""],types:[0,5,1,""],update_map:[0,3,1,""]},"aria.conbox.reader.MapFileListReader":{clear:[0,3,1,""],read:[0,3,1,""]},"aria.conbox.reader.PDBFile":{create_map:[0,3,1,""],pdbreg:[0,5,1,""],update_map:[0,3,1,""]},"aria.conbox.reader.RegexFile":{filename:[0,5,1,""],filepath:[0,5,1,""],load:[0,3,1,""]},"aria.conbox.reader.TblDistFile":{filetype:[0,5,1,""],regex:[0,5,1,""]},"aria.conbox.settings":{AriaEcSettings:[0,1,1,""],Setting:[0,1,1,""],Settings:[0,1,1,""]},"aria.conbox.settings.AriaEcSettings":{ARIAPROJ_TEMPLATE:[0,5,1,""],INTERLOWERBOUNDS:[0,5,1,""],INTERTARGET:[0,5,1,""],INTERUPPERBOUNDS:[0,5,1,""],INTRALOWERBOUNDS:[0,5,1,""],INTRATARGET:[0,5,1,""],INTRAUPPERBOUNDS:[0,5,1,""],SCSC_MIN:[0,5,1,""],SECTIONS:[0,5,1,""],SS_DIST:[0,5,1,""],TOPO:[0,5,1,""],infra:[0,5,1,""],load_config:[0,3,1,""],make_infra:[0,3,1,""],scsc_min:[0,5,1,""],ssdist:[0,5,1,""],template:[0,5,1,""]},"aria.conbox.settings.Settings":{load_config:[0,3,1,""],write_config:[0,3,1,""]},"aria.conbox.setup":{AriaEcSetup:[0,1,1,""]},"aria.conbox.setup.AriaEcSetup":{run:[0,3,1,""],write_optional_files:[0,3,1,""]},aria:{conbox:[0,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","staticmethod","Python static method"],"3":["py","method","Python method"],"4":["py","function","Python function"],"5":["py","attribute","Python attribute"]},objtypes:{"0":"py:module","1":"py:class","2":"py:staticmethod","3":"py:method","4":"py:function","5":"py:attribute"},terms:{"0x343ad80":[],"0x3453a20":[],"0x34d2270":[],"0x34d2610":[],"0x34d33c0":[],"0x34e23d0":[],"0x34f2340":[],"0x34f3f90":[],"0x34fa210":[],"0x34fb6d0":[],"0x34fba90":[],"0x34fc1f0":[],"0x34fc7b0":[],"0x34fd5c0":[],"0x34fda90":[],"0x34fdff0":[],"0x35002a0":[],"0x4c62630":0,"0x4ced770":0,"0x4d527b0":0,"0x4d52fd0":0,"0x4d63060":0,"0x4d72420":0,"0x4d74500":0,"0x4d74780":0,"0x4d75410":0,"0x4d76640":0,"0x4d7b8a0":0,"0x4d7c8b0":0,"0x4d7d8d0":0,"0x4d7de60":0,"0x4d7ec70":0,"0x4d7f140":0,"0x4d817b0":0,"25_d160427_chains3743":0,"6_r0":0,"abstract":0,"class":0,"default":0,"float":0,"int":0,"return":0,"static":0,"true":0,CNS:0,For:0,Its:0,Res:0,The:0,There:0,Use:0,_sre:0,aa_seq:0,aaatmmap:0,aamap:0,absolut:0,acc:0,access:0,accord:0,acid:0,action:0,actual:0,adjust:0,adr_flag:0,algorithm:0,alia:0,align:0,all:0,all_reg:0,allcontactmap:0,alldistmap:0,allscoremap:0,allvsal:0,alpha:0,amino:0,aminoacidsequ:0,analys:0,analyz:0,angl:0,anoth:0,appli:0,applic:0,arg:0,argpars:0,argument:0,aria_ec:0,aria_project_v2:0,aria_templ:0,ariaec:0,ariaecbbconvert:0,ariaeccommand:0,ariaeccontactmap:0,ariaecpdbqu:0,ariaecset:0,ariaecsetup:0,ariaecxmlconvert:0,ariaproj_templ:0,ariaproject:0,ariaset:0,ariaxmlconvert:0,arrai:0,assign:0,assum:0,atm:0,atm_dist:0,atm_list:0,atm_product:0,atmask:0,atmmap:0,atom:0,atom_typ:0,attribut:0,author:0,averag:0,axe:0,axtitl:0,bacbkon:0,backbon:0,bardiaux:0,basenam:0,bbcontact:0,bbconv:0,bbconvert:0,been:0,below:0,benjamin:0,beta:0,between:0,bio:0,bioinformat:0,biotechnolog:0,block:0,bond:0,bool:0,both:0,build:0,call:0,can:0,cd1:0,cd2:0,chain:0,check:0,check_fil:0,check_filetyp:0,check_maptyp:0,check_typ:0,choos:0,clash:0,clash_dict:0,clashlist:0,classif:0,classification_metr:0,clear:0,close:0,clusteridx:0,cmpmap:0,cns:0,code:0,col:0,colnam:0,color:0,colscatt:0,column:0,command_list:0,commandprotocol:0,common:0,compar:0,compare_contactmap:0,compareplot:0,complexc:0,compon:0,comput:0,compute_diversityvalu:0,con:0,conf:0,config:0,configpars:0,configpath:0,conflict:0,cons_filt:0,conserv:0,constraint:0,cont_def:0,contact:0,contact_list:0,contact_map:0,contact_typ:0,contactdef:0,contactlist:0,contactmap:0,contactmapfil:0,contactset:0,contain:0,contrib:0,control:0,convers:0,coord:0,coordin:0,copi:0,core:0,correspond:0,creat:0,create_heatmap:0,create_index:0,create_map:0,create_set:0,csv:0,cull:0,culledpdbfil:0,cullpdb:0,cullpdb_pc25_res1:0,current:0,custom_log:0,cut:0,cys:0,cys_filt:0,daniel:0,data:0,datafram:0,deconvolut:0,deconvolv:0,def_cut:0,default_1:0,default_2:0,default_3:0,default_4:0,default_confil:0,defaultdist:0,deff:0,defin:0,depend:0,deriv:0,desc:0,desc_dict:0,desc_list:0,desclist:0,descript:0,descriptor:0,detail:0,dict:0,dictionari:0,differ:0,dihe:0,dihed_fil:0,dihedr:0,direct:0,displai:0,dist:0,dist_fil:0,dist_restraint:0,distanc:0,distance_method:0,distancemap:0,distancemapfil:0,distfil:0,distinguish:0,distmap:0,distribut:0,dists_ref:0,disulfid:0,divers:0,diversity_scor:0,dminu:0,dono:0,dplu:0,dpow:0,dssp_dict:0,dtype:0,dunbrack:0,duplic:0,duplicate_level:0,dynamicattr:0,each:0,ec_scor:0,edg:0,effect:0,eigenvalu:0,element:0,empti:0,end_reg:0,ensembl:0,ensembleanalysi:0,euclidean:0,evfold:0,evolut:0,evolutionari:0,execut:0,exist:0,exp:0,explain:0,expon:0,extend:0,extra:0,extract:0,fallain:0,fals:0,feizi:0,field:0,file:0,filenam:0,filepath:0,filetyp:0,fill:0,filter:0,filter_typ:0,flaglist:0,flush:0,follow:0,form:0,format:0,fraction:0,frame:0,from:0,gener:0,get:0,get_dist:0,get_proteinblock:0,get_secstruct:0,gideon:0,give:0,given:0,gmm:0,gremlin:0,group:0,groupbi:0,groupby_method:0,hamelryck:0,has:0,hb_file:0,hbmap:0,hbond:0,hbscore:0,headerflag:0,heatmap:0,heavi:0,heavy_reg:0,high:0,highli:0,human_idx:0,humanidx:0,idx1:0,idx2:0,idxnam:0,iff:0,implement:0,improp:0,index1:0,index2:0,index:[0,2],indxplus_reg:0,info:0,infra:0,infrastructur:0,ini:0,initi:0,initiat:0,input:0,insid:0,instanti:0,inter:0,interact:0,interfac:0,interlowerbound:0,intertarget:0,interupperbound:0,intra:0,intralowerbound:0,intratarget:0,intraupperbound:0,iter:0,iteration_id:0,kei:0,kelli:0,kept:0,kind:0,knrj:0,kwarg:0,lab:0,largest:0,launch:0,legaci:0,legend_prefix:0,length:0,letter:0,level:0,licens:0,line:0,linewidth:0,list:0,list_nam:0,list_typ:0,listnam:0,load:0,load_config:0,low:0,lower:0,lowerbound:0,lr_type:0,made:0,main:0,make_infra:0,manderick:0,manoli:0,map:0,mapdict:0,mapfil:0,mapfilelistread:0,mapfilt:0,maplist:0,maptyp:0,marbach:0,mat_nd:0,matric:0,matrix:0,maxidx:0,maximum:0,medard:0,metapsicov:0,metapsicov_stg1:0,metapsicov_stg2:0,metapsicovhb:0,method:0,metric:0,min:0,minim:0,mit:0,modul:2,molecul:0,molecule_path:0,more:0,msa:0,mtype:0,mtype_choic:0,multi:0,multiindex:0,multipl:0,muriel:0,n_hb:0,name:0,nativ:0,native_ful:0,natur:0,nb_c:0,nb_topcontact:0,nd_filter:0,ndim:0,neg:0,neighcontact:0,net_deconv:0,network:0,node:0,nofilt:0,non:0,none:0,note:0,npmat:0,number:0,numpi:0,obj:0,object:0,observ:0,off:0,offset:0,one:0,onli:0,option:0,ordereddict:0,other:0,out_fil:0,outdir:0,outdir_path:0,outfil:0,outprefix:0,output:0,over:0,page:2,pair:0,pair_list:0,pairdict:0,palett:0,panda:0,paper:0,param:0,paramet:0,pars:0,path:0,pbxplore:0,pca:0,pca_project:0,pconsc1:0,pconsc2:0,pconsc:0,pdb:0,pdbfile:0,pdbid:0,pdbparser:0,pdbpath:0,pdbreg:0,pdbstat:0,pdf:0,phe1:0,phi:0,physic:0,pickler:0,pics:0,pisc:0,pkg:0,plm:0,plm_score:0,plmc:0,plmdca:0,plmev:0,plot:0,plot_dpi:0,plot_ext:0,plotag:0,plotdir:0,plotflush:0,pos:0,pos_filt:0,posit:0,predict:0,prefix:0,pro:0,process:0,product:0,product_typ:0,program:0,project:0,prospective_fil:0,proteinmap:0,protmapcollect:0,protocol:0,provid:0,proxim:0,psi:0,psicov:0,psipred2_reg:0,psipred3_reg:0,psipred_reg:0,python:0,qual:0,qualiti:0,rac:0,read:0,read_indextableplu:0,read_pdb:0,read_psipr:0,read_seq:0,read_ssdist:0,readabl:0,readablefil:0,readtopo:0,reduc:0,reduct:0,refer:0,regex:0,regexfil:0,regulatori:0,rel:0,relat:0,relev:0,remov:0,report:0,repres:0,res1:0,res2:0,res:0,resatmmap:0,residu:0,resmap:0,restatement_reg:0,restraint:0,rm_list:0,root:0,rosenth:0,rtype:0,run:0,run_tbl2xml:0,save:0,save_fig:0,saveplot:0,scale:0,scale_scor:0,scatter:0,score:0,score_field:0,scoremap:0,scratch:0,script:0,scsc:0,scsc_min:0,search:2,sec_struct:0,secondari:0,secstruct:0,section:0,see:0,select:0,self:0,seq:0,seq_po:0,seq_sublist:0,seqfil:0,seqidx:0,seqlen:0,seqpath:0,sequenc:0,sequencelist:0,seri:0,server:0,set_aa_sequ:0,set_sec_struct:0,set_valu:0,sett:0,should:0,side:0,similar:0,size_fig:0,soheil:0,sort:0,sortedset:0,sourc:0,spec:0,specif:0,sqrt:0,squar:0,sre_pattern:0,ss2:0,ss_dist:0,ss_dist_reg:0,ss_type:0,ssaaatmmap:0,ssclash:0,ssclash_filt:0,ssdist:0,ssdist_fil:0,ssdist_filenam:0,ssdistpath:0,ssidx:0,sslist:0,start:0,startres_reg:0,step:0,str:0,string:0,structur:0,subcommand:0,subfil:0,supplementari:0,sym:0,symmetr:0,sync_index:0,target:0,targetdist:0,targetdistmap:0,targetmap:0,tbl2xml:0,tbl:0,tbl_file:0,tbl_path:0,tbldist:0,tbldistfil:0,templat:0,test:[],them:0,thi:0,threshold:0,titl:0,to_seri:0,tool:0,toolbox:0,top:0,topallhdg5:0,topmap:0,topo:0,topolog:0,topologyfil:0,translat:0,treshold:0,triangl:0,tupl:0,txt:0,type:0,unic:0,upd_mol:0,updat:0,update_map:0,upper:0,upperbound:0,usag:0,use:0,used:0,using:0,valu:0,violation_analysi:0,visual:0,wang:0,weight:0,where:0,which:0,write:0,write_ariaproject:0,write_config:0,write_contact:0,write_dihedral_tbl:0,write_dist_xml:0,write_filtout:0,write_hb_tbl:0,write_map_restraint:0,write_maplist_restraint:0,write_optional_fil:0,write_seq:0,write_ssdist_tbl:0,write_ssfasta:0,write_tbl_restraint:0,write_xmlseq:0,xlabel:0,xml:0,xml_path:0,y_pred:0,y_score:0,y_true:0,ylabel:0,zlabel:0},titles:["aria.conbox package","ariaec.test package","Welcome to Aria-EC\u2019s documentation!","ariaec"],titleterms:{analysi:0,aria:[0,2],ariaec:[1,3],base:0,command:0,conbox:0,content:[0,1],convert:0,document:2,indic:2,maplot:0,modul:[0,1],ndconv:0,packag:[0,1],pdbdist:0,pdbqual:0,protein:0,protmap:0,reader:0,set:0,setup:0,submodul:0,subpackag:0,tabl:2,test:1,welcom:2}}) \ No newline at end of file diff --git a/examples-dev/olds/ariaec.rst b/examples-dev/olds/ariaec.rst new file mode 100644 index 0000000000000000000000000000000000000000..36ab6ad0b679be8e09552c381ea7607bf629deac --- /dev/null +++ b/examples-dev/olds/ariaec.rst @@ -0,0 +1,114 @@ +Conbox module +============ + +.. toctree:: + +.. automodule:: aria.conbox + :members: + :undoc-members: + :show-inheritance: + +Analysis +-------- + +.. automodule:: aria.conbox.analysis + :members: + :undoc-members: + :show-inheritance: + +Base +---- + +.. automodule:: aria.conbox.base + :members: + :undoc-members: + :show-inheritance: + +Commands +-------- + +.. automodule:: aria.conbox.commands + :members: + :undoc-members: + :show-inheritance: + +Converter +--------- + +.. automodule:: aria.conbox.converter + :members: + :undoc-members: + :show-inheritance: + +Maplot +------ + +.. automodule:: aria.conbox.maplot + :members: + :undoc-members: + :show-inheritance: + +aria.conbox.ndconv module +------------------------- + +.. automodule:: aria.conbox.ndconv + :members: + :undoc-members: + :show-inheritance: + +aria.conbox.pdbdist module +-------------------------- + +.. automodule:: aria.conbox.pdbdist + :members: + :undoc-members: + :show-inheritance: + +aria.conbox.pdbqual module +-------------------------- + +.. automodule:: aria.conbox.pdbqual + :members: + :undoc-members: + :show-inheritance: + +aria.conbox.protein module +-------------------------- + +.. automodule:: aria.conbox.protein + :members: + :undoc-members: + :show-inheritance: + +aria.conbox.protmap module +-------------------------- + +.. automodule:: aria.conbox.protmap + :members: + :undoc-members: + :show-inheritance: + +aria.conbox.reader module +------------------------- + +.. automodule:: aria.conbox.reader + :members: + :undoc-members: + :show-inheritance: + +aria.conbox.settings module +--------------------------- + +.. automodule:: aria.conbox.settings + :members: + :undoc-members: + :show-inheritance: + +aria.conbox.setup module +------------------------ + +.. automodule:: aria.conbox.setup + :members: + :undoc-members: + :show-inheritance: + diff --git a/examples-dev/olds/ariaec.test.rst b/examples-dev/olds/ariaec.test.rst new file mode 100644 index 0000000000000000000000000000000000000000..8813337fd0c5d4145318936b602a55b20912fba0 --- /dev/null +++ b/examples-dev/olds/ariaec.test.rst @@ -0,0 +1,10 @@ +ariaec.test package +=================== + +Module contents +--------------- + +.. automodule:: ariaec.test + :members: + :undoc-members: + :show-inheritance: diff --git a/examples-dev/olds/index.rst b/examples-dev/olds/index.rst new file mode 100644 index 0000000000000000000000000000000000000000..c213df6f85ef924e67d93b9ad7c0bb1d687239bf --- /dev/null +++ b/examples-dev/olds/index.rst @@ -0,0 +1,20 @@ +.. AriaEc documentation master file, created by + sphinx-quickstart on Fri Apr 21 16:27:42 2017. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to Aria-EC's documentation! +=================================== + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/examples-dev/olds/make.bat b/examples-dev/olds/make.bat new file mode 100644 index 0000000000000000000000000000000000000000..b024aeae70b3da1d99c1c6e0f1ce9cfdf0d87196 --- /dev/null +++ b/examples-dev/olds/make.bat @@ -0,0 +1,36 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build +set SPHINXPROJ=AriaEc + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% + +:end +popd diff --git a/docs/modules.rst b/examples-dev/olds/modules.rst similarity index 100% rename from docs/modules.rst rename to examples-dev/olds/modules.rst diff --git a/setup.py b/setup.py index a9c197330e981b9dff7d843d03548089320bc15a..e49af7d5ba0e015ae40abbcb7eb5f2e483305b45 100644 --- a/setup.py +++ b/setup.py @@ -111,7 +111,7 @@ class CleanCommand(Command): './*.egg-info ./*.egg') -def get_version(): +def get_version(full=True): """ Returns @@ -119,7 +119,7 @@ def get_version(): """ d = dirname(__file__) - + # TODO: actually no warning when git command is not available !! if isdir(join(d, '.git')): # Get the version using "git describe". cmd = 'git describe --tags'.split() @@ -130,8 +130,11 @@ def get_version(): sys.exit(1) # PEP 386 compatibility - if '-' in version: + + if '-' in version and full: version = '.post'.join(version.split('-')[:2]) + else: + version = version.split('-')[0] # Don't declare a version "dirty" merely because a time stamp has # changed. If it is dirty, append a ".dev1" suffix to indicate a @@ -147,7 +150,7 @@ def get_version(): print('Unable to get git index status') sys.exit(1) - if dirty != '': + if dirty != '' and full: version += '.dev1' else: @@ -206,6 +209,7 @@ def setup_package(): 'six>=1.10', 'Sphinx', 'sphinx_rtd_theme', + # 'sphinx_bootstrap_theme', 'sphinxcontrib-napoleon', 'configparser', 'mako',