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 &mdash; 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> &raquo;</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>
-        &copy; <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>&lt;no title&gt; &mdash; 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> &raquo;</li>
-        
-      <li>&lt;no title&gt;</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>
-        &copy; <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","&lt;no title&gt;","Welcome to ARIAEC\u2019s documentation!","&lt;no title&gt;","ariaec","&lt;no title&gt;"],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>&lt;no title&gt; &mdash; 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> &raquo;</li>
-        
-      <li>&lt;no title&gt;</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>
-        &copy; <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 &mdash; 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> &raquo;</li>
+        
+          <li><a href="../index.html">Module code</a> &raquo;</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">&quot;&quot;&quot;</span>
+<span class="sd">Created on 4/7/17</span>
+
+<span class="sd">@author: fallain</span>
+<span class="sd">&quot;&quot;&quot;</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">&quot;&quot;</span><span class="p">,</span> <span class="n">xlabel</span><span class="o">=</span><span class="s2">&quot;x&quot;</span><span class="p">,</span>
+               <span class="n">ylabel</span><span class="o">=</span><span class="s2">&quot;y&quot;</span><span class="p">,</span> <span class="n">zlabel</span><span class="o">=</span><span class="s2">&quot;z&quot;</span><span class="p">,</span> <span class="n">legend_prefix</span><span class="o">=</span><span class="s2">&quot;&quot;</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">&quot;&quot;&quot;</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 = &quot;&quot;)</span>
+<span class="sd">    xlabel :</span>
+<span class="sd">         (Default value = &quot;x&quot;)</span>
+<span class="sd">    ylabel :</span>
+<span class="sd">         (Default value = &quot;y&quot;)</span>
+<span class="sd">    zlabel :</span>
+<span class="sd">         (Default value = &quot;z&quot;)</span>
+<span class="sd">    legend_prefix :</span>
+<span class="sd">         (Default value = &quot;&quot;)</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">    &quot;&quot;&quot;</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">&quot;hls&quot;</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">&quot;none&quot;</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">&quot;o&quot;</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">&quot;Others&quot;</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">&quot;none&quot;</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">&quot;o&quot;</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">&quot;&quot;&quot;ARIA extended ensemble analysis&quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;report.clustering&quot;</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">&quot;Clusters found in this iteration, compute analysis for&quot;</span>
+                     <span class="s2">&quot;each generated cluster ensemble&quot;</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">&#39;*clust*.list&#39;</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">&quot;No cluster found in this iteration, compute analysis for&quot;</span>
+                     <span class="s2">&quot; iteration ensemble&quot;</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">&quot;*.pdb&quot;</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">&#39;fitted_&#39;</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">&quot;Lists of structures:</span><span class="se">\n</span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&#39;name&#39;</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">&quot;number_of_best_structures&quot;</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">&quot;violation_analyser_settings&quot;</span><span class="p">][</span><span class="s2">&quot;violation_tolerance&quot;</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">&#39;w&#39;</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">&#39;a&#39;</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&#39;ensemble (une ou plusieur</span>
+                            <span class="c1"># distance(s) par structure de l&#39;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&#39;ensemble</span>
+                            <span class="c1"># (liste associant une distance par structure de l&#39;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">&quot;</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">&quot;</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">&#39;protein&#39;</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">&#39;data&#39;</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">&#39;iteration&#39;</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">&#39;clust&#39;</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">&#39;ens_size&#39;</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">&#39;rest_no&#39;</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">&#39;contrib_no&#39;</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">&#39;resid_1&#39;</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">&#39;resid_2&#39;</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">&#39;res_1&#39;</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">&#39;res_2&#39;</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">&#39;atm_1&#39;</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">&#39;atm_2&#39;</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">&#39;viol_cutoff&#39;</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">&#39;d_target&#39;</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">&#39;lower_bound&#39;</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">&#39;upper_bound&#39;</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">&#39;rest_weight&#39;</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">&#39;dc_min&#39;</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">&#39;&#39;</span>
+                        <span class="n">tmp</span><span class="p">[</span><span class="s1">&#39;dc_avg&#39;</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">&#39;&#39;</span>  <span class="c1"># Moyenne des distances associes a la contrib c dans l&#39;ensemble</span>
+                        <span class="n">tmp</span><span class="p">[</span><span class="s1">&#39;dc_med&#39;</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">&#39;&#39;</span>
+                        <span class="n">tmp</span><span class="p">[</span><span class="s1">&#39;dc_ref&#39;</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">&#39;&#39;</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&#39;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&#39;ensemble etudie.</span>
+                        <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">&#39;Deff_min&#39;</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">&#39;Deff_avg&#39;</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">&#39;Deff_med&#39;</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">&#39;Deff_sdev&#39;</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">&#39;Deff_ref&#39;</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">&#39;pc_viol&#39;</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&#39;un seul elt puisqu&#39;il y a</span>
+                        <span class="c1">#  qu&#39;une seule structure ( a verifier )</span>
+                        <span class="c1"># distance effective native</span>
+                        <span class="c1"># Distance effective minimum dans l&#39;ensemble</span>
+                        <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">&#39;viol&#39;</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">&#39;pc_viol&#39;</span><span class="p">]</span> <span class="o">&gt;=</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">&#39;valid&#39;</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">&#39;upper_bound&#39;</span><span class="p">]</span> <span class="o">&gt;=</span> <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">&#39;dc_ref&#39;</span><span class="p">]</span> <span class="o">&gt;=</span> <span class="n">output</span><span class="p">[</span><span class="n">x</span><span class="p">][</span><span class="s1">&#39;lower_bound&#39;</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">&#39;contact_5&#39;</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">&#39;dc_ref&#39;</span><span class="p">]</span> <span class="o">&lt;=</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">&#39;contact_8&#39;</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">&#39;dc_ref&#39;</span><span class="p">]</span> <span class="o">&lt;=</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">&#39;contact_8&#39;</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">&#39;viol&#39;</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">&#39;group&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;VP viol&#39;</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">&#39;contact_8&#39;</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">&#39;viol&#39;</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">&#39;group&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;VP&#39;</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">&#39;contact_8&#39;</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">&#39;viol&#39;</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">&#39;group&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;FP viol&#39;</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">&#39;group&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;FP&#39;</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">&quot;,&quot;</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">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">+</span> <span class="s2">&quot;,&quot;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2">&quot;</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">&quot;Writing violation analysis of clust </span><span class="si">%s</span><span class="s2"> </span><span class="si">%s</span><span class="s2"> file&quot;</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">#     &quot;&quot;&quot;</span>
+    <span class="c1">#</span>
+    <span class="c1">#     Returns</span>
+    <span class="c1">#     -------</span>
+    <span class="c1">#</span>
+    <span class="c1">#     &quot;&quot;&quot;</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">&quot;CA&quot;</span><span class="p">,</span>
+            <span class="n">title</span><span class="o">=</span><span class="s2">&quot;3D PCA projection on backbone coordinates&quot;</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">&quot;&quot;&quot;</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 = &quot;CA&quot;)</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">        &quot;&quot;&quot;</span>
+        <span class="n">sns</span><span class="o">.</span><span class="n">set_style</span><span class="p">(</span><span class="s1">&#39;ticks&#39;</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">&#39;number_of_best_structures&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;all&#39;</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">&#39;number_of_best_structures&#39;</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">&quot;Principal component 1&quot;</span><span class="p">,</span> <span class="n">ylabel</span><span class="o">=</span><span class="s2">&quot;Principal component 2&quot;</span><span class="p">,</span>
+            <span class="n">zlabel</span><span class="o">=</span><span class="s2">&quot;Principal component 3&quot;</span><span class="p">,</span> <span class="n">legend_prefix</span><span class="o">=</span><span class="s2">&quot;Clust &quot;</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">&quot;&quot;&quot;Execute Ensemble analysis&quot;&quot;&quot;</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">&quot;project&quot;</span><span class="p">]</span>
+        <span class="c1"># restraints_path = self.settings.analysis.args[&quot;restraints&quot;]</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">&quot;ref&quot;</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">&quot;output_directory&quot;</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">&quot;listname&quot;</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">&quot;iteration&quot;</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">&#39;[0-9]+&#39;</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">&quot;it</span><span class="si">%d</span><span class="s2">&quot;</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">&quot;Ensemble analysis will be done on restraints and &quot;</span>
+                     <span class="s2">&quot;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">&quot;</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">&quot;Can not found previous iteration (</span><span class="si">%s</span><span class="s2">)&quot;</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">&quot;Reading distance restraints file(s)&quot;</span><span class="p">)</span>
+        <span class="c1"># restraints = glob(os.path.join(iteration_path, &#39;*restraints.xml&#39;)) if\</span>
+        <span class="c1">#     not self.settings.analysis.args.get(&#39;restraint&#39;) else \</span>
+        <span class="c1">#     [self.settings.analysis.args.get(&#39;restraint&#39;)]</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">&#39;*.tbl&#39;</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">&quot;Reading structure ensemble(s)&quot;</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">&#39;name&#39;</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">&quot;number_of_best_structures&quot;</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">&quot;sort_criterion&quot;</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">&#39;sort_criterion&#39;</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">&#39;number_of_best_structures&#39;</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">&#39;cns&#39;</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(&quot;Sorting structure ensemble(s) with %s criteria&quot;, sort_crit)</span>
+        <span class="c1"># energies = np.array([</span>
+        <span class="c1">#     np.mean([d[&#39;total_energy&#39;] for d in ens.getInfo()[:, 1]][:nbest])</span>
+        <span class="c1">#     if len(ens) &gt;= 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">&quot;Reading native structure&quot;</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">&quot;_ordered.native.pdb&quot;</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">&#39;cns&#39;</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 &#39;number_of_best_structures&#39; 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">&quot;Violation analysis&quot;</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">&#39;violations.csv&#39;</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">&#39;cns&#39;</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">&#39;clust&#39;</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">&#39;clust&#39;</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">&quot;atmask&quot;</span><span class="p">],</span>
+            <span class="n">title</span><span class="o">=</span><span class="s2">&quot;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&quot;</span>
+                  <span class="s2">&quot; at iteration </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;</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&quot;</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">#                        &quot;analysis/pyfit/accuracydssp/RMSD.dat&quot;)) 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(&quot;pdb&quot;, line)]}</span>
+
+        <span class="c1"># [info[1].update({&#39;ensemble&#39;: False})</span>
+        <span class="c1">#  for info in infos]</span>
+        <span class="c1"># [info[1].update({&#39;ensemble&#39;: 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">#     {&#39;accdssp&#39;: 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>
+        &copy; 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 &mdash; 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> &raquo;</li>
+        
+          <li><a href="../index.html">Module code</a> &raquo;</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">&quot;&quot;&quot;</span>
+<span class="sd">                            Basic tools aria_ec</span>
+<span class="sd">&quot;&quot;&quot;</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">&quot;&quot;&quot;</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">    &quot;&quot;&quot;</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">&#39;&#39;</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">):</span>
+    <span class="sd">&quot;&quot;&quot;</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 = &#39;&#39;)</span>
+<span class="sd">    progname :</span>
+<span class="sd">        (Default value = &#39;&#39;)</span>
+
+<span class="sd">    Returns</span>
+<span class="sd">    -------</span>
+
+<span class="sd">    </span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">out</span> <span class="o">=</span> <span class="s1">&#39;&#39;&#39;</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">&#39;&#39;&#39;</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">&quot;&quot;&quot;</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">    &quot;&quot;&quot;</span>
+    <span class="k">return</span> <span class="s2">&quot;_&quot;</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">&quot;/&quot;</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">&quot;.&quot;</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">&quot;&quot;&quot;</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">    &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">    &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">    &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">    &quot;&quot;&quot;</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">&quot;^\s*(true)\s*$&quot;</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">&quot;^\s*(false)\s*$&quot;</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">&quot;^\s*\d+\s*$&quot;</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">&quot;^[\s\d-]+\.\d+\s*$&quot;</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">&#39;^&quot;.+&quot;$&#39;</span><span class="p">,</span> <span class="n">string</span><span class="p">):</span>
+        <span class="c1"># remove &quot; 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">&quot;,&quot;</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">&#39;,&#39;</span><span class="p">)</span>
+    <span class="k">elif</span> <span class="s2">&quot;+&quot;</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">&#39;+&#39;</span><span class="p">)</span>
+    <span class="k">elif</span> <span class="s2">&quot;/&quot;</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">&quot;[/\w]+&quot;</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">&quot;Don&#39;t understand given string </span><span class="si">%s</span><span class="s2">. Please check &quot;</span>
+                          <span class="s2">&quot;format.&quot;</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">&quot;Given string </span><span class="si">%s</span><span class="s2"> is not a valid expression&quot;</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">&quot;&quot;&quot;</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">    &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">    &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">    &quot;&quot;&quot;</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">&#39;&#39;</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">&#39;&#39;</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">&#39;&#39;</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">&#39;&#39;</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">&#39;horizontal&#39;</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">&quot;&quot;&quot;</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 = &#39;horizontal&#39;)</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">    &quot;&quot;&quot;</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">&quot;&quot;&quot;</span>
+<span class="sd">    Customized python logging config</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="c1"># default_file = os.path.join(os.path.abspath(os.path.dirname(__file__)),</span>
+    <span class="c1">#                             &quot;conf/logging.json&quot;)</span>
+    <span class="n">default_file</span> <span class="o">=</span> <span class="s2">&quot;conf/logging.json&quot;</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">&quot;&quot;&quot;</span>
+
+<span class="sd">        :param level:</span>
+<span class="sd">        :param desc:</span>
+<span class="sd">        :return:</span>
+<span class="sd">        &quot;&quot;&quot;</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">&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot; - &quot;</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">&quot; - &quot;</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">&quot;&quot;&quot;:return:&quot;&quot;&quot;</span>
+        <span class="c1"># with open(self.default_file, &#39;rt&#39;) 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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;log&quot;</span><span class="p">)</span> <span class="k">if</span> <span class="s2">&quot;log&quot;</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">&quot;handlers&quot;</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">&quot;handlers&quot;</span><span class="p">]:</span>
+                <span class="k">if</span> <span class="s2">&quot;filename&quot;</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">&quot;handlers&quot;</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">&quot;handlers&quot;</span><span class="p">][</span><span class="n">hand</span><span class="p">][</span><span class="s2">&quot;filename&quot;</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">&quot;handlers&quot;</span><span class="p">][</span><span class="n">hand</span><span class="p">][</span><span class="s2">&quot;filename&quot;</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">&quot;handlers&quot;</span><span class="p">][</span><span class="n">hand</span><span class="p">][</span><span class="s2">&quot;filename&quot;</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">&quot;&quot;&quot;:return:&quot;&quot;&quot;</span>
+        <span class="n">desc</span> <span class="o">=</span> <span class="s1">&#39;&#39;&#39;</span>
+<span class="s1">================================================================================</span>
+
+<span class="si">{:^80}</span><span class="s1"></span>
+
+<span class="s1">================================================================================</span>
+<span class="s1">&#39;&#39;&#39;</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">&quot;handlers&quot;</span><span class="p">):</span>
+            <span class="k">if</span> <span class="s2">&quot;filename&quot;</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">&quot;handlers&quot;</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">&quot;handlers&quot;</span><span class="p">][</span><span class="n">hand</span><span class="p">][</span><span class="s2">&quot;filename&quot;</span><span class="p">],</span>
+                          <span class="s1">&#39;w&#39;</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">&quot;&quot;&quot;Capture output&quot;&quot;&quot;</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">&quot;&quot;&quot;</span>
+
+<span class="sd">        :return:</span>
+<span class="sd">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</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">&quot;&quot;&quot;Redirect standard ouput and errors&quot;&quot;&quot;</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">&quot;&quot;&quot;Abstract class for subcommand protocol&quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;Define an atom as disordered or not in pdb selection&quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&#39;A&#39;</span></div></div>
+
+
+<span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s2">&quot;__main__&quot;</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">&quot;../examples/out&quot;</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">&quot;TEST&quot;</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">&quot;Log test&quot;</span><span class="p">)</span>
+</pre></div>
+
+           </div>
+           <div class="articleComments">
+            
+           </div>
+          </div>
+          <footer>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        &copy; 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 &mdash; 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> &raquo;</li>
+        
+          <li><a href="../index.html">Module code</a> &raquo;</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">&quot;&quot;&quot;</span>
+<span class="sd">                            Input/Output aria_ec</span>
+<span class="sd">&quot;&quot;&quot;</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">&quot;&quot;&quot;</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">    &quot;&quot;&quot;</span>
+    <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;Checking if </span><span class="si">%s</span><span class="s2"> is a readable file&quot;</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">&quot;readable_file:&#39;</span><span class="si">{0}</span><span class="s2">&#39; is not a valid &quot;</span>
+                                     <span class="s2">&quot;path&quot;</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">&quot;readable_file:&#39;</span><span class="si">{0}</span><span class="s2">&#39; is not a readable &quot;</span>
+                                     <span class="s2">&quot;file&quot;</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">&quot;&quot;&quot;Class used with argparse action to check if a file is readable&quot;&quot;&quot;</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">&quot;&quot;&quot;Argparse interface for aria_ec&quot;&quot;&quot;</span>
+
+    <span class="n">command_list</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;setup&quot;</span><span class="p">,</span> <span class="s2">&quot;bbconv&quot;</span><span class="p">,</span> <span class="s2">&quot;maplot&quot;</span><span class="p">,</span> <span class="s2">&quot;pdbqual&quot;</span><span class="p">,</span> <span class="s2">&quot;analysis&quot;</span><span class="p">,</span>
+                    <span class="s2">&quot;tbl2xml&quot;</span><span class="p">,</span> <span class="s2">&quot;pdbdist&quot;</span><span class="p">,</span> <span class="s2">&quot;pdbstat&quot;</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">&quot;Setup ARIA infrastructure with contact maps translated &quot;</span>
+                 <span class="sa">u</span><span class="s2">&quot;into ARIA restraints&quot;</span><span class="p">,</span>
+                 <span class="sa">u</span><span class="s2">&quot;Convert a contact map in bbcontact format&quot;</span><span class="p">,</span>
+                 <span class="sa">u</span><span class="s2">&quot;Contactmap visualization tool&quot;</span><span class="p">,</span>
+                 <span class="sa">u</span><span class="s2">&quot;Quality tool for pdb file(s)&quot;</span><span class="p">,</span>
+                 <span class="sa">u</span><span class="s2">&quot;Extended ARIA ensemble analysis on a specific iteration &quot;</span><span class="p">,</span>
+                 <span class="sa">u</span><span class="s2">&quot;XML converter for tbl distance restraint&quot;</span><span class="p">,</span>
+                 <span class="sa">u</span><span class="s2">&quot;Extract distance distribution from culled list of pdb files&quot;</span><span class="p">,</span>
+                 <span class="sa">u</span><span class="s2">&quot;Analyze distance distribution with GMM, ...&quot;</span><span class="p">)</span>
+    <span class="n">contact_types</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;evfold&quot;</span><span class="p">,</span> <span class="s2">&quot;plmev&quot;</span><span class="p">,</span> <span class="s2">&quot;plm&quot;</span><span class="p">,</span> <span class="s2">&quot;plmdca&quot;</span><span class="p">,</span> <span class="s2">&quot;plmc&quot;</span><span class="p">,</span> <span class="s2">&quot;bbcontacts&quot;</span><span class="p">,</span>
+                     <span class="s2">&quot;pconsc&quot;</span><span class="p">,</span> <span class="s2">&quot;pconsc1&quot;</span><span class="p">,</span> <span class="s2">&quot;pconsc2&quot;</span><span class="p">,</span> <span class="s2">&quot;psicov&quot;</span><span class="p">,</span> <span class="s2">&quot;metapsicovhb&quot;</span><span class="p">,</span>
+                     <span class="s2">&quot;metapsicov_stg1&quot;</span><span class="p">,</span> <span class="s2">&quot;metapsicov_stg2&quot;</span><span class="p">,</span> <span class="s2">&quot;gremlin&quot;</span><span class="p">,</span> <span class="s2">&quot;pdb&quot;</span><span class="p">,</span>
+                     <span class="s2">&quot;native&quot;</span><span class="p">,</span> <span class="s2">&quot;native_full&quot;</span><span class="p">,</span> <span class="s2">&quot;contactlist&quot;</span><span class="p">)</span>
+    <span class="n">default_confile</span> <span class="o">=</span> <span class="s2">&quot;conf/config.ini&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;output_directory&quot;</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&#39;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">&quot;info_file_handler&quot;</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">&quot;error_file_handler&quot;</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">&quot;debug_file_handler&quot;</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">&quot;&quot;&quot; &quot;&quot;&quot;</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">&quot;-o&quot;</span><span class="p">,</span> <span class="s2">&quot;--output&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;output_directory&quot;</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">&quot;Output directory&quot;</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">&quot;-c&quot;</span><span class="p">,</span> <span class="s2">&quot;--conf&quot;</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">&quot;conf_file&quot;</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">&quot;configuration file&quot;</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">&quot;--nolog&quot;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s2">&quot;store_true&quot;</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">&quot;Don&#39;t generate log files&quot;</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">&quot;-d&quot;</span><span class="p">,</span> <span class="s2">&quot;--debug&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;verbose&quot;</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">&#39;store_true&#39;</span><span class="p">,</span>
+                            <span class="n">help</span><span class="o">=</span><span class="s2">&quot;Increase output verbosity&quot;</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">&quot;command&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;_&quot;</span> <span class="o">+</span> <span class="n">command</span> <span class="o">+</span> <span class="s2">&quot;_argparser&quot;</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">&quot;&quot;&quot;</span>
+<span class="sd">        setup opt &amp; 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">        &quot;&quot;&quot;</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">&#39;required arguments&#39;</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">&quot;seq&quot;</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">&quot;sequence file [FASTA]&quot;</span><span class="p">)</span>
+        <span class="c1"># group.add_argument(&quot;sspred&quot;, action=ReadableFile,</span>
+        <span class="c1">#                    help=&quot;secondary structure prediction file&quot;)</span>
+        <span class="n">group</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s2">&quot;infiles&quot;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s2">&quot;+&quot;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s2">&quot;infile&quot;</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">&quot;contact or pdb file(s) used to build aria &quot;</span>
+                                <span class="s2">&quot;distance restraints&quot;</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">&quot;-d&quot;</span><span class="p">,</span> <span class="s2">&quot;--distfile&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;distfile&quot;</span><span class="p">,</span>
+                           <span class="n">help</span><span class="o">=</span><span class="s2">&quot;Pdb or distance matrix iif distance_type &quot;</span>
+                                <span class="s2">&quot;set  to   distfile in conf  file,  &quot;</span>
+                                <span class="s2">&quot;use distances in the  given file as &quot;</span>
+                                <span class="s2">&quot;target  distance to build  distance &quot;</span>
+                                <span class="s2">&quot;restraints&quot;</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">&quot;-s&quot;</span><span class="p">,</span> <span class="s2">&quot;--ssfile&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;sspred&quot;</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">&quot;secondary structure prediction file&quot;</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">&quot;-p&quot;</span><span class="p">,</span> <span class="s2">&quot;--ariaproject&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;ariaproject&quot;</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">&quot;ARIA project file. This file will be used as&quot;</span>
+                                <span class="s2">&quot;an initialization file if&quot;</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">&quot;-t&quot;</span><span class="p">,</span> <span class="s2">&quot;--type&quot;</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">&quot;+&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;contact_types&quot;</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">&quot;Infile(s) contact &quot;</span>
+                                                            <span class="s2">&quot;type(s)&quot;</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">&quot;-r&quot;</span><span class="p">,</span> <span class="s2">&quot;--ref&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;ref&quot;</span><span class="p">,</span>
+                           <span class="n">help</span><span class="o">=</span><span class="s2">&quot;Native pdb. Allow TP/FP detection.&quot;</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">&quot;--hb&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;hb&quot;</span><span class="p">,</span>
+                           <span class="n">help</span><span class="o">=</span><span class="s2">&quot;H-bonds contact file (eg: metapsicov.hb)&quot;</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">&quot;--ssidx&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;ssidx&quot;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s2">&quot;store_true&quot;</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">&quot;Use secondary structure index&quot;</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">&quot;--no-filter&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;no_filter&quot;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s2">&quot;store_true&quot;</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">&quot;Do not filter contact map.&quot;</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">&quot;--extract-all&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;extractall&quot;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s2">&quot;store_true&quot;</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">&quot;Extract data or all data and&quot;</span>
+                                               <span class="s2">&quot;parameters if an ARIA project&quot;</span>
+                                               <span class="s2">&quot;is defined with -p option&quot;</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">&quot;&quot;&quot;</span>
+<span class="sd">        bbconv opt &amp; 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">        &quot;&quot;&quot;</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">&quot;contactfile&quot;</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s2">&quot;contacts file (pconsc, plm)&quot;</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">&quot;sspred&quot;</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s2">&quot;psipred file&quot;</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">&quot;seq&quot;</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s2">&quot;sequence file [FASTA]&quot;</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">&quot;msa&quot;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s1">&#39;?&#39;</span><span class="p">,</span>
+                            <span class="n">help</span><span class="o">=</span><span class="s2">&quot;MSA [FASTA] for diversityvalue&quot;</span>
+                                 <span class="s2">&quot;used with bbcontacts&quot;</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">&quot;-t&quot;</span><span class="p">,</span> <span class="s2">&quot;--type&quot;</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">&quot;contact_type&quot;</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">&quot;Infile contact &quot;</span>
+                                                             <span class="s2">&quot;type&quot;</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">&quot;&quot;&quot;</span>
+<span class="sd">        maplot opt &amp; 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">        &quot;&quot;&quot;</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">&quot;seq&quot;</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">&quot;sequence file [FASTA]&quot;</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">&quot;sspred&quot;</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">&quot;secondary structure prediction file&quot;</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">&quot;infiles&quot;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s2">&quot;+&quot;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s2">&quot;infile&quot;</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">&quot;contact or pdb file(s) used to build aria &quot;</span>
+                                 <span class="s2">&quot;distance restraints&quot;</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">&quot;-t&quot;</span><span class="p">,</span> <span class="s2">&quot;--type&quot;</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">&quot;+&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;contact_types&quot;</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">&quot;Infile(s) &quot;</span>
+                                                             <span class="s2">&quot;contact &quot;</span>
+                                                             <span class="s2">&quot;type(s)&quot;</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">&quot;--merge&quot;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s2">&quot;+&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;merge&quot;</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">&quot;Merge given contact types with other maps&quot;</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">&quot;--filter&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;filter&quot;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s2">&quot;store_true&quot;</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">&quot;Use contact list filter &quot;</span>
+                                                <span class="s2">&quot;and top n contacts selection&quot;</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">&quot;--onlyreport&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;onlyreport&quot;</span><span class="p">,</span>
+                            <span class="n">action</span><span class="o">=</span><span class="s2">&quot;store_true&quot;</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">&quot;Generate only report file&quot;</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">&quot;--no-filter&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;no_filter&quot;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s2">&quot;store_true&quot;</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">&quot;Do not filter contact map.&quot;</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">&quot;--ssidx&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;ssidx&quot;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s2">&quot;store_true&quot;</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">&quot;Use secondary structure index&quot;</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">&quot;--prefix&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;prefix&quot;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s2">&quot;store_true&quot;</span><span class="p">,</span>
+                            <span class="n">default</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span>
+                            <span class="n">help</span><span class="o">=</span><span class="s2">&quot;Generate prefix for file names&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;infiles&quot;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s2">&quot;+&quot;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s2">&quot;infile&quot;</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">&quot;PDB file(s) used to run quality tools with &quot;</span>
+                                 <span class="s2">&quot;aria API&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;project&quot;</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">&quot;ARIA project file [XML]&quot;</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">&quot;iteration&quot;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s2">&quot;iteration_path&quot;</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">&quot;Iteration path used to run violation analysis&quot;</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">&quot;listname&quot;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s2">&quot;list_name&quot;</span><span class="p">,</span>
+            <span class="n">help</span><span class="o">=</span><span class="s2">&quot;Name of restraint list analyzed in the tbl file&quot;</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">&quot;-r&quot;</span><span class="p">,</span> <span class="s2">&quot;--ref&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;ref&quot;</span><span class="p">,</span>
+                            <span class="n">help</span><span class="o">=</span><span class="s2">&quot;Native pdb. Allow TP/FP detection.&quot;</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">&quot;-d&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;restraint&quot;</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">&quot;Distance restraint file (XML) used for &quot;</span>
+                                 <span class="s2">&quot;violation analysis. Otherwise, use restraints&quot;</span>
+                                 <span class="s2">&quot; of the current iteration&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;molecule&quot;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s2">&quot;molecule.xml&quot;</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">&quot;ARIA XML molecule file&quot;</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">&quot;listname&quot;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s2">&quot;list_name&quot;</span><span class="p">,</span>
+                            <span class="n">help</span><span class="o">=</span><span class="s2">&quot;Restraint list name in the tbl file&quot;</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">&quot;infiles&quot;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s2">&quot;+&quot;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s2">&quot;infile.tbl&quot;</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">&quot;TBL distance restraint file(s)&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;--cullist&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;cullpdbs&quot;</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span>
+            <span class="n">metavar</span><span class="o">=</span><span class="s2">&quot;CULLED_PDB_LIST&quot;</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">&quot;Culled list of pdb files from PISCES server [&quot;</span>
+                 <span class="s2">&quot;G. Wang and R. L. Dunbrack, Jr. PISCES: a protein sequence &quot;</span>
+                 <span class="s2">&quot;culling server. Bioinformatics, 19:1589-1591, 2003.]&quot;</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">&quot;--pdbdir&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;pdbdir&quot;</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span>
+            <span class="n">metavar</span><span class="o">=</span><span class="s2">&quot;PDB_FOLDER&quot;</span><span class="p">,</span>
+            <span class="n">help</span><span class="o">=</span><span class="s2">&quot;Folder containing pdb file entries&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;pdbdists&quot;</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">&quot;PDB distance file in csv format&quot;</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">&quot;-j&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;njobs&quot;</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">&quot;N_JOBS&quot;</span><span class="p">,</span>
+            <span class="n">help</span><span class="o">=</span><span class="s2">&quot;Number of cpus used to run mixture in parallel. By default,&quot;</span>
+                 <span class="s2">&quot; use max of available cpus.&quot;</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">&quot;--min&quot;</span><span class="p">,</span> <span class="n">dest</span><span class="o">=</span><span class="s2">&quot;minflag&quot;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s2">&quot;store_true&quot;</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">&quot;Compute stats only on a minimized list of atom (CA, CB and 1 &quot;</span>
+                 <span class="s2">&quot;SC)&quot;</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">&quot;&quot;&quot;Create settings relative to args.command&quot;&quot;&quot;</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">&quot;Toggle on debug mode&quot;</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">&quot;Create AriaEcSettings&quot;</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">&quot;Loading default config file&quot;</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">&quot;Updating settings with conf file&quot;</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">&quot;Updating </span><span class="si">%s</span><span class="s2"> args settings&quot;</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">&quot;Updating output directory </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;&quot;&quot;call method relative to args.command&quot;&quot;&quot;</span>
+        <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Run </span><span class="si">%s</span><span class="s2"> command&quot;</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">&quot;&quot;&quot;Setup call&quot;&quot;&quot;</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">&quot;&quot;&quot;bbcontacts converter call&quot;&quot;&quot;</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">&quot;&quot;&quot;instantiate AriaEcContactmap with AriaSettings&quot;&quot;&quot;</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">&quot;&quot;&quot;Quality run subcommand&quot;&quot;&quot;</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">&quot;&quot;&quot;tbl2xml command&quot;&quot;&quot;</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">&quot;&quot;&quot;Extract pdb distance distributions&quot;&quot;&quot;</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">&quot;&quot;&quot;Analyse pdb distance distribution&quot;&quot;&quot;</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">&quot;&quot;&quot;Extended ensemble analysis of distance restraints&quot;&quot;&quot;</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">&quot;&quot;&quot;Launch ariaec command interface&quot;&quot;&quot;</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">&quot;__main__&quot;</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">&quot;IO&quot;</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>
+        &copy; 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 &mdash; 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> &raquo;</li>
+        
+          <li><a href="../index.html">Module code</a> &raquo;</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">&quot;&quot;&quot;</span>
+<span class="sd">                            Input/Output aria_ec scripts</span>
+<span class="sd">&quot;&quot;&quot;</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">&quot;&quot;&quot;Bbcontacts convert main class&quot;&quot;&quot;</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">&#39;&#39;</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">&quot;&quot;&quot;BBConverter command&quot;&quot;&quot;</span>
+        <span class="c1"># Check input</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        main method</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;Settings:</span><span class="se">\n</span><span class="s2">&quot;</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">&quot;Args:</span><span class="se">\n</span><span class="s2">&quot;</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">&quot;seq&quot;</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">&quot;seq&quot;</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">&quot;sspred&quot;</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">&quot;contactfile&quot;</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">&quot;contact_type&quot;</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">&#39;groupby_method&#39;</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">&quot;scoremap&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">to_csv</span><span class="p">(</span>
+            <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">.mat&quot;</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">&quot;</span><span class="se">\t</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">float_format</span><span class="o">=</span><span class="s2">&quot;</span><span class="si">%13.10f</span><span class="s2">&quot;</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">&#39;couplingmatrix&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">.mat&quot;</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">&quot;</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">.psipred&quot;</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">&#39;psipredfile&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">.psipred&quot;</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">&#39;diversityvalue&#39;</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">&quot;msa&quot;</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">&quot;</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">_bbconv.ini&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;^&gt;[A-Za-z0-9]+_[A-Za-z0-9]+&quot;</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">&quot;deselect&quot;</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">&quot;&quot;&quot;XML converter for aria files&quot;&quot;&quot;</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">&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_mol_set</span><span class="p">[</span><span class="s1">&#39;format&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;seq&#39;</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_mol_set</span><span class="p">[</span><span class="s1">&#39;input&#39;</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">&#39;output&#39;</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">&quot;xml&quot;</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">&quot;.xml&quot;</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">&#39;type&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;PROTEIN&#39;</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_mol_set</span><span class="p">[</span><span class="s1">&#39;segid&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;   A&#39;</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_mol_set</span><span class="p">[</span><span class="s1">&#39;first_residue_number&#39;</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">&#39;naming_convention&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
+        <span class="bp">self</span><span class="o">.</span><span class="n">_mol_set</span><span class="p">[</span><span class="s1">&#39;name&#39;</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">&#39;segid&#39;</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">&#39;/&#39;</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">&#39;type&#39;</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">&#39;first_residue_number&#39;</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">&#39;input&#39;</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">&#39;format&#39;</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">&#39;naming_convention&#39;</span><span class="p">])</span>
+
+        <span class="c1"># LOG.info(&quot;\n&quot; + &quot;&quot;.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">&#39;name&#39;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;Use aria xml pickler to generate xml molecule file&quot;&quot;&quot;</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">&#39;output&#39;</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">&quot;Error for writing xml seq file </span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">&quot;</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">&#39;output&#39;</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">&#39;output&#39;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;w&quot;</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">&#39;&#39;&#39;</span><span class="se">\</span>
+<span class="s1">&lt;!DOCTYPE distance_restraint_list SYSTEM &quot;distance_restraint1.0.dtd&quot;&gt;</span>
+<span class="s1">&lt;distance_restraint_list&gt;</span>
+<span class="s1">&#39;&#39;&#39;</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">&#39;rest_id&#39;</span><span class="p">:</span> <span class="n">restraint_id</span><span class="p">,</span>
+                <span class="s1">&#39;rest_weight&#39;</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">&quot;meta&quot;</span><span class="p">][</span><span class="s2">&quot;weight&quot;</span><span class="p">],</span>
+                <span class="s1">&#39;rest_dist&#39;</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">&quot;meta&quot;</span><span class="p">][</span><span class="s2">&quot;distance&quot;</span><span class="p">]),</span>
+                <span class="s1">&#39;lower_bound&#39;</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">&quot;meta&quot;</span><span class="p">][</span><span class="s2">&quot;lower_bound&quot;</span><span class="p">]),</span>
+                <span class="s1">&#39;upper_bound&#39;</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">&quot;meta&quot;</span><span class="p">][</span><span class="s2">&quot;upper_bound&quot;</span><span class="p">]),</span>
+                <span class="s1">&#39;reliable&#39;</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">&quot;meta&quot;</span><span class="p">][</span><span class="s2">&quot;reliable&quot;</span><span class="p">],</span>
+                <span class="s1">&#39;list_name&#39;</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">&quot;meta&quot;</span><span class="p">][</span><span class="s2">&quot;list_name&quot;</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">&#39;&#39;&#39;</span><span class="se">\</span>
+<span class="s1">  &lt;restraint id=&quot;</span><span class="si">{rest_id}</span><span class="s1">&quot; weight=&quot;</span><span class="si">{rest_weight:.1f}</span><span class="s1">&quot; distance=&quot;</span><span class="si">{rest_dist:.1f}</span><span class="s1">&quot; </span><span class="se">\</span>
+<span class="s1">lower_bound=&quot;</span><span class="si">{lower_bound:.1f}</span><span class="s1">&quot; upper_bound=&quot;</span><span class="si">{upper_bound:.1f}</span><span class="s1">&quot; active=&quot;1&quot; </span><span class="se">\</span>
+<span class="s1">reliable=&quot;</span><span class="si">{reliable}</span><span class="s1">&quot; list_name=&quot;</span><span class="si">{list_name}</span><span class="s1">&quot;&gt;</span>
+<span class="s1">&#39;&#39;&#39;</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">&quot;contrib&quot;</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">&quot;contrib&quot;</span><span class="p">][</span><span class="n">contrib_id</span><span class="p">][</span>
+                    <span class="s2">&quot;spin_pair&quot;</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">&quot;contrib&quot;</span><span class="p">][</span><span class="n">contrib_id</span><span class="p">][</span>
+                    <span class="s2">&quot;meta&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;segids&quot;</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">&quot;   A&quot;</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">&quot;   A&quot;</span>
+                <span class="n">xml_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;&#39;&#39;</span><span class="se">\</span>
+<span class="s1">    &lt;contribution id=&quot;</span><span class="si">{id}</span><span class="s1">&quot; weight=&quot;</span><span class="si">{weight:.8f}</span><span class="s1">&quot;&gt;</span>
+<span class="s1">      &lt;spin_pair&gt;</span>
+<span class="s1">        &lt;atom segid=&quot;</span><span class="si">{res1_segid}</span><span class="s1">&quot; residue=&quot;</span><span class="si">{res1_pos}</span><span class="s1">&quot; name=&quot;</span><span class="si">{atm1_name}</span><span class="s1">&quot;/&gt;</span>
+<span class="s1">        &lt;atom segid=&quot;</span><span class="si">{res2_segid}</span><span class="s1">&quot; residue=&quot;</span><span class="si">{res2_pos}</span><span class="s1">&quot; name=&quot;</span><span class="si">{atm2_name}</span><span class="s1">&quot;/&gt;</span>
+<span class="s1">      &lt;/spin_pair&gt;</span>
+<span class="s1">    &lt;/contribution&gt;</span>
+<span class="s1">&#39;&#39;&#39;</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">&quot;contrib&quot;</span><span class="p">][</span><span class="n">contrib_id</span><span class="p">][</span><span class="s2">&quot;meta&quot;</span><span class="p">][</span>
+               <span class="s2">&quot;weight&quot;</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">&quot;contrib&quot;</span><span class="p">][</span><span class="n">contrib_id</span><span class="p">][</span>
+               <span class="s2">&quot;spin_pair&quot;</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">&quot;contrib&quot;</span><span class="p">][</span><span class="n">contrib_id</span><span class="p">][</span>
+               <span class="s2">&quot;spin_pair&quot;</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">&#39;&#39;&#39;</span><span class="se">\</span>
+<span class="s1">  &lt;/restraint&gt;</span>
+<span class="s1">&#39;&#39;&#39;</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">&#39;&#39;&#39;</span><span class="se">\</span>
+<span class="s1">&lt;/distance_restraint_list&gt;</span>
+<span class="s1">&#39;&#39;&#39;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</span>
+        <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;! Short range Hbond list (Alpha helix)&quot;</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">&lt;</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">&#39;H&#39;</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">&#39;H&#39;</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">&#39;&#39;&#39;</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">&#39;&#39;&#39;</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">&quot;main&quot;</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">&quot;&quot;&quot;</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&#39;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 =  [&#39;donor&#39;,</span>
+<span class="sd">            &#39;acceptor&#39;] =&gt; 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 = &quot;main&quot;)</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">        &quot;&quot;&quot;</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">&#39;&#39;&#39;</span><span class="se">\</span>
+<span class="s1">! Long range Hbond list (beta sheet)</span>
+<span class="s1">&#39;&#39;&#39;</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">&quot;scoremap&quot;</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(&quot;distmap&quot;)</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&#39;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">&quot;all&quot;</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][&#39;dono&#39;])</span>
+                    <span class="c1">#     print(topo[residx2][1][&#39;acce&#39;])</span>
+                    <span class="c1">#     print([x[0] for x in topo])</span>
+                    <span class="c1">#     print(hbmap[&#39;maplot&#39;].sequence[residx1])</span>
+                    <span class="c1">#     print(hbmap[&#39;maplot&#39;].sequence[residx2])</span>
+                    <span class="c1">#     print(distmap.index[residx2])</span>
+                    <span class="c1">#     print(dist)</span>
+                    <span class="c1">#     print(hbmap[&quot;scoremap&quot;])</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">&quot;main&quot;</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">&quot;Wrong longrange hbond type given. Default &quot;</span>
+                                  <span class="s2">&quot;option used (main)&quot;</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">&#39;&#39;&#39;</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">    &#39;&#39;&#39;</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">&quot;Writing </span><span class="si">%d</span><span class="s2"> hbonds from hbmap in </span><span class="si">%s</span><span class="s2">&quot;</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">&#39;main&#39;</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</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 = &#39;main&#39;)</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">        &quot;&quot;&quot;</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">&#39;w&#39;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</span>
+        <span class="c1"># Build global secondary structure distance restraints (H-H+4, E-E+1,</span>
+        <span class="c1">#  ...)</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+
+<span class="sd">        :param sec_struct:</span>
+<span class="sd">        :param ss_dist:</span>
+<span class="sd">        :param outfile:</span>
+<span class="sd">        &quot;&quot;&quot;</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">&#39;w&#39;</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">&#39;C&#39;</span> <span class="ow">in</span> <span class="n">ss1</span> <span class="ow">or</span> <span class="s1">&#39;C&#39;</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">&#39;</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">&#39;</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">&#39;-&#39;</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">&#39;&#39;&#39;</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">&#39;&#39;&#39;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;w&quot;</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">&#39;H&#39;</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">&#39;E&#39;</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">&#39;&#39;&#39;</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">&#39;&#39;&#39;</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">&quot;&quot;&quot;XML converter ariaec to aria&quot;&quot;&quot;</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">&quot;main&quot;</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">&quot;&quot;&quot;</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 = &quot;main&quot;)</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">        &quot;&quot;&quot;</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=&quot;min&quot;, product=True):</span>
+    <span class="c1">#</span>
+    <span class="c1">#     &quot;&quot;&quot;</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 = &quot;min&quot;)</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">#     &quot;&quot;&quot;</span>
+    <span class="c1">#</span>
+    <span class="c1">#     def resname(res):</span>
+    <span class="c1">#         &quot;&quot;&quot;</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">#         &quot;&quot;&quot;</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">#         &quot;&quot;&quot;</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">#         &quot;&quot;&quot;</span>
+    <span class="c1">#         return [atm for atm in atms if atm in (</span>
+    <span class="c1">#             &#39;CA&#39;, &#39;CB&#39;,</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 == &quot;min&quot;:</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 == &quot;heavy&quot;:</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 != &#39;all&#39;:</span>
+    <span class="c1">#         LOG.warning(&quot;Wrong pair_list option. Pair_list set to min&quot;)</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 (&#39;CA&#39;, &#39;CB&#39;)</span>
+    <span class="c1">#                 and atm2 not in (&#39;CA&#39;, &#39;CB&#39;))] if list_type == &#39;min&#39; 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">&quot;min&quot;</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">            &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">            &quot;&quot;&quot;</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">&#39;CA&#39;</span><span class="p">,</span> <span class="s1">&#39;CB&#39;</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">&quot;min&quot;</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">&quot;heavy&quot;</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">&#39;all&#39;</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">&quot;Wrong pair_list option. Pair_list set to min&quot;</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">&quot;min&quot;</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">&quot;allvsall&quot;</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</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 = &quot;min&quot;)</span>
+<span class="sd">        res1 :</span>
+
+<span class="sd">        res2 :</span>
+
+
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+
+
+<span class="sd">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">            &quot;&quot;&quot;</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">&quot;same&quot;</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">&#39;CA&#39;</span><span class="p">,</span> <span class="s1">&#39;CB&#39;</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">&#39;CA&#39;</span><span class="p">,</span> <span class="s1">&#39;CB&#39;</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">&#39;min&#39;</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">&quot;onevsall&quot;</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">&quot;allvsall&quot;</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">&quot;same&quot;</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">&#39;CA&#39;</span><span class="p">,</span> <span class="s1">&#39;CB&#39;</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">&#39;CA&#39;</span><span class="p">,</span> <span class="s1">&#39;CB&#39;</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">&#39;min&#39;</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">&quot;pdbdistance_level&quot;</span><span class="p">,</span> <span class="s2">&quot;ss&quot;</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">&quot;atoms_type&quot;</span><span class="p">,</span> <span class="s2">&quot;min&quot;</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">&#39;INTERLOWERBOUNDS&#39;</span><span class="p">,</span> <span class="s1">&#39;interlowerbounds_pdbstat&#39;</span><span class="p">),</span>
+            <span class="p">(</span><span class="s1">&#39;INTERTARGET&#39;</span><span class="p">,</span> <span class="s1">&#39;intertarget_pdbstat&#39;</span><span class="p">),</span>
+            <span class="p">(</span><span class="s1">&#39;INTERUPPERBOUNDS&#39;</span><span class="p">,</span> <span class="s1">&#39;interupperbounds_pdbstat&#39;</span><span class="p">),</span>
+            <span class="p">(</span><span class="s1">&#39;INTRALOWERBOUNDS&#39;</span><span class="p">,</span> <span class="s1">&#39;intralowerbounds_pdbstat&#39;</span><span class="p">),</span>
+            <span class="p">(</span><span class="s1">&#39;INTRATARGET&#39;</span><span class="p">,</span> <span class="s1">&#39;intratarget_pdbstat&#39;</span><span class="p">),</span>
+            <span class="p">(</span><span class="s1">&#39;INTRAUPPERBOUNDS&#39;</span><span class="p">,</span> <span class="s1">&#39;intraupperbounds_pdbstat&#39;</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">&#39;SecStruct&#39;</span><span class="p">,</span> <span class="s1">&#39;AminoAcid&#39;</span><span class="p">,</span> <span class="s1">&#39;Atom&#39;</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">&#39;SecStruct&#39;</span><span class="p">,</span> <span class="s1">&#39;AminoAcid&#39;</span><span class="p">,</span> <span class="s1">&#39;Atom&#39;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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&#39;agit d&#39;une</span>
+        <span class="c1"># carte de distance (native ou predite)</span>
+        <span class="c1"># Fixed</span>
+        <span class="c1"># -----</span>
+        <span class="c1">#   =&gt; target contient des infos pour les 20 aa qui modifieront le champ</span>
+        <span class="c1">#      distance de la contrainte</span>
+        <span class="c1">#   =&gt; AaAtmMap (20 aa) OU AtmMap</span>
+        <span class="c1"># pdbstat</span>
+        <span class="c1"># -------</span>
+        <span class="c1">#   =&gt; 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">#   =&gt; Construire Maps en fonction des modes des distribution</span>
+        <span class="c1">#   =&gt; 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">#   =&gt; target contient les infos de distances predites en fonction</span>
+        <span class="c1"># des positions</span>
+        <span class="c1">#   =&gt; 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">&#39;INTERLOWERBOUNDS&#39;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
+            <span class="s1">&#39;INTERTARGET&#39;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
+            <span class="s1">&#39;INTERUPPERBOUNDS&#39;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
+            <span class="s1">&#39;INTRALOWERBOUNDS&#39;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
+            <span class="s1">&#39;INTRATARGET&#39;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
+            <span class="s1">&#39;INTRAUPPERBOUNDS&#39;</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">&quot;distance_type&quot;</span><span class="p">,</span> <span class="s2">&quot;fixed&quot;</span><span class="p">)</span>
+
+        <span class="k">if</span> <span class="n">distype</span> <span class="o">==</span> <span class="s2">&quot;distfile&quot;</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">&#39;INTERTARGET&#39;</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">&#39;alldistmap&#39;</span><span class="p">)</span>
+        <span class="k">elif</span> <span class="n">distype</span> <span class="o">==</span> <span class="s2">&quot;fixed&quot;</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[&quot;restraint_distance&quot;]</span>
+            <span class="c1"># targetmaps[&#39;INTERTARGET&#39;] = targetmap</span>
+            <span class="n">targetmaps</span><span class="p">[</span><span class="s1">&#39;INTERTARGET&#39;</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">&quot;restraint_distance&quot;</span><span class="p">]</span>
+        <span class="k">elif</span> <span class="n">distype</span> <span class="o">==</span> <span class="s2">&quot;pdbstat&quot;</span><span class="p">:</span>
+            <span class="c1"># TODO: pdbstats a partir d&#39;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(&#39;_upper_bound&#39;, &#39;&#39;): settings.get(</span>
+            <span class="c1">#     atmbound, None) for atmbound in (bound for bound in settings</span>
+            <span class="c1">#                                      if &#39;_upper_bound&#39; 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">&quot;Unknown distance_type </span><span class="si">%s</span><span class="s2"> or wrong distance file&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">            &quot;&quot;&quot;</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">&quot;distance_type&quot;</span><span class="p">,</span> <span class="s2">&quot;fixed&quot;</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">&quot;groupby_method&quot;</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">&quot;fixed&quot;</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&#39;index relatif a la paire ou la liste de paires d&#39;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">&#39;CA&#39;</span><span class="p">,</span> <span class="s1">&#39;CB&#39;</span><span class="p">)</span> <span class="k">else</span> <span class="s1">&#39;SC&#39;</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">&#39;CA&#39;</span><span class="p">,</span> <span class="s1">&#39;CB&#39;</span><span class="p">)</span> <span class="k">else</span> <span class="s1">&#39;SC&#39;</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">&#39;CA&#39;</span><span class="p">,</span> <span class="s1">&#39;CB&#39;</span><span class="p">)</span> <span class="k">else</span> <span class="s1">&#39;SC&#39;</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">&#39;E&#39;</span><span class="p">,</span> <span class="s1">&#39;H&#39;</span><span class="p">)</span> <span class="k">else</span> <span class="s1">&#39;X&#39;</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">&#39;CA&#39;</span><span class="p">,</span> <span class="s1">&#39;CB&#39;</span><span class="p">)</span> <span class="k">else</span> <span class="s1">&#39;SC&#39;</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">&#39;E&#39;</span><span class="p">,</span> <span class="s1">&#39;H&#39;</span><span class="p">)</span> <span class="k">else</span> <span class="s1">&#39;X&#39;</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">&quot;</span><span class="si">%.2f</span><span class="s2">&quot;</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">&quot;deff&quot;</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">&quot;</span><span class="si">%.2f</span><span class="s2">&quot;</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">&quot;deffpow&quot;</span><span class="p">])</span>
+        <span class="k">elif</span> <span class="n">groupby</span> <span class="o">==</span> <span class="s2">&quot;mean&quot;</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">&quot;min&quot;</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">&quot;&quot;</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</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 = &quot;&quot;)</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">        &quot;&quot;&quot;</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&#39;absence de</span>
+            <span class="c1"># poids:</span>
+            <span class="c1">#       - aleatoire (implementation actuelle) =&gt; Tester la</span>
+            <span class="c1"># robustesse</span>
+            <span class="c1">#       - trouver une maniere d&#39;attribuer des poids dans le cas</span>
+            <span class="c1"># d&#39;une matrice de distance d&#39;un pdb ?</span>
+            <span class="c1">#       - Def le max independent set dans le graphe (matrice de</span>
+            <span class="c1"># contacts) =&gt; 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">&lt;</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">&quot;Initialize sampling for contact selection with seed </span><span class="si">%s</span><span class="s2">&quot;</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">&#39;seed&#39;</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">&#39;seed&#39;</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">&quot;Using all contacts&quot;</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">&quot;Selecting </span><span class="si">%d</span><span class="s2"> contacts&quot;</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">&quot;</span><span class="se">\n</span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</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">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="s2">&quot;(</span><span class="si">%2d</span><span class="s2">, </span><span class="si">%2d</span><span class="s2">)&quot;</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">&#39;evfold_weight&#39;</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">&#39;neighborhood_contact&#39;</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">&quot;ambiguous_distance_restraint&quot;</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">&quot;contributions_type&quot;</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">&quot;atoms_type&quot;</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">&quot;restraint_distance&quot;</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">&#39;INTERTARGET&#39;</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">&quot;native_reliable&quot;</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">&quot;&quot;&quot;</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">            &quot;&quot;&quot;</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">&quot;Writing restraint related to contact </span><span class="si">%s</span><span class="s2">&quot;</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 =&gt; 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">&quot;lower_bound&quot;</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">&quot;ca_upper_bound&quot;</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">&quot;CA&quot;</span><span class="p">,</span> <span class="s2">&quot;CA&quot;</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">&quot;cb_upper_bound&quot;</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">&quot;CB&quot;</span><span class="p">,</span> <span class="s2">&quot;CB&quot;</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">&quot;def_upper_bound&quot;</span><span class="p">])</span>
+
+                    <span class="c1"># TODO: Better way to define upper_bound if target &gt; 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">&lt;=</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">&quot;meta&quot;</span><span class="p">:</span> <span class="p">{</span>
+                                <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="n">contactweight</span><span class="p">,</span>
+                                <span class="s2">&quot;distance&quot;</span><span class="p">:</span> <span class="n">targetdist</span><span class="p">,</span>
+                                <span class="s2">&quot;lower_bound&quot;</span><span class="p">:</span> <span class="n">lower_bound</span><span class="p">,</span>
+                                <span class="s2">&quot;upper_bound&quot;</span><span class="p">:</span> <span class="n">upper_bound</span><span class="p">,</span>
+                                <span class="s2">&quot;active&quot;</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
+                                <span class="s2">&quot;reliable&quot;</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">&quot;native&quot;</span><span class="p">,</span> <span class="s2">&quot;native_full&quot;</span><span class="p">,</span> <span class="s2">&quot;pdb&quot;</span><span class="p">)</span> <span class="k">else</span> <span class="mi">0</span><span class="p">,</span>
+                                <span class="s2">&quot;list_name&quot;</span><span class="p">:</span> <span class="n">listname</span>
+                            <span class="p">},</span>
+                            <span class="s2">&quot;contrib&quot;</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">&quot;contrib&quot;</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">&quot;meta&quot;</span><span class="p">:</span> <span class="p">{</span>
+                            <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="mf">1.0</span>
+                        <span class="p">},</span>
+                        <span class="s2">&quot;spin_pair&quot;</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">&quot;xml&quot;</span><span class="p">]</span> <span class="o">+</span> <span class="s2">&quot;/&quot;</span> <span class="o">+</span> <span class="s2">&quot;_&quot;</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">&quot;.xml&quot;</span>
+        <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Write </span><span class="si">%d</span><span class="s2"> xml distance restraints in </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;Writing </span><span class="si">%s</span><span class="s2"> ARIA XML distance restraints&quot;</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">&#39;maplot&#39;</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">&quot;nb_c&quot;</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">&quot;scoremap&quot;</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">&quot;filteredlist&quot;</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">&quot;&quot;&quot;</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">            {&#39;hbond&#39;: hb_file, &#39;dihed&#39;: dihed_file, &#39;ssdist&#39;: ssdist_file}</span>
+<span class="sd">        &quot;&quot;&quot;</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">&quot;tbl&quot;</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">&quot;_dihed.tbl&quot;</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">&quot;tbl&quot;</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">&quot;_hbond.tbl&quot;</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">&quot;tbl&quot;</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">&quot;_ssdist.tbl&quot;</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">&quot;   Dihedral restraints for secondary structures (</span><span class="si">%s</span><span class="s2">)&quot;</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">&quot;   Secondary structure restraints (</span><span class="si">%s</span><span class="s2">)&quot;</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">&quot;   Helix bond restraints (</span><span class="si">%s</span><span class="s2">)&quot;</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">&#39;longrange_hbtype&#39;</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">&#39;hb_dminus&#39;</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">&#39;hb_dplus&#39;</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">&#39;hbond&#39;</span><span class="p">:</span> <span class="n">hb_file</span><span class="p">,</span> <span class="s1">&#39;dihed&#39;</span><span class="p">:</span> <span class="n">dihed_file</span><span class="p">,</span> <span class="s1">&#39;ssdist&#39;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;Loading aria template file </span><span class="si">%s</span><span class="s2">&quot;</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">&#39;&#39;</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">&quot;/tmp/mako_modules&quot;</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">&quot;&quot;&quot;Can&#39;t open template file &quot;</span><span class="si">%s</span><span class="s2">&quot;. </span><span class="si">%s</span><span class="s2">&quot;&quot;&quot;</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[&#39;md_parameters_steps_cool1&#39;])</span>
+        <span class="c1"># steps_2 = float(self.settings.setup.config[&#39;md_parameters_steps_cool2&#39;])</span>
+        <span class="c1"># if steps_1 / steps_2 != float(5) / int(4):</span>
+        <span class="c1">#     sys.exit(</span>
+        <span class="c1">#         &#39;Length of first and second cooling stages must be fixed in &#39;</span>
+        <span class="c1">#         &#39;the ratio %.2f:%.2f&#39; % (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">&#39;temp_root&#39;</span><span class="p">]),</span>
+                                <span class="n">molecule</span><span class="p">,</span> <span class="s2">&quot;_&quot;</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">&quot;Working dir </span><span class="si">%s</span><span class="s2"> doesn&#39;t exist.&quot;</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">&quot;Create new directory </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;Temp directory </span><span class="si">%s</span><span class="s2"> doesn&#39;t exist.&quot;</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">&quot;Create new directory </span><span class="si">%s</span><span class="s2">&quot;</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">&#39;working_directory&#39;</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">&#39;temp_root&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">temp_dir</span>
+
+        <span class="k">if</span> <span class="s2">&quot;-o&quot;</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">&#39;host_command&#39;</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">&quot;No output file defined in host_command. You should add&quot;</span>
+                        <span class="s2">&quot; the output option (-o) to your command.&quot;</span><span class="p">)</span>
+
+        <span class="n">project</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;project_name&#39;</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">&#39;date&#39;</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">&#39;file_root&#39;</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">&#39;molecule_file&#39;</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">&quot;ssdist&quot;</span><span class="p">]:</span>
+            <span class="n">un_dict</span><span class="p">[</span><span class="s1">&#39;ss&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span>
+                <span class="s1">&#39;file&#39;</span><span class="p">:</span> <span class="n">tbl_files</span><span class="p">[</span><span class="s2">&quot;ssdist&quot;</span><span class="p">],</span>
+                <span class="s1">&#39;format&#39;</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">&#39;ss_dist_format&#39;</span><span class="p">],</span>
+                <span class="s1">&#39;ccpn_id&#39;</span><span class="p">:</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
+                <span class="s1">&#39;enabled&#39;</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">&#39;ss_dist_enabled&#39;</span><span class="p">],</span>
+                <span class="s1">&#39;add_to_network&#39;</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">&#39;ss_dist_add_to_network&#39;</span><span class="p">],</span>
+                <span class="s1">&#39;calibrate&#39;</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">&#39;ss_dist_calibrate&#39;</span><span class="p">],</span>
+                <span class="s1">&#39;run_network_anchoring&#39;</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">&#39;ss_dist_run_network_anchoring&#39;</span><span class="p">],</span>
+                <span class="s1">&#39;filter_contributions&#39;</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">&#39;ss_dist_filter_contributions&#39;</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">&quot;ambiguous_distance_restraint&quot;</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">&#39;file&#39;</span><span class="p">:</span> <span class="n">distfile</span><span class="p">,</span>
+                    <span class="s1">&#39;format&#39;</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">&#39;dist_format&#39;</span><span class="p">],</span>
+                    <span class="s1">&#39;ccpn_id&#39;</span><span class="p">:</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
+                    <span class="s1">&#39;enabled&#39;</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">&#39;dist_enabled&#39;</span><span class="p">],</span>
+                    <span class="s1">&#39;add_to_network&#39;</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">&#39;dist_add_to_network&#39;</span><span class="p">],</span>
+                    <span class="s1">&#39;calibrate&#39;</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">&#39;dist_calibrate&#39;</span><span class="p">],</span>
+                    <span class="s1">&#39;run_network_anchoring&#39;</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">&#39;dist_run_network_anchoring&#39;</span><span class="p">],</span>
+                    <span class="s1">&#39;filter_contributions&#39;</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">&#39;dist_filter_contributions&#39;</span><span class="p">],</span>
+                    <span class="s1">&#39;avg_exponent&#39;</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">&#39;dist_avg_exponent&#39;</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">&#39;file&#39;</span><span class="p">:</span> <span class="n">distfile</span><span class="p">,</span>
+                    <span class="s1">&#39;format&#39;</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">&#39;dist_format&#39;</span><span class="p">],</span>
+                    <span class="s1">&#39;ccpn_id&#39;</span><span class="p">:</span> <span class="s1">&#39;&#39;</span><span class="p">,</span>
+                    <span class="s1">&#39;enabled&#39;</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">&#39;dist_enabled&#39;</span><span class="p">],</span>
+                    <span class="s1">&#39;add_to_network&#39;</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">&#39;dist_add_to_network&#39;</span><span class="p">],</span>
+                    <span class="s1">&#39;calibrate&#39;</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">&#39;dist_calibrate&#39;</span><span class="p">],</span>
+                    <span class="s1">&#39;run_network_anchoring&#39;</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">&#39;dist_run_network_anchoring&#39;</span><span class="p">],</span>
+                    <span class="s1">&#39;filter_contributions&#39;</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">&#39;dist_filter_contributions&#39;</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">&#39;unambiguous_distance_restraints&#39;</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">&#39;ambiguous_distance_restraints&#39;</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">&#39;hbond_dist_file&#39;</span><span class="p">:</span> <span class="n">tbl_files</span><span class="p">[</span><span class="s2">&quot;hbond&quot;</span><span class="p">]</span>
+            <span class="k">if</span> <span class="n">tbl_files</span><span class="p">[</span><span class="s1">&#39;hbond&#39;</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">&#39;dihed_angle_file&#39;</span><span class="p">:</span> <span class="n">tbl_files</span><span class="p">[</span><span class="s2">&quot;dihed&quot;</span><span class="p">]</span>
+            <span class="k">if</span> <span class="n">tbl_files</span><span class="p">[</span><span class="s1">&#39;dihed&#39;</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">&#39;n_cpus&#39;</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">&#39;cpus&#39;</span><span class="p">,</span>
+                                                                     <span class="s1">&#39;20&#39;</span><span class="p">)</span>
+
+        <span class="n">proj_file</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">/ariaproject.xml&quot;</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">&#39;w&#39;</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">&quot;Writing ARIA project file (</span><span class="si">%s</span><span class="s2">)&quot;</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">&#39;ariaproject&#39;</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">&quot;Reading ARIA project file&quot;</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">&#39;ariaproject&#39;</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">&#39;extractall&#39;</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">&quot;Update </span><span class="si">%s</span><span class="s2"> data in project&quot;</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">&quot;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">&quot;</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">&quot;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">&quot;</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">&quot;Update </span><span class="si">%s</span><span class="s2"> annealing parameters&quot;</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">&quot;Writing new ARIA xml file (</span><span class="si">%s</span><span class="s2">)&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;_restraints.xml&quot;</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">&quot;assign&quot;</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">&quot;restflag&quot;</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">&quot;resid1&quot;</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">&quot;resid2&quot;</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">&quot;segid1&quot;</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">&quot;segid2&quot;</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">&quot;atm1&quot;</span><span class="p">),</span> <span class="s1">&#39;cns&#39;</span><span class="p">,</span> <span class="s1">&#39;iupac&#39;</span><span class="p">,</span>
+                    <span class="s1">&#39;AMINO_ACID&#39;</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">&quot;atm2&quot;</span><span class="p">),</span> <span class="s1">&#39;cns&#39;</span><span class="p">,</span> <span class="s1">&#39;iupac&#39;</span><span class="p">,</span>
+                    <span class="s1">&#39;AMINO_ACID&#39;</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">&quot;restno&quot;</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">&quot;listname&quot;</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">&quot;dtarget&quot;</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">&quot;dminus&quot;</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">&quot;dplus&quot;</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">&quot;meta&quot;</span><span class="p">:</span> <span class="p">{</span>
+                                <span class="s2">&quot;weight&quot;</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">&quot;weight&quot;</span><span class="p">)),</span>
+                                <span class="s2">&quot;distance&quot;</span><span class="p">:</span> <span class="n">dtarg</span><span class="p">,</span>
+                                <span class="s2">&quot;lower_bound&quot;</span><span class="p">:</span> <span class="n">lwbound</span><span class="p">,</span>
+                                <span class="s2">&quot;upper_bound&quot;</span><span class="p">:</span> <span class="n">upbound</span><span class="p">,</span>
+                                <span class="s2">&quot;active&quot;</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
+                                <span class="s2">&quot;reliable&quot;</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
+                                <span class="s2">&quot;list_name&quot;</span><span class="p">:</span> <span class="n">restlistname</span>
+                            <span class="p">},</span>
+                            <span class="s2">&quot;contrib&quot;</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">&quot;contrib&quot;</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">&quot;contrib&quot;</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">&quot;meta&quot;</span><span class="p">:</span> <span class="p">{</span>
+                                <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="mf">1.0</span>
+                            <span class="p">},</span>
+                            <span class="s2">&quot;spin_pair&quot;</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">&quot;contrib&quot;</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">&quot;contrib&quot;</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">&quot;meta&quot;</span><span class="p">:</span> <span class="p">{</span>
+                            <span class="s2">&quot;weight&quot;</span><span class="p">:</span> <span class="mf">1.0</span>
+                        <span class="p">},</span>
+                        <span class="s2">&quot;spin_pair&quot;</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">&quot;Wrote </span><span class="si">%d</span><span class="s2"> xml distance restraints in </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;&quot;&quot;Main command to convert tbl file(s) in ARIA XML Format&quot;&quot;&quot;</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">&quot;output_directory&quot;</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">&quot;molecule&quot;</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">&quot;infiles&quot;</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">&quot;listname&quot;</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>
+        &copy; 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 &mdash; 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> &raquo;</li>
+        
+          <li><a href="../index.html">Module code</a> &raquo;</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">&quot;&quot;&quot;</span>
+<span class="sd">                            Input/Output aria_ec scripts</span>
+<span class="sd">&quot;&quot;&quot;</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">&quot;&quot;&quot;Contact maplot class&quot;&quot;&quot;</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">&quot;no_filter&quot;</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">&#39;&#39;</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">&#39;&#39;</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">&quot;&quot;&quot;Contact map analysis command&quot;&quot;&quot;</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">&quot;Settings:</span><span class="se">\n</span><span class="s2">&quot;</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">&quot;Args:</span><span class="se">\n</span><span class="s2">&quot;</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">&quot;onlyreport&quot;</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">&quot;seq&quot;</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">&quot;seq&quot;</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">&quot;sspred&quot;</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">&quot;ssidx&quot;</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">&quot;infiles&quot;</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">&quot;contact_types&quot;</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">&#39;groupby_method&#39;</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&#39;applique sur l&#39;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">&quot;</span><span class="si">%s</span><span class="s2"> map set as reference&quot;</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">&quot;filter&quot;</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">&quot;filter&quot;</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">&quot;Filtering </span><span class="si">%s</span><span class="s2"> map&quot;</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=&quot;pos&quot;)</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">&quot;maplot&quot;</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">&quot;First contact map should be a valid file&quot;</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(&quot;n_factor&quot;))</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">&#39;size_fig&#39;</span><span class="p">,</span> <span class="s1">&#39;plot_ext&#39;</span><span class="p">,</span> <span class="s1">&#39;plot_dpi&#39;</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">&quot;save_fig&quot;</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">&quot;onlyreport&quot;</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">&quot;merge&quot;</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">&quot;merge&quot;</span><span class="p">)</span>
+            <span class="c1"># LOG.info(&quot;Merging contact maps (%s)&quot; % &#39;, &#39;.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">&quot;maplot&quot;</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&#39;T WORK !!!!</span>
+                            <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Merging </span><span class="si">%s</span><span class="s2"> with </span><span class="si">%s</span><span class="s2"> map&quot;</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">&quot;maplot&quot;</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">&quot;</span><span class="si">%s</span><span class="s2">_</span><span class="si">%s</span><span class="s2">&quot;</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">&quot;maplot&quot;</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">&quot;prefix&quot;</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">&quot;prefix&quot;</span><span class="p">)</span> <span class="k">else</span> <span class="s2">&quot;&quot;</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">&quot;onlyreport&quot;</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">&quot;scoremap&quot;</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">&quot;</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">&quot;</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">&quot;prefix&quot;</span><span class="p">)</span> <span class="k">else</span> <span class="s2">&quot;&quot;</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">&#39;scoremap&#39;</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span>
+            <span class="c1"># if self.allresmap[mapt].get(&quot;maplot&quot;) is not None and \</span>
+            <span class="c1">#         self.allresmap[mapt].get(&quot;scoremap&quot;) is not None:</span>
+            <span class="c1">#     Get top contact map/list</span>
+            <span class="c1">#     cmpmap = self.allresmap[mapt][&quot;maplot&quot;].topmap(</span>
+            <span class="c1">#         self.allresmap[mapt][&quot;scoremap&quot;], nb_c)</span>
+            <span class="c1">#     cmplist = self.allresmap[mapt][&#39;scoremap&#39;].sortedset(</span>
+            <span class="c1">#         human_idx=True)[:nb_c]</span>
+            <span class="c1"># elif self.allresmap[mapt].get(&quot;maplot&quot;) 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">&quot;maplot&quot;</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">&#39;maplot&#39;</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(&quot;%s map doesn&#39;t have any score related. Can&#39;t &quot;</span>
+            <span class="c1">#                    &quot;define top list related to this map&quot;, 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">&quot;onlyreport&quot;</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">&quot;graphics&quot;</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">&quot;onlyreport&quot;</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">&quot;onlyreport&quot;</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">&quot;distmap&quot;</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">&quot;save_fig&quot;</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">&quot;alpha&quot;</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>
+        &copy; 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 &mdash; 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> &raquo;</li>
+        
+          <li><a href="../index.html">Module code</a> &raquo;</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">&quot;&quot;&quot;</span>
+<span class="sd">                            Network deconvolution tool</span>
+<span class="sd">&quot;&quot;&quot;</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">&quot;&quot;&quot;</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">    &quot;&quot;&quot;</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">&gt;=</span> <span class="mi">1</span> <span class="ow">or</span> <span class="n">beta</span> <span class="o">&lt;=</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">&#39;error: beta should be in (0,1)&#39;</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="n">alpha</span> <span class="o">&gt;</span> <span class="mi">1</span> <span class="ow">or</span> <span class="n">alpha</span> <span class="o">&lt;=</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">&#39;error: alpha should be in (0,1)&#39;</span><span class="p">)</span>
+
+    <span class="sd">&#39;&#39;&#39;</span>
+<span class="sd">    ***********************************</span>
+<span class="sd">     Processing the input matrix</span>
+<span class="sd">     diagonal values are filtered</span>
+<span class="sd">    &#39;&#39;&#39;</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">&#39;&#39;&#39;</span>
+<span class="sd">    Thresholding the input matrix</span>
+<span class="sd">    &#39;&#39;&#39;</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">&gt;=</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">&#39;&#39;&#39;</span>
+<span class="sd">    making the matrix symetric if already not</span>
+<span class="sd">    &#39;&#39;&#39;</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">&#39;&#39;&#39;</span>
+<span class="sd">    ***********************************</span>
+<span class="sd">    eigen decomposition</span>
+<span class="sd">    &#39;&#39;&#39;</span>
+    <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s1">&#39;Decomposition and deconvolution...&#39;</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">&#39;&#39;&#39;</span>
+
+<span class="sd">    ***********************************</span>
+<span class="sd">     displaying direct weights</span>
+<span class="sd">    &#39;&#39;&#39;</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">&gt;</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">&#39;&#39;&#39;</span>
+<span class="sd">    ***********************************</span>
+<span class="sd">     linearly mapping the deconvolved matrix to be between 0 and 1</span>
+<span class="sd">    &#39;&#39;&#39;</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>
+        &copy; 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 &mdash; 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> &raquo;</li>
+        
+          <li><a href="../index.html">Module code</a> &raquo;</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">&quot;&quot;&quot;</span>
+<span class="sd">                        PDB distance distribution generation</span>
+<span class="sd">&quot;&quot;&quot;</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">&quot;&quot;&quot;</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">    &quot;&quot;&quot;</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">&#39;obsolete_directory&#39;</span><span class="p">,</span> <span class="s1">&#39;/tmp/obsolete&#39;</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">&quot;</span><span class="si">%s</span><span class="s2"> directory does not exist. Making a new directory&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&#39;&#39;</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">&quot;</span><span class="si">%s</span><span class="s2">&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</span>
+        <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;Computing secondary structure index&quot;</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">&#39;&#39;</span><span class="p">)</span>
+        <span class="n">ss_count</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;H&#39;</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">&#39;E&#39;</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">&#39;X&#39;</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">&quot; &quot;</span><span class="p">,</span> <span class="n">resid_x</span><span class="p">,</span> <span class="s2">&quot; &quot;</span><span class="p">)),</span> <span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="s2">&quot;X&quot;</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">&quot;X&quot;</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">&quot;H&quot;</span><span class="p">,</span> <span class="s2">&quot;E&quot;</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">&quot;</span><span class="si">%s%d</span><span class="s2">&quot;</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">&quot; &quot;</span><span class="p">,</span> <span class="n">resid_j</span><span class="p">,</span> <span class="s2">&quot; &quot;</span><span class="p">)),</span> <span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="s2">&quot;X&quot;</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">&quot;X&quot;</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">&quot;H&quot;</span><span class="p">,</span> <span class="s2">&quot;E&quot;</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">&quot;all&quot;</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</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 : {&#39;all&#39;, &#39;min&#39;, &#39;heavy&#39;}</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 = &quot;all&quot;)</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">        &quot;&quot;&quot;</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">&quot;Compute atom distances for chain </span><span class="si">%s</span><span class="s2"> of </span><span class="si">%s</span><span class="s2">&quot;</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 = &quot;&quot;</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">&quot;contact_cutoff&quot;</span><span class="p">)</span>
+        <span class="c1"># Check if dssp executable exists otherwise we can&#39;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">&quot;dssp_exec&quot;</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">&quot;DSSP executable not found. Check if dssp_exec parameter&quot;</span>
+                      <span class="s2">&quot; in config file is correct !&quot;</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">&#39;.pdb&#39;</span><span class="p">,</span> <span class="s1">&#39;.ent&#39;</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">&#39;H&#39;</span><span class="p">,</span> <span class="s1">&#39;W&#39;</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">&#39; &#39;</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">&#39;CA&#39;</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">&quot;A&quot;</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">&quot;dssp_exec&quot;</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">&quot;</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;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">&quot;</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">&quot;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">&quot;</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">&quot;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&quot;</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">&quot;Looking for residues in contact with atom </span><span class="si">%s</span><span class="s2"> of res &quot;</span>
+                          <span class="s2">&quot;</span><span class="si">%s</span><span class="s2"> (</span><span class="si">%s</span><span class="s2">)&quot;</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">&quot;R&quot;</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">&gt;</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">&quot;CYS&quot;</span> <span class="ow">and</span> <span class="n">resy_name</span> <span class="o">==</span> <span class="s2">&quot;CYS&quot;</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">&quot;min&quot;</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">&quot;CA&quot;</span><span class="p">,</span> <span class="s2">&quot;CB&quot;</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">&quot;heavy&quot;</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">&quot;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&quot;</span>
+                              <span class="s2">&quot; res </span><span class="si">%s</span><span class="s2"> (</span><span class="si">%s</span><span class="s2">)&quot;</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">&quot;HH&quot;</span><span class="p">,</span> <span class="s2">&quot;EE&quot;</span><span class="p">,</span> <span class="s2">&quot;HE&quot;</span><span class="p">,</span> <span class="s2">&quot;EH&quot;</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">&quot;HE&quot;</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">&quot;HH&quot;</span><span class="p">,</span> <span class="s2">&quot;EE&quot;</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">&quot;XH&quot;</span> <span class="k">if</span> <span class="s2">&quot;H&quot;</span> <span class="ow">in</span> <span class="n">ss_type</span> <span class="k">else</span> <span class="s2">&quot;XE&quot;</span> \
+                                <span class="k">if</span> <span class="s2">&quot;E&quot;</span> <span class="ow">in</span> <span class="n">ss_type</span> <span class="k">else</span> <span class="s2">&quot;XX&quot;</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">&#39;&#39;</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 &quot;all&quot;</span>
+
+                        <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;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">)&quot;</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">&quot;min&quot;</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">&quot;CA&quot;</span><span class="p">,</span> <span class="s2">&quot;CB&quot;</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">&quot;heavy&quot;</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">&quot;...valid&quot;</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">&#39;pdbid&#39;</span><span class="p">,</span> <span class="n">pdbid</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;ss_type&#39;</span><span class="p">,</span> <span class="n">ss_type</span><span class="p">),</span>
+                                <span class="p">(</span><span class="s1">&#39;ssx&#39;</span><span class="p">,</span> <span class="n">ssx</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;ssy&#39;</span><span class="p">,</span> <span class="n">ssy</span><span class="p">),</span>
+                                <span class="p">(</span><span class="s1">&#39;pb_type&#39;</span><span class="p">,</span> <span class="n">pb_type</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;pblocx&#39;</span><span class="p">,</span> <span class="n">pblocx</span><span class="p">),</span>
+                                <span class="p">(</span><span class="s1">&#39;pblocy&#39;</span><span class="p">,</span> <span class="n">pblocy</span><span class="p">),</span> <span class="p">(</span><span class="s1">&#39;resx_id&#39;</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">&#39;resy_id&#39;</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">&#39;resx_name&#39;</span><span class="p">,</span> <span class="n">resx_name</span><span class="p">),</span>
+                                <span class="p">(</span><span class="s1">&#39;resy_name&#39;</span><span class="p">,</span> <span class="n">resy_name</span><span class="p">),</span>
+                                <span class="p">(</span><span class="s1">&#39;atmx_id&#39;</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">&#39;atmy_id&#39;</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">&#39;atmx_name&#39;</span><span class="p">,</span> <span class="n">atmx_name</span><span class="p">),</span>
+                                <span class="p">(</span><span class="s1">&#39;atmy_name&#39;</span><span class="p">,</span> <span class="n">atmy_name</span><span class="p">),</span>
+                                <span class="p">(</span><span class="s1">&#39;dist&#39;</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">&quot;&quot;&quot;main method&quot;&quot;&quot;</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">&quot;output_directory&quot;</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">&#39;pdbdir&#39;</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">&#39;pdbdir&#39;</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">&quot;download_pdbs&quot;</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">&quot;PDB directory not given and download inactivated.&quot;</span>
+                    <span class="s2">&quot; PDBDist command can&#39;t download pdb files.&quot;</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">&#39;pdbs&#39;</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">&quot;pair_list&quot;</span><span class="p">,</span> <span class="s2">&quot;all&quot;</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">&quot;pdbdists.dat&quot;</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">&quot;_&quot;</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">&quot;Loading culled list of pdb file(s)&quot;</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">&quot;cullpdbs&quot;</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">&quot;Looking for pdb entries into </span><span class="si">%s</span><span class="s2"> folder&quot;</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">&quot;&quot;</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">&#39;w&#39;</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">&quot;pdb_id&quot;</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">&#39;</span><span class="si">%s</span><span class="s1">/*</span><span class="si">%s</span><span class="s1">*&#39;</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">&quot;Download pdb entry for </span><span class="si">%s</span><span class="s2"> pdb&quot;</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">&quot;pdb&quot;</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">&quot;</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">&quot;</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">&#39;</span><span class="si">%s</span><span class="s1">/*</span><span class="si">%s</span><span class="s1">*&#39;</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">&quot;Error during download, try to download in &quot;</span>
+                                 <span class="s2">&quot;mmCIF format&quot;</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">&quot;mmCif&quot;</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">&quot;</span><span class="si">%s</span><span class="s2">: </span><span class="si">%s</span><span class="s2">&quot;</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">&#39;</span><span class="si">%s</span><span class="s1">/*</span><span class="si">%s</span><span class="s1">*&#39;</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">&quot;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 &quot;</span>
+                          <span class="s2">&quot;(</span><span class="si">%s</span><span class="s2">)&quot;</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">&quot;chain_id&quot;</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">&quot;Writing header line&quot;</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">&quot;,&quot;</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">&quot;</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="s2">&quot;,&quot;</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">&quot;</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="s2">&quot;,&quot;</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">&quot;remove_pdbs&quot;</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">&quot;Remove </span><span class="si">%s</span><span class="s2"> pdb file&quot;</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">&quot;PDBdist finished&quot;</span><span class="p">)</span></div></div>
+</pre></div>
+
+           </div>
+           <div class="articleComments">
+            
+           </div>
+          </div>
+          <footer>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        &copy; 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 &mdash; 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> &raquo;</li>
+        
+          <li><a href="../index.html">Module code</a> &raquo;</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">&quot;&quot;&quot;</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">&quot;&quot;&quot;</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">&quot;&quot;&quot;Quality pdb tool&quot;&quot;&quot;</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">&quot;&quot;&quot;:return:&quot;&quot;&quot;</span>
+        <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Starting quality runs with </span><span class="si">%s</span><span class="s2"> file(s)&quot;</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">&quot;infiles&quot;</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">&quot;Copying file(s) to output directory&quot;</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">&quot;infiles&quot;</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">&quot;output_directory&quot;</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">&quot;output_directory&quot;</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">&quot;output_directory&quot;</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">&quot;output_directory&quot;</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">&quot;trash_directory&quot;</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">&quot;prosa&quot;</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">&quot;procheck_executable&quot;</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">&quot;whatif_executable&quot;</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">&quot;clashlist_executable&quot;</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">&quot;prosa_executable&quot;</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">&quot;prosa_executable&quot;</span><span class="p">]</span> <span class="k">else</span> <span class="s2">&quot;&quot;</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">&quot;csh_executable&quot;</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">&quot;infiles&quot;</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">&quot;infiles&quot;</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">&quot;skip_prefix&quot;</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">&quot;</span><span class="si">%s</span><span class="s2"> generated&quot;</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">&quot;output_directory&quot;</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">&quot;Removing infile(s) in output directory </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;output_directory&quot;</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">&quot;output_directory&quot;</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">&quot;infiles&quot;</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">&quot;output_directory&quot;</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>
+        &copy; 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 &mdash; 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> &raquo;</li>
+        
+          <li><a href="../index.html">Module code</a> &raquo;</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">&quot;&quot;&quot;</span>
+<span class="sd">                            Secondary structure list</span>
+<span class="sd">&quot;&quot;&quot;</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">&quot;&quot;&quot;Reader for secondary prediction structure files&quot;&quot;&quot;</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">&#39;^(?P&lt;up_index&gt;\d+)&#39;</span>
+                             <span class="sa">r</span><span class="s1">&#39;\s+(?P&lt;up_residue&gt;[AC-IK-NP-TVWYZ])&#39;</span>
+                             <span class="sa">r</span><span class="s1">&#39;\s+(?P&lt;ss_pred&gt;[HEC])&#39;</span>
+                             <span class="sa">r</span><span class="s1">&#39;\s+(?P&lt;ss_conf&gt;\d?)&#39;</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">&#39;^(?P&lt;ss_pred&gt;[HEC]+)&#39;</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">&#39;^(?P&lt;up_index&gt;\d+)\s+(?P&lt;up_residue&gt;[AC-IK-NP-TVWYZ])\s+&#39;</span>
+        <span class="sa">r</span><span class="s1">&#39;(?P&lt;ss_pred&gt;[CEH])\s+(?P&lt;ss_conf&gt;\d)\s+(?P&lt;msa_index&gt;[\d\-]+)\s+&#39;</span>
+        <span class="sa">r</span><span class="s1">&#39;(?P&lt;msa_consper&gt;[\d\-]+)\s+(?P&lt;msa_cons&gt;[*~\-])\s+&#39;</span>
+        <span class="sa">r</span><span class="s1">&#39;(?P&lt;in_const&gt;[*~\-])\s+(?P&lt;pdb_atom&gt;[\d\-]+)\s+&#39;</span>
+        <span class="sa">r</span><span class="s1">&#39;(?P&lt;pdb_chain&gt;[\-\w])\s+(?P&lt;pdb_index&gt;[\d\-]+\w?)\s+&#39;</span>
+        <span class="sa">r</span><span class="s1">&#39;(?P&lt;pdb_residue&gt;[AC-IK-NP-TVWYZ\-])\s+(?P&lt;pdb_x_pos&gt;[\d.\-]+)\s+&#39;</span>
+        <span class="sa">r</span><span class="s1">&#39;(?P&lt;pdb_y_pos&gt;[\d.\-]+)\s+(?P&lt;pdb_z_pos&gt;[\d\-.]+)&#39;</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">&quot;\s+(\d+\.\d+) \( (\d+\.\d+)\)&quot;</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">&quot;&quot;&quot;</span>
+
+<span class="sd">        :param sett:</span>
+<span class="sd">        :return:</span>
+<span class="sd">        &quot;&quot;&quot;</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">&#39;&#39;</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">&quot;&quot;&quot;:return:&quot;&quot;&quot;</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">&quot;&quot;&quot;</span>
+<span class="sd">        </span>
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+
+<span class="sd">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;Reading secondary structure file </span><span class="si">%s</span><span class="s2"> [</span><span class="si">%s</span><span class="s2">]&quot;</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">&quot;indextableplus&quot;</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">&quot;Secondary structure list:</span><span class="se">\n</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span>
+                  <span class="s2">&quot;Secondary structure dict:</span><span class="se">\n</span><span class="si">%s</span><span class="s2">&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&#39;H&#39;</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">&#39;C&#39;</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">&#39;E&#39;</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">&gt;</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">&#39;ss_pred&#39;</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">&#39;ss_pred&#39;</span><span class="p">]:</span>
+                <span class="c1"># If next ss isn&#39;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">&#39;ss_pred&#39;</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">&#39;ss_pred&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s2">&quot;&quot;</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">&#39;ss_pred&#39;</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">&#39;ss_pred&#39;</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">&#39;up_index&#39;</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">&#39;up_residue&#39;</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">&#39;ss_pred&#39;</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">&#39;ss_conf&#39;</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">&quot;pdbid&quot;</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</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 = &quot;pdbid&quot;)</span>
+
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+
+<span class="sd">        </span>
+<span class="sd">        &quot;&quot;&quot;</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">&#39;w&#39;</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">&quot;&gt; </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</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">&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&#39;H&#39;</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">&#39;C&#39;</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">&#39;E&#39;</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">&quot;up_&quot;</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"># =&gt; 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">&#39;ss_pred&#39;</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">&#39;ss_pred&#39;</span><span class="p">)</span>
+                    <span class="n">line</span> <span class="o">=</span> <span class="s2">&quot;&quot;</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&#39;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">&#39;Uneven number of matching lines (</span><span class="si">%d</span><span class="s1">) &#39;</span>
+                         <span class="s1">&#39;vs up_index (</span><span class="si">%d</span><span class="s1">) : lines </span><span class="si">%s</span><span class="s1">&#39;</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">&#39;&#39;</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</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 = &#39;&#39;)</span>
+
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+
+<span class="sd">        </span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Reading distance file </span><span class="si">{0}</span><span class="s2">&quot;</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">&#39;</span><span class="se">\t</span><span class="s1">&#39;</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">&#39;i&#39;</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">&#39;^([HE],[HE]\+\d)&#39;</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">&lt;</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">&#39;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 &#39;</span>
+                        <span class="s1">&#39;between current line and header&#39;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;Loading ss dist file&quot;</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">&quot;</span><span class="si">%s</span><span class="s2">&quot;</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">&quot;Can&#39;t load given ss dist file...&quot;</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">&quot;Loading default ss dist file&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</span>
+        <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;Adjust sslist related to sequence </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;&quot;</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">&#39;Missing residues in indextableplus file&#39;</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">&quot;Secondary structure matrix relative to given &quot;</span>
+                      <span class="s2">&quot;sequence:</span><span class="se">\n</span><span class="si">%s</span><span class="s2">&quot;</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">&quot;&quot;&quot;Amino acid sequence&quot;&quot;&quot;</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">&quot;^\s*residue\s+(?P&lt;name&gt;[A-Za-z]{1,4})&quot;</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">&quot;^\s*end&quot;</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">&quot;atom&quot;</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">&quot;atom\s+(?P&lt;name&gt;\w{1,4})\s*(?:.*?&quot;</span>
+                           <span class="sa">r</span><span class="s2">&quot;(?:(?:type=(?P&lt;type&gt;\w{1,4}))|&quot;</span>
+                           <span class="sa">r</span><span class="s2">&quot;(?:&quot;</span>
+                           <span class="sa">r</span><span class="s2">&quot;(?:charge= ?)(?P&lt;charge&gt;-?\d\.\d{1,3}))|&quot;</span>
+                           <span class="sa">r</span><span class="s2">&quot;(?:(?:mass=)(?P&lt;mass&gt;[- ]\d\.\d{1,3}))|&quot;</span>
+                           <span class="sa">r</span><span class="s2">&quot;(?:(?:excl\s*=\s*)\((?P&lt;exclude&gt;[^(]+)\)))){1,4}&quot;</span>
+                           <span class="sa">r</span><span class="s2">&quot;\s*end&quot;</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">&quot;bond&quot;</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">&quot;bond\s+(?P&lt;atm1&gt;\w{1,4})\s+(?P&lt;atm2&gt;\w{1,4})&quot;</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">&quot;improper&quot;</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">&quot;improper\s+(?P&lt;atm1&gt;\w{1,4})&quot;</span>
+                               <span class="sa">r</span><span class="s2">&quot;\s+(?P&lt;atm2&gt;\w{1,4})\s+(?P&lt;atm3&gt;\w{1,4})&quot;</span>
+                               <span class="sa">r</span><span class="s2">&quot;\s+(?P&lt;atm4&gt;\w{1,4})&quot;</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">&quot;dihedral&quot;</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">&quot;dihedral\s+(?P&lt;atm1&gt;\w{1,4})&quot;</span>
+                               <span class="sa">r</span><span class="s2">&quot;\s+(?P&lt;atm2&gt;\w{1,4})\s+(?P&lt;atm3&gt;\w{1,4})&quot;</span>
+                               <span class="sa">r</span><span class="s2">&quot;\s+(?P&lt;atm4&gt;\w{1,4})&quot;</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">&quot;dono&quot;</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">&quot;dono\s+(?P&lt;hatm&gt;\w{1,4})\s+(?:(?P&lt;heavatm&gt;\w{1,&quot;</span>
+                           <span class="sa">r</span><span class="s2">&quot;4})|(?:</span><span class="se">\&quot;</span><span class="s2">\s*</span><span class="se">\&quot;</span><span class="s2">))?&quot;</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">&quot;acce&quot;</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">&quot;^\s*acce\s+(?P&lt;accatm&gt;\w{1,4})\s+(?:(?P&lt;antatm&gt;\w{1,&quot;</span>
+                           <span class="sa">r</span><span class="s2">&quot;4})|(?:</span><span class="se">\&quot;</span><span class="s2">\s*</span><span class="se">\&quot;</span><span class="s2">))&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&#39;&#39;</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">&quot;&quot;&quot;:return:&quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</span>
+
+<span class="sd">        :param key:</span>
+<span class="sd">        :return:</span>
+<span class="sd">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</span>
+
+<span class="sd">        :return:</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="k">return</span> <span class="s2">&quot;Amino Acid sequence </span><span class="si">%s</span><span class="s2"> (</span><span class="si">%d</span><span class="s2">)&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;</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">&quot;name&quot;</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">&quot;&quot;</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">&quot;bond&quot;</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">&quot;improper&quot;</span><span class="p">,</span> <span class="s2">&quot;dihedral&quot;</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">&quot;Topology used:</span><span class="se">\n</span><span class="si">%s</span><span class="s2">&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&#39;.seq&#39;</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(&#39;&#39;.join(output))</span>
+
+        <span class="bp">self</span><span class="o">.</span><span class="n">sequence</span> <span class="o">=</span> <span class="s2">&quot;&quot;</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">&quot;Amino acid sequence:</span><span class="se">\t</span><span class="si">%s</span><span class="s2">&quot;</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">&quot;&quot;&quot;Protein class&quot;&quot;&quot;</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">&quot;&quot;&quot;</span>
+
+<span class="sd">        :param sett:</span>
+<span class="sd">        :return:</span>
+<span class="sd">        &quot;&quot;&quot;</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">&#39;&#39;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&lt;</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">&quot;Please check humanidx list from input files. They &quot;</span>
+                <span class="s2">&quot;are not the same length !&quot;</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">&quot;&quot;&quot;:return:&quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;Using secondary structure index for amino acid &quot;</span>
+                         <span class="s2">&quot;sequence&quot;</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">&#39;&#39;</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">&quot;&quot;&quot;</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 = &#39;&#39;)</span>
+
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+
+<span class="sd">        </span>
+<span class="sd">        &quot;&quot;&quot;</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">&quot;No secondary structure distance file found. Please &quot;</span>
+                      <span class="s2">&quot;check configuration file&quot;</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">&quot;Align secondary structure sequence with protein &quot;</span>
+                     <span class="s2">&quot;sequence&quot;</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">&quot;Using secondary structure index for amino acid &quot;</span>
+                     <span class="s2">&quot;sequence&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&#39;</span><span class="si">%s</span><span class="s1">&#39;</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">&quot;__main__&quot;</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">&quot;setup&quot;</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">&quot;../examples/data/BPT1_BOVIN.fa&quot;</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>
+        &copy; 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 &mdash; 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> &raquo;</li>
+        
+          <li><a href="../index.html">Module code</a> &raquo;</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">&quot;&quot;&quot;</span>
+<span class="sd">                    ARIA Evolutionary Constraints Tools</span>
+<span class="sd">&quot;&quot;&quot;</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">&quot;Agg&quot;</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">&quot;&quot;&quot;Distance/contact matrix&quot;&quot;&quot;</span>
+
+    <span class="n">mtype_choices</span> <span class="o">=</span> <span class="p">{</span><span class="s1">&#39;contact&#39;</span><span class="p">:</span> <span class="nb">bool</span><span class="p">,</span> <span class="s1">&#39;distance&#39;</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="s2">&quot;score&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&#39;distance&#39;</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">&quot;&quot;</span><span class="p">,</span> <span class="n">path</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;score&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</span>
+        <span class="c1"># Remove duplicate in sort_list</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+
+<span class="sd">        :param human_idx:</span>
+<span class="sd">        :return:</span>
+<span class="sd">        &quot;&quot;&quot;</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">&quot;sort_list&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;Map type should be in list </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;&quot;&quot;Low complexcity dataframe&quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</span>
+        <span class="c1"># Reset values at positions in rm_list</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+
+<span class="sd">        :param rm_list:</span>
+<span class="sd">        &quot;&quot;&quot;</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">&#39;sort_list&#39;</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">&quot;&quot;&quot;Return panda series related to lower triangle values&quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;Error when retrieving top contact map. The type of &quot;</span>
+                     <span class="s2">&quot;the given map is not a contact type!&quot;</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">&quot;Given scoremap has not the same dimension !&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;def&quot;</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">&quot;def&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</span>
+<span class="sd">    Abstract class for protein contact map objects</span>
+<span class="sd">    &quot;&quot;&quot;</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">&quot;[CNOS][ABGDEZH][0-9]?&quot;</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">&quot;^((?!cns|dyana).*)$&quot;</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">&#39;euclidean&#39;</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">&quot;index&quot;</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">&quot;columns&quot;</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">&quot;index&quot;</span><span class="p">],</span> <span class="n">kwargs</span><span class="p">[</span><span class="s2">&quot;columns&quot;</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">&quot;flaglist&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;Lower index level if multi index&quot;&quot;&quot;</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">&#39;-&#39;</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">&#39;-&#39;</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">&#39;__init__&#39;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;Flush contact map plot&quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;Build maplot&quot;</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">&quot;grey&quot;</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">&#39;&#39;</span><span class="p">,</span> <span class="n">outprefix</span><span class="o">=</span><span class="s2">&quot;protein&quot;</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">&quot;pdf&quot;</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">&quot;&quot;&quot;</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 = &#39;&#39;)</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 = &quot;protein&quot;)</span>
+<span class="sd">        plot_ext :</span>
+<span class="sd">            (Default value = &quot;pdf&quot;)</span>
+
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+
+<span class="sd">        </span>
+<span class="sd">        &quot;&quot;&quot;</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">&quot;</span><span class="si">%s</span><span class="s2">.maplot.</span><span class="si">%s</span><span class="s2">&quot;</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">&quot;Generate contact map plot (</span><span class="si">%s</span><span class="s2">)&quot;</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">&quot;</span><span class="si">%s</span><span class="s2"> contacts map&quot;</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">&#39;all&#39;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;shape&quot;</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">&quot;Cant&#39;t compare </span><span class="si">%s</span><span class="s2"> map with </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;hls&quot;</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">&quot;Contact list: </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;Xind: </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;Yind: </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;red&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&#39;w&#39;</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">&quot;&quot;&quot;</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">&quot;&quot;&quot;</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">&quot;</span><span class="se">\n</span><span class="s2">&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&#39;accuracy&#39;</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">&#39;precision&#39;</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">&#39;recall&#39;</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">&#39;mcc&#39;</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">&#39;f1s&#39;</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">&#39;f2s&#39;</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">&#39;f05s&#39;</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">&#39;hamm&#39;</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">&#39;hin&#39;</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">&#39;roc_auc&#39;</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">&#39;aver_prec&#39;</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">&#39;allfpr&#39;</span><span class="p">],</span> <span class="n">metrics</span><span class="p">[</span><span class="s1">&#39;alltpr&#39;</span><span class="p">],</span> <span class="n">metrics</span><span class="p">[</span><span class="s1">&#39;rocthres&#39;</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">&#39;allprec&#39;</span><span class="p">],</span> <span class="n">metrics</span><span class="p">[</span><span class="s1">&#39;allrec&#39;</span><span class="p">],</span> <span class="n">metrics</span><span class="p">[</span><span class="s1">&#39;prthres&#39;</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">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">),</span> <span class="n">plotdir</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">outprefix</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span>
+                      <span class="n">plot_ext</span><span class="o">=</span><span class="s2">&quot;pdf&quot;</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</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 = (&#39;&#39;)</span>
+<span class="sd">        &#39;&#39; :</span>
+<span class="sd">            </span>
+
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+
+<span class="sd">        </span>
+<span class="sd">        &quot;&quot;&quot;</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">&quot;maplot&quot;</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">&quot;</span><span class="si">%s</span><span class="s2">.roc.csv&quot;</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">&quot;Generate roc file (</span><span class="si">%s</span><span class="s2">)&quot;</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">&quot;w&quot;</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">&quot;TPR,FPR,Treshold</span><span class="se">\n</span><span class="s2">&quot;</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">&#39;alltpr&#39;</span><span class="p">],</span> <span class="n">metrics</span><span class="p">[</span><span class="s1">&#39;allfpr&#39;</span><span class="p">],</span>
+                                 <span class="n">metrics</span><span class="p">[</span><span class="s1">&#39;rocthres&#39;</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">&quot;</span><span class="si">%s</span><span class="s2">.roc.</span><span class="si">%s</span><span class="s2">&quot;</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">&quot;Generate roc plot (</span><span class="si">%s</span><span class="s2">)&quot;</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">&#39;allfpr&#39;</span><span class="p">],</span> <span class="n">metrics</span><span class="p">[</span><span class="s1">&#39;alltpr&#39;</span><span class="p">],</span>
+                 <span class="n">label</span><span class="o">=</span><span class="s1">&#39;ROC curve (area = </span><span class="si">%0.2f</span><span class="s1">)&#39;</span> <span class="o">%</span> <span class="n">metrics</span><span class="p">[</span><span class="s1">&#39;roc_auc&#39;</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">&#39;k--&#39;</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">&#39;False Positive Rate&#39;</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">&#39;True Positive Rate&#39;</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">&#39;Receiver operating characteristic </span><span class="si">%s</span><span class="s1"> vs. </span><span class="si">%s</span><span class="s1">&#39;</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">&quot;lower right&quot;</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">&quot;</span><span class="si">%s</span><span class="s2">.roc.csv&quot;</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">&quot;Generate precall file (</span><span class="si">%s</span><span class="s2">)&quot;</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">&quot;w&quot;</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">&quot;Precision,Recall,Treshold</span><span class="se">\n</span><span class="s2">&quot;</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">&#39;allprec&#39;</span><span class="p">],</span> <span class="n">metrics</span><span class="p">[</span><span class="s1">&#39;allrec&#39;</span><span class="p">],</span>
+                                 <span class="n">metrics</span><span class="p">[</span><span class="s1">&#39;prthres&#39;</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">&quot;</span><span class="si">%s</span><span class="s2">.precall.</span><span class="si">%s</span><span class="s2">&quot;</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">&quot;Generate precall plot (</span><span class="si">%s</span><span class="s2">)&quot;</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">&#39;allrec&#39;</span><span class="p">],</span> <span class="n">metrics</span><span class="p">[</span><span class="s1">&#39;allprec&#39;</span><span class="p">],</span>
+                 <span class="n">label</span><span class="o">=</span><span class="s1">&#39;Precision-Recall curve&#39;</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">&#39;Recall&#39;</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">&#39;Precision&#39;</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">&#39;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">&#39;</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">&#39;aver_prec&#39;</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">&quot;lower left&quot;</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">&quot;&quot;</span><span class="p">,</span> <span class="n">outdir</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="n">plotdir</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">,</span>
+               <span class="c1"># plot_ext=&quot;pdf&quot;, plotag=True, n_factors=(0.5, 1.0, 1.5)):</span>
+               <span class="n">plot_ext</span><span class="o">=</span><span class="s2">&quot;pdf&quot;</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">&quot;&quot;&quot;</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 = &quot;&quot;)</span>
+<span class="sd">        outdir :</span>
+<span class="sd">            (Default value = &quot;&quot;)</span>
+<span class="sd">        plotdir :</span>
+<span class="sd">            (Default value = &quot;&quot;)</span>
+<span class="sd">        plot_ext :</span>
+<span class="sd">            (Default value = &quot;pdf&quot;)</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">        &quot;&quot;&quot;</span>
+        <span class="n">filename</span> <span class="o">=</span> <span class="s2">&quot;.&quot;</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">&quot;mapreport&quot;</span><span class="p">))</span> <span class="k">if</span> <span class="n">outprefix</span> <span class="k">else</span> \
+            <span class="s2">&quot;mapreport&quot;</span>
+        <span class="n">reportpath</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">&quot;</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">&quot;Generate map report file (</span><span class="si">%s</span><span class="s2">)&quot;</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">&quot;</span><span class="se">\n</span><span class="s2">## &quot;</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">&quot;%A </span><span class="si">%d</span><span class="s2">. %B %Y&quot;</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">&quot;&quot;</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">&quot;&quot;&quot;</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 = &quot;&quot;)</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">        &quot;&quot;&quot;</span>
+        <span class="c1"># CSV file giving TP/FP contacts</span>
+        <span class="n">outpath</span> <span class="o">=</span> <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">.contactcmp.csv&quot;</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">&quot;maplot&quot;</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">&quot;Generate stat file (</span><span class="si">%s</span><span class="s2">)&quot;</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">&#39;w&#39;</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">&quot;&quot;</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">&quot;,dmin&quot;</span>
+            <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;#resid1,resid2,res1,res2,TP/FP</span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</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">&quot;,&quot;</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">&quot;&quot;</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">&quot;TP&quot;</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">&quot;FP&quot;</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">&quot;FN&quot;</span>
+                <span class="k">else</span><span class="p">:</span>
+                    <span class="n">eq</span> <span class="o">=</span> <span class="s2">&quot;TN&quot;</span>
+                <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;</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">&quot;</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">&quot;&quot;</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">&quot;&quot;</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">&quot;&quot;&quot;</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 = &quot;&quot;)</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">        &quot;&quot;&quot;</span>
+        <span class="n">prefix</span> <span class="o">=</span> <span class="n">prefix</span> <span class="o">+</span> <span class="s2">&quot;_&quot;</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">&quot;</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s%s</span><span class="s2">.contact.txt&quot;</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">&quot;.&quot;</span><span class="p">,</span> <span class="s2">&quot;_&quot;</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">&quot;Generate contact file (</span><span class="si">%s</span><span class="s2">)&quot;</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">&#39;w&#39;</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">&quot;</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">&quot;</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">&quot;</span><span class="si">%d</span><span class="s2"> </span><span class="si">%d</span><span class="se">\n</span><span class="s2">&quot;</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">&quot;&quot;&quot;</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">    &quot;&quot;&quot;</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">&#39;AMINO_ACID&#39;</span><span class="p">][</span>
+                <span class="s1">&#39;iupac&#39;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;</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">&quot;-&quot;</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">&quot;&quot;</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">&#39;AMINO_ACID&#39;</span><span class="p">][</span><span class="s1">&#39;iupac&#39;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</span>
+        <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;Indexing ResAtm - ResAtm dataframe&quot;</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">&#39;AMINO_ACID&#39;</span><span class="p">][</span>
+            <span class="s1">&#39;iupac&#39;</span><span class="p">]</span>
+        <span class="c1"># Amino acid conversion table 1L -&gt; 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">&quot;</span><span class="si">%s</span><span class="s2">&quot;</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">&quot;</span><span class="si">%03d</span><span class="s2">-</span><span class="si">%s</span><span class="s2">&quot;</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">&quot;</span><span class="si">%03d</span><span class="s2">-</span><span class="si">%s</span><span class="s2">&quot;</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&#39;atomes lourd pour chaque residu -&gt; Deplacer au niveau de l&#39;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">&quot;Index lists aren&#39;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">&quot;</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">&quot;residuex&quot;</span><span class="p">,</span> <span class="s2">&quot;atomx&quot;</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">&quot;residuey&quot;</span><span class="p">,</span> <span class="s2">&quot;atomy&quot;</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">&quot;Index:</span><span class="se">\n</span><span class="si">%s</span><span class="s2">&quot;</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">&quot;&quot;&quot;:return:&quot;&quot;&quot;</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&#39;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">&quot;min&quot;</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</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 = &quot;min&quot;)</span>
+
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+
+<span class="sd">        </span>
+<span class="sd">        &quot;&quot;&quot;</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">&quot;mean&quot;</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">&quot;min&quot;</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">&quot;&quot;&quot;</span>
+<span class="sd">        Contact map generator from all atoms distance map. There&#39;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">        &quot;&quot;&quot;</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">&quot;Generate contact map using contact definition </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;contact&quot;</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">&quot;default_cutoff&quot;</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">&quot;default_cutoff&quot;</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">&lt;</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">&quot;Using default cutoff&quot;</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">&lt;</span> <span class="n">contactdef</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;default_cutoff&quot;</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">&gt;</span> <span class="mi">1</span><span class="p">:</span>
+            <span class="c1"># treshconv = lambda x: x &lt; contactdef.get(&quot;default_cutoff&quot;)</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">&quot;default_cutoff&quot;</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">&quot;all&quot;</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">&lt;</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">&quot;_&quot;</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">&quot;Filtering values in matrix related to </span><span class="si">%s</span><span class="s2"> (</span><span class="si">%s</span><span class="s2">)&quot;</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">&quot;SC&quot;</span><span class="p">,</span> <span class="s2">&quot;SC&quot;</span><span class="p">),</span> <span class="p">(</span><span class="s2">&quot;sc&quot;</span><span class="p">,</span> <span class="s2">&quot;sc&quot;</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">&quot;Pair </span><span class="si">%s</span><span class="s2"> doesn&#39;t exist ...&quot;</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">&quot;Apply treshold for </span><span class="si">%s</span><span class="s2">&quot;</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">&lt;</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">&quot;Missing values in contact definition section. Add &quot;</span>
+                      <span class="s2">&quot;at least a default_cutoff value.&quot;</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">&quot;Contact map</span><span class="se">\n</span><span class="si">%s</span><span class="s2">&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;Res - res distance/contact matrix&quot;&quot;&quot;</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">&#39;AMINO_ACID&#39;</span><span class="p">][</span>
+                <span class="s1">&#39;iupac&#39;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</span>
+        <span class="c1"># return &quot;&quot;.join(AminoAcid.AminoAcid(aa.split(&quot;-&quot;)[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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</span>
+        <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;Indexing Res - Res dataframe&quot;</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">&quot;</span><span class="si">%03d</span><span class="s2">-</span><span class="si">%s</span><span class="s2">&quot;</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">&quot;</span><span class="si">%03d</span><span class="s2">-</span><span class="si">%s</span><span class="s2">&quot;</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">&quot;residuex&quot;</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">&quot;residuey&quot;</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">&quot;&quot;&quot;:return:&quot;&quot;&quot;</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&#39;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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;contact&quot;</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">&quot;&quot;&quot;</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">            &quot;&quot;&quot;</span>
+            <span class="k">return</span> <span class="n">x</span> <span class="o">&lt;=</span> <span class="n">treshold</span>
+
+        <span class="c1"># Applique treshold sur la matrice ssi c&#39;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">&quot;default_cutoff&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;Amino Acid Distance Matrix&quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</span>
+<span class="sd">        </span>
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+
+<span class="sd">        &quot;&quot;&quot;</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 (&quot;index&quot;, &quot;columns&quot;) not in kwargs:</span>
+        <span class="c1">#     idx, col = self.create_index()</span>
+        <span class="c1">#     kwargs[&quot;index&quot;] = idx</span>
+        <span class="c1">#     kwargs[&quot;columns&quot;] = 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">&quot;&quot;&quot;Reduce level of the contactmap&quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</span>
+        <span class="k">return</span> <span class="s1">&#39;&#39;</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">&#39;AMINO_ACID&#39;</span><span class="p">][</span><span class="s1">&#39;iupac&#39;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</span>
+<span class="sd">        </span>
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+
+<span class="sd">        &quot;&quot;&quot;</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">&quot;aax&quot;</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">&quot;aay&quot;</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">&quot;&quot;&quot;</span>
+<span class="sd">    Amino acid map with atom levels</span>
+<span class="sd">    &quot;&quot;&quot;</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">&quot;&quot;&quot;</span>
+<span class="sd">        </span>
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+
+<span class="sd">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;atom_types&quot;</span><span class="p">,</span> <span class="s2">&quot;min&quot;</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">&quot;min&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">        Update Aa index with atoms</span>
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+
+<span class="sd">        &quot;&quot;&quot;</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">&#39;AMINO_ACID&#39;</span><span class="p">][</span>
+            <span class="s1">&#39;iupac&#39;</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">&quot;</span><span class="si">%s</span><span class="s2">&quot;</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">&#39;CA&#39;</span><span class="p">,</span> <span class="s1">&#39;CB&#39;</span><span class="p">,</span> <span class="s1">&#39;SC&#39;</span><span class="p">)]</span> \
+            <span class="k">if</span> <span class="n">atom_types</span> <span class="o">==</span> <span class="s2">&quot;min&quot;</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">&quot;heavy&quot;</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">&#39;AminoAcid&#39;</span><span class="p">,</span> <span class="s1">&#39;Atom&#39;</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">&#39;AminoAcid&#39;</span><span class="p">,</span> <span class="s1">&#39;Atom&#39;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</span>
+<span class="sd">    Amino acid map with atom and secondary structure levels</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="n">ss_types</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;H&quot;</span><span class="p">,</span> <span class="s2">&quot;E&quot;</span><span class="p">,</span> <span class="s2">&quot;X&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</span>
+<span class="sd">        </span>
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+
+<span class="sd">        &quot;&quot;&quot;</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">&quot;atom_types&quot;</span><span class="p">,</span> <span class="s2">&quot;min&quot;</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">&quot;min&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&#39;AMINO_ACID&#39;</span><span class="p">][</span>
+            <span class="s1">&#39;iupac&#39;</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">&#39;CA&#39;</span><span class="p">,</span> <span class="s1">&#39;CB&#39;</span><span class="p">,</span> <span class="s1">&#39;SC&#39;</span><span class="p">)</span> <span class="k">if</span> <span class="n">atom_types</span> <span class="o">==</span> <span class="s2">&quot;min&quot;</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">&quot;heavy&quot;</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">&#39;SecStruct&#39;</span><span class="p">,</span> <span class="s1">&#39;AminoAcid&#39;</span><span class="p">,</span> <span class="s1">&#39;Atom&#39;</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">&#39;SecStruct&#39;</span><span class="p">,</span> <span class="s1">&#39;AminoAcid&#39;</span><span class="p">,</span> <span class="s1">&#39;Atom&#39;</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">&quot;min&quot;</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+
+
+<span class="sd">        Parameters</span>
+<span class="sd">        ----------</span>
+<span class="sd">        groupby :</span>
+<span class="sd">            return: (Default value = &quot;min&quot;)</span>
+
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+
+
+<span class="sd">        &quot;&quot;&quot;</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">&#39;SecStruct&#39;</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">&quot;mean&quot;</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">&#39;SecStruct&#39;</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">&quot;min&quot;</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">&#39;SecStruct&#39;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;Atom Distance Matrix&quot;&quot;&quot;</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">&quot;&quot;&quot;Reduce level of the contactmap&quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;:return:&quot;&quot;&quot;</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">&quot;&quot;&quot;Group all protein maps&quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;contactdef&quot;</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">&quot;scsc_min_file&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;:return:&quot;&quot;&quot;</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">&quot;groupby_method&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">    &quot;&quot;&quot;</span>
+    <span class="n">filter_types</span> <span class="o">=</span> <span class="p">(</span><span class="s2">&quot;pos&quot;</span><span class="p">,</span> <span class="s2">&quot;cons&quot;</span><span class="p">,</span> <span class="s2">&quot;ssclash&quot;</span><span class="p">,</span> <span class="s2">&quot;cys&quot;</span><span class="p">)</span>
+    <span class="n">clash_dict</span> <span class="o">=</span> <span class="p">{</span>
+        <span class="s2">&quot;pos&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;clash&quot;</span><span class="p">:</span> <span class="s2">&quot;physical proximity&quot;</span><span class="p">,</span>
+            <span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="s2">&quot;sequence position&quot;</span><span class="p">},</span>
+        <span class="s2">&quot;cons&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;clash&quot;</span><span class="p">:</span> <span class="s2">&quot;888&quot;</span><span class="p">,</span>
+            <span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="s2">&quot;high conservation&quot;</span><span class="p">},</span>
+        <span class="s2">&quot;ssclash&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;clash&quot;</span><span class="p">:</span> <span class="s2">&quot;999&quot;</span><span class="p">,</span>
+            <span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="s2">&quot;secondary structure prediction conflict&quot;</span><span class="p">},</span>
+        <span class="s2">&quot;cys&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;clash&quot;</span><span class="p">:</span> <span class="s2">&quot;222&quot;</span><span class="p">,</span>
+            <span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="s2">&quot;disulfide bond unicity&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</span>
+        <span class="c1"># TODO: build ROC curve with number of top contacts as the parameter</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+
+<span class="sd">        :param mapdict:</span>
+<span class="sd">        :return:</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;...Network deconvolution filter (alpha=</span><span class="si">%.2f</span><span class="s2">, beta=</span><span class="si">%.2f</span><span class="s2">)&quot;</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">&quot;nd_beta&quot;</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">&quot;nd_alpha&quot;</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">&quot;scoremap&quot;</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">&quot;scoremap&quot;</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">&quot;nd_beta&quot;</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">&quot;nd_alpha&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;clash_list&quot;</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">&quot;...Position filter&quot;</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">&quot;maplot&quot;</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">&lt;=</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="s1">&#39;position_treshold&#39;</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">&#39;clash&#39;</span><span class="p">:</span> <span class="n">close_list</span><span class="p">,</span> <span class="s1">&#39;desc&#39;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</span>
+        <span class="c1"># Liste les contacts aves des residus fortement conserves</span>
+        <span class="sd">&quot;&quot;&quot;</span>
+
+<span class="sd">        :param mapdict:</span>
+<span class="sd">        :param kwargs:</span>
+<span class="sd">        :return:</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;...Conservation filter&quot;</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">&quot;sec_struct&quot;</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">&quot;clash_list&quot;</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">&quot;maplot&quot;</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">&quot;No conservation information. Can&#39;t use related filter&quot;</span><span class="p">)</span>
+            <span class="k">return</span> <span class="p">{</span><span class="s1">&#39;clash&#39;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="s1">&#39;desc&#39;</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">&quot;indextableplus&quot;</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">&quot;Conservation filter only works with indextableplus &quot;</span>
+                     <span class="s2">&quot;files !&quot;</span><span class="p">)</span>
+            <span class="k">return</span> <span class="p">{</span><span class="s1">&#39;clash&#39;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="s1">&#39;desc&#39;</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">&quot;-&quot;</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">&gt;</span> <span class="bp">self</span><span class="o">.</span><span class="n">settings</span><span class="p">[</span><span class="s2">&quot;conservation_treshold&quot;</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">&#39;C&#39;</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">&quot;Highly conserved residue list: </span><span class="si">%s</span><span class="s2">&quot;</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">&#39;clash&#39;</span><span class="p">:</span> <span class="n">cons_pair</span><span class="p">,</span> <span class="s1">&#39;desc&#39;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</span>
+
+<span class="sd">        :param mapdict:</span>
+<span class="sd">        :param kwargs:</span>
+<span class="sd">        :return:</span>
+<span class="sd">        &quot;&quot;&quot;</span>
+        <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;...Disulfure bridge unicity filter&quot;</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">&quot;clash_list&quot;</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">&quot;scoremap&quot;</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">&quot;scoremap&quot;</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">&#39;CYS&#39;</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">&#39;clash&#39;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="s1">&#39;desc&#39;</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">&#39;Checking </span><span class="si">%s</span><span class="s1"> </span><span class="si">%s</span><span class="s1">&#39;</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">&quot;Ss bridge </span><span class="si">%s</span><span class="s2"> have at least one cys in &quot;</span>
+                                      <span class="s2">&quot;common with previous ss filtered (</span><span class="si">%s</span><span class="s2">). &quot;</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">&gt;</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">&quot;</span><span class="si">%s</span><span class="s2"> has better score than </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;Added </span><span class="si">%s</span><span class="s2"> to clashlist </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;Added </span><span class="si">%s</span><span class="s2"> to ss clashlist </span><span class="si">%s</span><span class="s2">&quot;</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">&#39;Adding bridge </span><span class="si">%s</span><span class="s1"> to ss filtered list&#39;</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">&#39;clash&#39;</span><span class="p">:</span> <span class="n">clashdisbridge_list</span><span class="p">,</span> <span class="s1">&#39;desc&#39;</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">&#39;clash&#39;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="s1">&#39;desc&#39;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">            &quot;&quot;&quot;</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">&quot;...Secondary structure clash filter&quot;</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">&quot;sec_struct&quot;</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">&quot;clash_list&quot;</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">&quot;No secondary structure information. Can&#39;t use secondary&quot;</span>
+                        <span class="s2">&quot; structure filter&quot;</span><span class="p">)</span>
+            <span class="k">return</span> <span class="p">{</span><span class="s1">&#39;clash&#39;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="s1">&#39;desc&#39;</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">&quot;maplot&quot;</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">&quot;H&quot;</span><span class="p">,</span> <span class="s2">&quot;H&quot;</span><span class="p">),</span> <span class="p">(</span><span class="s2">&quot;E&quot;</span><span class="p">,</span> <span class="s2">&quot;E&quot;</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">&quot;</span><span class="si">%s</span><span class="s2">,</span><span class="si">%s</span><span class="s2">&quot;</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">&quot;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">)&quot;</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">&quot;H&quot;</span><span class="p">,</span> <span class="s2">&quot;E&quot;</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">&quot;</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">&quot;</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">&quot;H&quot;</span><span class="p">,</span> <span class="s2">&quot;E&quot;</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">&quot;</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">&quot;</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">&quot;H&quot;</span><span class="p">,</span> <span class="s2">&quot;E&quot;</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">&quot;</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">&quot;</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">&quot;H&quot;</span><span class="p">,</span> <span class="s2">&quot;E&quot;</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">&quot;</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">&quot;</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">&quot;H&quot;</span><span class="p">,</span> <span class="s2">&quot;E&quot;</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">&quot;</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">&quot;</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">&quot;H&quot;</span><span class="p">,</span> <span class="s2">&quot;E&quot;</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">&quot;</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">&quot;</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">&quot;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">)&quot;</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">&quot;H-2,H&quot;</span><span class="p">,</span> <span class="s2">&quot;H+2,H&quot;</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">&quot;Found (H-2, H) for contact </span><span class="si">%s</span><span class="s2"> clash &quot;</span>
+                                      <span class="s2">&quot;but contact with fifth residue is &quot;</span>
+                                      <span class="s2">&quot;actually allowed&quot;</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">&quot;H-3,H&quot;</span><span class="p">,</span> <span class="s2">&quot;H+3,H&quot;</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">&lt;</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">&quot;Found (H-3, H) for contact </span><span class="si">%s</span><span class="s2"> clash &quot;</span>
+                                      <span class="s2">&quot;but contact between 3rd and 10th &quot;</span>
+                                      <span class="s2">&quot;residues are actually allowed&quot;</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">&quot;H-4,H&quot;</span><span class="p">,</span> <span class="s2">&quot;H+4,H&quot;</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">&quot;H-4,H are actually allowed&quot;</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">&quot;H-2,H+2&quot;</span><span class="p">,</span> <span class="s2">&quot;H+2,H-2&quot;</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">&quot;H-2,H+2 are actually allowed&quot;</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">&quot;H-3,H+3&quot;</span><span class="p">,</span> <span class="s2">&quot;H+3,H-3&quot;</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">&quot;H-3,H+3 are actually allowed&quot;</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">&quot;H-4,H+4&quot;</span><span class="p">,</span> <span class="s2">&quot;H+4,H-4&quot;</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">&quot;H-4,H+4 are actually allowed&quot;</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">&quot;E-2,E+2&quot;</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">&quot;E&quot;</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">&lt;=</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">&quot;Found (E-2, E+2) for contact &quot;</span>
+                                          <span class="s2">&quot;</span><span class="si">%s</span><span class="s2"> clash but strand &quot;</span>
+                                          <span class="s2">&quot;is &lt; 5 residues&quot;</span><span class="p">,</span> <span class="n">outcontact</span><span class="p">)</span>
+                                <span class="c1"># Allow contact if strand &lt; 5 residues (gap &lt;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">&quot;E-3,E+3&quot;</span><span class="p">,</span> <span class="s2">&quot;E+3,E-3&quot;</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">&quot;E-3,E+3 are actually allowed&quot;</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">&quot;E-4,E+4&quot;</span><span class="p">,</span> <span class="s2">&quot;E+4,E-4&quot;</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">&quot;E-4,E+4 are actually allowed&quot;</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">&quot;E-4,E&quot;</span><span class="p">,</span> <span class="s2">&quot;E+4,E&quot;</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">&lt;</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">&quot;Found (E-4, E) for contact </span><span class="si">%s</span><span class="s2"> clash &quot;</span>
+                                      <span class="s2">&quot;but contacts below 4th residue are &quot;</span>
+                                      <span class="s2">&quot;actually allowed&quot;</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">&quot;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">)&quot;</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">&#39;clash&#39;</span><span class="p">:</span> <span class="n">ssclash_pair</span><span class="p">,</span> <span class="s1">&#39;desc&#39;</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">&quot;&quot;</span><span class="p">,</span> <span class="n">outdir</span><span class="o">=</span><span class="s2">&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;contactfilter&quot;</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">&quot;net_deconv&quot;</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">&quot;scoremap&quot;</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">&quot;all&quot;</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">&quot;none&quot;</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">&quot;Filtering steps removed&quot;</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">&quot;No filtering steps. Will only use default filter (closed &quot;</span>
+                     <span class="s2">&quot;contact filter)&quot;</span><span class="p">)</span>
+            <span class="n">mapfilters</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;pos&quot;</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">&quot;pos&quot;</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">&quot;pos&quot;</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">&quot;Filtering </span><span class="si">%s</span><span class="s2"> contact map&quot;</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">&quot;clash_list&quot;</span><span class="p">:</span> <span class="n">clash_list</span><span class="p">,</span>
+                  <span class="s2">&quot;sec_struct&quot;</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">&quot;</span><span class="si">%s</span><span class="s2">_filter&quot;</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">&quot;clash&quot;</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">&quot;clash&quot;</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">&quot;clash&quot;</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">&quot;Removed </span><span class="si">%d</span><span class="s2"> contacts.&quot;</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">&quot;clash&quot;</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">&quot;:</span><span class="se">\n</span><span class="si">%s</span><span class="s2">&quot;</span><span class="p">,</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</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">&#39; &#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span>
+                        <span class="p">[</span><span class="s2">&quot;(</span><span class="si">%2d</span><span class="s2">, </span><span class="si">%2d</span><span class="s2">)&quot;</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">&quot;clash&quot;</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">&quot;desc&quot;</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">&quot;desc&quot;</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">&#39;.&#39;</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">&quot;Setting contact number with treshold </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;n_factor&quot;</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">&quot;n_factor&quot;</span><span class="p">)</span> <span class="o">==</span> <span class="s2">&quot;all&quot;</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">&quot;Factor set to all. All the contacts will be used !&quot;</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">&quot;maplot&quot;</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">&quot;n_factor&quot;</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">&quot;%&quot;</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">&quot;n_factor&quot;</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">&quot;([0-9]+\.?[0-9]*)%&quot;</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">&quot;n_factor&quot;</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">&quot;maplot&quot;</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">&quot;Factor set as </span><span class="si">%.2f</span><span class="s2"> percentage of all the contacts &quot;</span>
+                        <span class="s2">&quot;(random selection).&quot;</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">&quot;maplot&quot;</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">&quot;n_factor&quot;</span><span class="p">)))</span>
+            <span class="c1"># Number of selected contact</span>
+            <span class="c1"># If there isn&#39;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">&lt;</span> <span class="nb">len</span><span class="p">(</span><span class="n">mapdict</span><span class="p">[</span><span class="s2">&quot;maplot&quot;</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">&quot;maplot&quot;</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">&quot;nb_c&quot;</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">&quot;Update </span><span class="si">%s</span><span class="s2"> maplot&quot;</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">&quot;maplot&quot;</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">&quot;scoremap&quot;</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">&quot;Update </span><span class="si">%s</span><span class="s2"> scoremap&quot;</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">&quot;scoremap&quot;</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">&quot;Select top </span><span class="si">%d</span><span class="s2"> contacts according to scoremap&quot;</span><span class="p">,</span> <span class="n">nb_c</span><span class="p">)</span>
+            <span class="c1"># TODO: deplacer cette partie dans l&#39;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">&quot;maplot&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">mapdict</span><span class="p">[</span><span class="s2">&quot;maplot&quot;</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">&quot;scoremap&quot;</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">&quot;distmap&quot;</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">&quot;Update </span><span class="si">%s</span><span class="s2"> distmap&quot;</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">&quot;distmap&quot;</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">&quot;&quot;</span><span class="p">,</span>
+                      <span class="n">outprefix</span><span class="o">=</span><span class="s2">&quot;protein&quot;</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">&quot;&quot;&quot;</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 = &quot;&quot;)</span>
+<span class="sd">        outprefix :</span>
+<span class="sd">            (Default value = &quot;protein&quot;)</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">        &quot;&quot;&quot;</span>
+        <span class="c1"># TODO: utiliser self.clash_dict au lieu de meta_clash</span>
+        <span class="sd">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</span>
+        <span class="n">meta_clash</span> <span class="o">=</span> <span class="p">{</span>
+            <span class="s2">&quot;cons&quot;</span><span class="p">:</span> <span class="p">{</span>
+                <span class="s2">&quot;flag&quot;</span><span class="p">:</span> <span class="mi">888</span><span class="p">,</span> <span class="s2">&quot;msg&quot;</span><span class="p">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="s2">&quot;warn&quot;</span><span class="p">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
+                <span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="s2">&quot;high conservation&quot;</span><span class="p">},</span>
+            <span class="s2">&quot;cys&quot;</span><span class="p">:</span> <span class="p">{</span>
+                <span class="s2">&quot;flag&quot;</span><span class="p">:</span> <span class="mi">222</span><span class="p">,</span> <span class="s2">&quot;msg&quot;</span><span class="p">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="s2">&quot;warn&quot;</span><span class="p">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
+                <span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="s2">&quot;disulfide bonds unicity&quot;</span><span class="p">},</span>
+            <span class="s2">&quot;ssclash&quot;</span><span class="p">:</span> <span class="p">{</span><span class="s2">&quot;flag&quot;</span><span class="p">:</span> <span class="mi">999</span><span class="p">,</span> <span class="s2">&quot;msg&quot;</span><span class="p">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="s2">&quot;warn&quot;</span><span class="p">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
+                        <span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="s2">&quot;secondary structure prediction conflict&quot;</span><span class="p">},</span>
+            <span class="s2">&quot;pos&quot;</span><span class="p">:</span> <span class="p">{</span>
+                <span class="s2">&quot;flag&quot;</span><span class="p">:</span> <span class="s2">&quot;physical proximity&quot;</span><span class="p">,</span> <span class="s2">&quot;msg&quot;</span><span class="p">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="s2">&quot;warn&quot;</span><span class="p">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
+                <span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="s2">&quot;sequence position&quot;</span><span class="p">},</span>
+            <span class="s2">&quot;nd&quot;</span><span class="p">:</span> <span class="p">{</span>
+                <span class="s2">&quot;flag&quot;</span><span class="p">:</span> <span class="s2">&quot;deconvol&quot;</span><span class="p">,</span> <span class="s2">&quot;msg&quot;</span><span class="p">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="s2">&quot;warn&quot;</span><span class="p">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span>
+                <span class="s2">&quot;desc&quot;</span><span class="p">:</span> <span class="s2">&quot;network deconvolution&quot;</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">&quot;0&quot;</span>
+            <span class="n">clash_t</span> <span class="o">=</span> <span class="s2">&quot;&quot;</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">&quot;flag&quot;</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">&quot;msg&quot;</span><span class="p">]</span> <span class="o">+=</span> <span class="s2">&quot;&quot;&quot;</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">&quot;&quot;&quot;</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">&#39;&#39;</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">&quot;0&quot;</span><span class="p">:</span>
+                    <span class="n">op</span> <span class="o">=</span> <span class="s2">&quot;removed&quot;</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">&quot;added&quot;</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">&quot;warn&quot;</span><span class="p">]</span> <span class="o">+=</span> <span class="s2">&quot;</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 &quot;</span> \
+                                               <span class="s2">&quot;</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">)&quot;</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">&quot;</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">.filter.out&quot;</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">&#39;w&#39;</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">&#39;Contacts filter&#39;</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">&quot;nd&quot;</span><span class="p">,</span> <span class="s2">&quot;pos&quot;</span><span class="p">,</span> <span class="s2">&quot;cons&quot;</span><span class="p">,</span> <span class="s2">&quot;ssclash&quot;</span><span class="p">,</span> <span class="s2">&quot;cys&quot;</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">&#39;&#39;&#39;</span>
+
+<span class="si">{filter_desc}</span><span class="s1"></span>
+<span class="si">{hd}</span><span class="s1"></span>
+<span class="s1">&#39;&#39;&#39;</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">&quot;desc&quot;</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">&quot;=&quot;</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">&quot;desc&quot;</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">&quot;warn&quot;</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">&quot;warn&quot;</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">&quot;msg&quot;</span><span class="p">])</span></div></div>
+</pre></div>
+
+           </div>
+           <div class="articleComments">
+            
+           </div>
+          </div>
+          <footer>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        &copy; 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 &mdash; 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> &raquo;</li>
+        
+          <li><a href="../index.html">Module code</a> &raquo;</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">&quot;&quot;&quot;</span>
+<span class="sd">                            Reader objects</span>
+<span class="sd">&quot;&quot;&quot;</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">&quot;Atom&quot;</span><span class="p">,</span> <span class="p">[</span><span class="s2">&quot;name&quot;</span><span class="p">,</span> <span class="s2">&quot;coords&quot;</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">&quot;&quot;&quot;File which can be parsed with a regex&quot;&quot;&quot;</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">&#39;&#39;</span><span class="p">,</span> <span class="n">regex</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">sort</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s1">&#39;&#39;</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">&quot;&quot;&quot;Check if filepath exists or is in package ressources&quot;&quot;&quot;</span>
+        <span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s2">&quot;Checking if </span><span class="si">%s</span><span class="s2"> file exists&quot;</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">&quot;File exists.&quot;</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">&quot;Use </span><span class="si">%s</span><span class="s2"> file from package ressources&quot;</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">&quot;Use default </span><span class="si">%s</span><span class="s2"> file&quot;</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">&quot;File </span><span class="si">%s</span><span class="s2"> does not exists&quot;</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">&quot;&quot;&quot;Get basename of filepath&quot;&quot;&quot;</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">&quot;&quot;&quot;File path&quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;Can&#39;t parse file </span><span class="si">%s</span><span class="s2"> without defined regex&quot;</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">&quot;&quot;&quot;Reader class for culled pdb list&quot;&quot;&quot;</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">&quot;^(?P&lt;pdb_id&gt;\w</span><span class="si">{4}</span><span class="s2">)&quot;</span>
+        <span class="sa">r</span><span class="s2">&quot;(?P&lt;chain_id&gt;\w)\s+&quot;</span>
+        <span class="sa">r</span><span class="s2">&quot;(?P&lt;length&gt;\d+)\s+&quot;</span>
+        <span class="sa">r</span><span class="s2">&quot;(?P&lt;exp&gt;\w+)\s+&quot;</span>
+        <span class="sa">r</span><span class="s2">&quot;(?P&lt;resolution&gt;-?\d+\.\d+)\s+&quot;</span>
+        <span class="sa">r</span><span class="s2">&quot;(?P&lt;r_factor&gt;-?\d+\.\d+)\s+&quot;</span>
+        <span class="sa">r</span><span class="s2">&quot;(?P&lt;free_rvalue&gt;-?\d+\.\d+)\s*$&quot;</span><span class="p">)</span>
+    <span class="n">filetype</span> <span class="o">=</span> <span class="s1">&#39;cullpdb&#39;</span>
+    <span class="n">default</span> <span class="o">=</span> <span class="s1">&#39;data/cullpdb/160427/cullpdb_pc25_res1.6_R0.25_d160427_chains3743&#39;</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">&#39;regex&#39;</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">&#39;filetype&#39;</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">&#39;default&#39;</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">&quot;&quot;&quot;Reader class for TBL Distance restraint file&quot;&quot;&quot;</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">&quot;^\s*(?P&lt;restflag&gt;or|assign)\s+\(segid\s+</span><span class="se">\&quot;</span><span class="s2">(?P&lt;segid1&gt;[\s\w]+)&quot;</span>
+        <span class="sa">r</span><span class="s2">&quot;</span><span class="se">\&quot;</span><span class="s2">\s+and\s+resid\s+(?P&lt;resid1&gt;\d+)\s+and\s+name\s+(?P&lt;atm1&gt;\w+)&quot;</span>
+        <span class="sa">r</span><span class="s2">&quot;\)\s+\(segid\s+</span><span class="se">\&quot;</span><span class="s2">(?P&lt;segid2&gt;[\s\w]+)</span><span class="se">\&quot;</span><span class="s2">\s+and\s+resid\s+&quot;</span>
+        <span class="sa">r</span><span class="s2">&quot;(?P&lt;resid2&gt;\d+)\s+and\s+name\s+(?P&lt;atm2&gt;\w+)\)\s*&quot;</span>
+        <span class="sa">r</span><span class="s2">&quot;(?P&lt;dtarget&gt;\d+\.\d+)?\s*(?P&lt;dminus&gt;\d+\.\d+)?\s*(?P&lt;dplus&gt;\d+\.\d+)&quot;</span>
+        <span class="sa">r</span><span class="s2">&quot;?\s*(weight)?\s*(?P&lt;weight&gt;\d+\.\d+)?\s*!?\s*(spec=)?&quot;</span>
+        <span class="sa">r</span><span class="s2">&quot;(?P&lt;listname&gt;\w+)?(,\s*no=)?(?P&lt;restno&gt;\d+)?(,\s*id=)?&quot;</span>
+        <span class="sa">r</span><span class="s2">&quot;(?P&lt;restid&gt;\d+)?(,\s*vol=)?(?P&lt;vol&gt;[\w.\-+]+)?$&quot;</span><span class="p">)</span>
+    <span class="n">filetype</span> <span class="o">=</span> <span class="s1">&#39;tbldist&#39;</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">&#39;regex&#39;</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">&#39;filetype&#39;</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">&quot;&quot;&quot;Abstract class related to all kind of protein maps&quot;&quot;&quot;</span>
+    <span class="c1"># List of 3tuples (&quot;regex_file&quot;, &quot;filetype&quot;, &quot;sort_field&quot;)</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">&quot;plmdca&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;regex&quot;</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">&quot;^(?P&lt;res1_nb&gt;\d+)\s+(?P&lt;res1_name&gt;\w)\s+&quot;</span>
+                                <span class="sa">r</span><span class="s2">&quot;(?P&lt;res2_nb&gt;\d+)\s+(?P&lt;res2_name&gt;\w)\s+&quot;</span>
+                                <span class="sa">r</span><span class="s2">&quot;(?P&lt;mi_score&gt;\d)\s+&quot;</span>
+                                <span class="sa">r</span><span class="s2">&quot;(?P&lt;plm_score&gt;-?\d+\.\d+)\s*$&quot;</span><span class="p">),</span>
+            <span class="s2">&quot;score_field&quot;</span><span class="p">:</span> <span class="s2">&quot;plm_score&quot;</span>
+        <span class="p">},</span>
+        <span class="s2">&quot;plm&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;regex&quot;</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">&quot;^(?P&lt;res1_nb&gt;\d+)\s+(?P&lt;res1_name&gt;\w)\s+&quot;</span>
+                                <span class="sa">r</span><span class="s2">&quot;(?P&lt;res2_nb&gt;\d+)\s+(?P&lt;res2_name&gt;\w)\s+&quot;</span>
+                                <span class="sa">r</span><span class="s2">&quot;(?P&lt;mi_score&gt;\d)\s+&quot;</span>
+                                <span class="sa">r</span><span class="s2">&quot;(?P&lt;plm_score&gt;-?\d+\.\d+)\s*$&quot;</span><span class="p">),</span>
+            <span class="s2">&quot;score_field&quot;</span><span class="p">:</span> <span class="s2">&quot;plm_score&quot;</span>
+        <span class="p">},</span>
+        <span class="s2">&quot;plmev&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;regex&quot;</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">&quot;^(?P&lt;res1_nb&gt;\d+)\s+(?P&lt;res1_name&gt;\w)\s+&quot;</span>
+                                <span class="sa">r</span><span class="s2">&quot;(?P&lt;res2_nb&gt;\d+)\s+(?P&lt;res2_name&gt;\w)\s+&quot;</span>
+                                <span class="sa">r</span><span class="s2">&quot;(?P&lt;mi_score&gt;\d)\s+&quot;</span>
+                                <span class="sa">r</span><span class="s2">&quot;(?P&lt;plm_score&gt;-?\d+\.\d+)\s*$&quot;</span><span class="p">),</span>
+            <span class="s2">&quot;score_field&quot;</span><span class="p">:</span> <span class="s2">&quot;plm_score&quot;</span>
+        <span class="p">},</span>
+        <span class="s2">&quot;plmc&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;regex&quot;</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">&quot;^(?P&lt;res1_nb&gt;\d+)\s+(?P&lt;res1_name&gt;\w)\s+&quot;</span>
+                                <span class="sa">r</span><span class="s2">&quot;(?P&lt;res2_nb&gt;\d+)\s+(?P&lt;res2_name&gt;\w)\s+&quot;</span>
+                                <span class="sa">r</span><span class="s2">&quot;(?P&lt;mi_score&gt;\d)\s+&quot;</span>
+                                <span class="sa">r</span><span class="s2">&quot;(?P&lt;plm_score&gt;-?\d+\.\d+)\s*$&quot;</span><span class="p">),</span>
+            <span class="s2">&quot;score_field&quot;</span><span class="p">:</span> <span class="s2">&quot;plm_score&quot;</span>
+        <span class="p">},</span>
+        <span class="s2">&quot;evfold&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;regex&quot;</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">&#39;^(?P&lt;res1_nb&gt;\d+),(?P&lt;res2_nb&gt;\d+),&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;ec_score&gt;-?\d+\.\d+e?-?\d*),&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;placeholder&gt;\d),(?P&lt;res1_cons&gt;\d+),&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;res2_cons&gt;\d+),(?P&lt;ss_filter&gt;\d|\d</span><span class="si">{3}</span><span class="s1">),&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;high_cons_filter&gt;\d|\d</span><span class="si">{3}</span><span class="s1">),&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;cc_filter&gt;\d|\d</span><span class="si">{3}</span><span class="s1">),(?P&lt;res1_name&gt;\w),&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;res2_name&gt;\w)$&#39;</span><span class="p">),</span>
+            <span class="s2">&quot;score_field&quot;</span><span class="p">:</span> <span class="s2">&quot;ec_score&quot;</span>
+        <span class="p">},</span>
+        <span class="s2">&quot;pconsc&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;regex&quot;</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">&#39;^(?P&lt;res1_nb&gt;\d+) (?P&lt;res2_nb&gt;\d+) &#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;ec_score&gt;-?\d+\.\d+e?-?\d*)$&#39;</span><span class="p">),</span>
+            <span class="s2">&quot;score_field&quot;</span><span class="p">:</span> <span class="s2">&quot;ec_score&quot;</span>
+        <span class="p">},</span>
+        <span class="s2">&quot;pconsc1&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;regex&quot;</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">&#39;^(?P&lt;res1_nb&gt;\d+) (?P&lt;res2_nb&gt;\d+) &#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;ec_score&gt;-?\d+\.\d+e?-?\d*)$&#39;</span><span class="p">),</span>
+            <span class="s2">&quot;score_field&quot;</span><span class="p">:</span> <span class="s2">&quot;ec_score&quot;</span>
+        <span class="p">},</span>
+        <span class="s2">&quot;pconsc2&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;regex&quot;</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">&#39;^(?P&lt;res1_nb&gt;\d+) (?P&lt;res2_nb&gt;\d+) &#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;ec_score&gt;-?\d+\.\d+e?-?\d*)$&#39;</span><span class="p">),</span>
+            <span class="s2">&quot;score_field&quot;</span><span class="p">:</span> <span class="s2">&quot;ec_score&quot;</span>
+        <span class="p">},</span>
+        <span class="s2">&quot;metapsicov_stg1&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;regex&quot;</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">&#39;^(?P&lt;res1_nb&gt;\d+) (?P&lt;res2_nb&gt;\d+) \d (?P&lt;res_dist&gt;-?\d+.?\d*) &#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;ec_score&gt;-?\d+.\d+e?-?\d*)$&#39;</span><span class="p">),</span>
+            <span class="s2">&quot;score_field&quot;</span><span class="p">:</span> <span class="s2">&quot;ec_score&quot;</span>
+        <span class="p">},</span>
+        <span class="s2">&quot;metapsicov_stg2&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;regex&quot;</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">&#39;^(?P&lt;res1_nb&gt;\d+) (?P&lt;res2_nb&gt;\d+) \d (?P&lt;res_dist&gt;-?\d+.?\d*) &#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;ec_score&gt;-?\d+.\d+e?-?\d*)$&#39;</span><span class="p">),</span>
+            <span class="s2">&quot;score_field&quot;</span><span class="p">:</span> <span class="s2">&quot;ec_score&quot;</span>
+        <span class="p">},</span>
+        <span class="s2">&quot;psicov&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;regex&quot;</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">&#39;^(?P&lt;res1_nb&gt;\d+) (?P&lt;res2_nb&gt;\d+) \d (?P&lt;res_dist&gt;-?\d+.?\d*) &#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;ec_score&gt;-?\d+.\d+e?-?\d*)$&#39;</span><span class="p">),</span>
+            <span class="s2">&quot;score_field&quot;</span><span class="p">:</span> <span class="s2">&quot;ec_score&quot;</span>
+        <span class="p">},</span>
+        <span class="s2">&quot;gremlin&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;regex&quot;</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">&#39;^(?P&lt;res1_nb&gt;\d+)\t(?P&lt;res2_nb&gt;\d+)\t&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;res1_id&gt;\d+_[AC-IK-NP-TVWYZ])\t&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;res2_id&gt;\d+_[AC-IK-NP-TVWYZ])\t&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;raw_score&gt;-?\d+\.\d+e?-?\d*)\t&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;scale_score&gt;-?\d+\.\d+e?-?\d*)\t&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;prob&gt;-?\d+\.\d+e?-?\d*)&#39;</span><span class="p">),</span>
+            <span class="s2">&quot;score_field&quot;</span><span class="p">:</span> <span class="s2">&quot;scale_score&quot;</span>
+        <span class="p">},</span>
+        <span class="s2">&quot;native&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;regex&quot;</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">&#39;^\s*(?P&lt;res1_nb&gt;\d+)\s+(?P&lt;res2_nb&gt;\d+)\s+(&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;?P&lt;ca_ca&gt;\d+\.\d+)\s+(?P&lt;cb_cb&gt;\d+\.\d+)\s+&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;sc_sc&gt;\d+\.\d+)\s+(?P&lt;valid&gt;\w+)&#39;</span><span class="p">),</span>
+            <span class="s2">&quot;score_field&quot;</span><span class="p">:</span> <span class="kc">None</span>
+        <span class="p">},</span>
+        <span class="s2">&quot;native_full&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;regex&quot;</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">&#39;^\s*(?P&lt;res1_nb&gt;\d+)\s+(?P&lt;res2_nb&gt;\d+)\s+(&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;?P&lt;ca_ca&gt;\d+\.\d+)\s+(?P&lt;cb_cb&gt;\d+\.\d+)\s+&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;sc_sc&gt;\d+\.\d+)\s+(?P&lt;valid&gt;\w+)&#39;</span><span class="p">),</span>
+            <span class="s2">&quot;score_field&quot;</span><span class="p">:</span> <span class="kc">None</span>
+        <span class="p">},</span>
+        <span class="s2">&quot;bbcontacts&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;regex&quot;</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">&#39;\s*(?P&lt;identifier&gt;\w+)\s+(?P&lt;diversity&gt;-?\d+\.?\d*)&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;\s+(?P&lt;direction&gt;Parallel|Antiparallel)&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;\s+(?P&lt;viterbiscore&gt;-?\d+\.?\d*)&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;\s+(?P&lt;indexpred&gt;\d+)&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;\s+(?P&lt;state&gt;first|internal|last)&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;\s+(?P&lt;res1_nb&gt;\d+)\s+(?P&lt;res2_nb&gt;\d+)&#39;</span><span class="p">),</span>
+            <span class="s2">&quot;score_field&quot;</span><span class="p">:</span> <span class="kc">None</span>
+        <span class="p">},</span>
+        <span class="s2">&quot;contactlist&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;regex&quot;</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">&#39;^\s*(?P&lt;res1_nb&gt;\d+)[\s,;]+(?P&lt;res2_nb&gt;\d+)[\s,&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;;]*(?P&lt;con_flag&gt;\w*)&#39;</span><span class="p">),</span>
+            <span class="s2">&quot;score_field&quot;</span><span class="p">:</span> <span class="kc">None</span>
+        <span class="p">},</span>
+        <span class="s2">&quot;metapsicovhb&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;regex&quot;</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">&#39;^\s*(?P&lt;res_donor&gt;\d+)[\s,;]+&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;res_acceptor&gt;\d+)[\s,;]+\d[\s,;]+&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;res_dist&gt;-?\d+.?\d*)[\s,;]+&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;hbscore&gt;-?\d+\.?\d*)&#39;</span><span class="p">),</span>
+            <span class="s2">&quot;score_field&quot;</span><span class="p">:</span> <span class="s2">&quot;hbscore&quot;</span>
+        <span class="p">},</span>
+        <span class="s2">&quot;default_1&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;regex&quot;</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">&#39;^\s*(?P&lt;res1_nb&gt;\d+)\s+(?P&lt;res2_nb&gt;\d+)\s+&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;resn1&gt;\w+)\s+&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;resn2&gt;\w+)\s+&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;score&gt;[\w\d.+\-]+)&#39;</span><span class="p">),</span>
+            <span class="s2">&quot;score_field&quot;</span><span class="p">:</span> <span class="s2">&quot;score&quot;</span>
+        <span class="p">},</span>
+        <span class="s2">&quot;default_2&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;regex&quot;</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">&#39;^\s*(?P&lt;res1_nb&gt;\d+)\s+(?P&lt;res2_nb&gt;\d+)\s+&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;score&gt;[\w\d.+\-]+)&#39;</span><span class="p">),</span>
+            <span class="s2">&quot;score_field&quot;</span><span class="p">:</span> <span class="s2">&quot;score&quot;</span>
+        <span class="p">},</span>
+        <span class="s2">&quot;default_3&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;regex&quot;</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">&#39;^\s*(?P&lt;res1_nb&gt;\d+)\s+(?P&lt;res2_nb&gt;\d+)\s+&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;resn1&gt;\w+)\s+&#39;</span>
+                <span class="sa">r</span><span class="s1">&#39;(?P&lt;resn2&gt;\w+)\s+&#39;</span><span class="p">),</span>
+            <span class="s2">&quot;score_field&quot;</span><span class="p">:</span> <span class="kc">None</span>
+        <span class="p">},</span>
+        <span class="s2">&quot;default_4&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;regex&quot;</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">&#39;^\s*(?P&lt;res1_nb&gt;\d+)\s+(?P&lt;res2_nb&gt;\d+)\s+&#39;</span><span class="p">),</span>
+            <span class="s2">&quot;score_field&quot;</span><span class="p">:</span> <span class="kc">None</span>
+        <span class="p">},</span>
+        <span class="s2">&quot;empty&quot;</span><span class="p">:</span> <span class="p">{</span>
+            <span class="s2">&quot;regex&quot;</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">&#39;^\s*$&#39;</span><span class="p">),</span>
+            <span class="s2">&quot;score_field&quot;</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">&quot;&quot;&quot;</span>
+
+<span class="sd">        :param args:</span>
+<span class="sd">        :param kwargs:</span>
+<span class="sd">        :return:</span>
+<span class="sd">        &quot;&quot;&quot;</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">&quot;alldistmap&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
+                        <span class="s2">&quot;allcontactmap&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
+                        <span class="s2">&quot;distmap&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
+                        <span class="s2">&quot;maplot&quot;</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span>
+                        <span class="s2">&quot;scoremap&quot;</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">&quot;&quot;</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</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 = &quot;&quot;)</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">        &quot;&quot;&quot;</span>
+        <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;Class </span><span class="si">%s</span><span class="s2"> doesn&#39;t implement create_map&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</span>
+        <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;Class </span><span class="si">%s</span><span class="s2"> doesn&#39;t implement update_map&quot;</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">&quot;&quot;&quot;:return:&quot;&quot;&quot;</span>
+        <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Checking if file </span><span class="si">%s</span><span class="s2"> correspond to </span><span class="si">%s</span><span class="s2"> format&quot;</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">&quot;default_1&quot;</span><span class="p">,</span> <span class="s2">&quot;default_2&quot;</span><span class="p">,</span> <span class="s2">&quot;default_3&quot;</span><span class="p">,</span> <span class="s2">&quot;default_4&quot;</span><span class="p">,</span> <span class="s2">&quot;empty&quot;</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">&quot;File </span><span class="si">%s</span><span class="s2"> is empty !&quot;</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">&quot;empty&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;regex&quot;</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">&quot;empty&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;score_field&quot;</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">&quot;regex&quot;</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">&quot;Format </span><span class="si">%s</span><span class="s2"> not supported !&quot;</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">&quot;Format type correct&quot;</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">&quot;regex&quot;</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">&quot;score_field&quot;</span><span class="p">)</span>
+                    <span class="p">]</span>
+                <span class="k">if</span> <span class="n">index</span> <span class="o">&gt;</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">&quot;Given type do not correspond, checking default&quot;</span>
+                                <span class="s2">&quot; format for contactlist or empty file...&quot;</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">&quot;regex&quot;</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">&quot;Format type correct </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;regex&quot;</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">&quot;score_field&quot;</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">&quot;Can&#39;t read </span><span class="si">%s</span><span class="s2"> file.&quot;</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">&quot;Wrong format type given ...&quot;</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">&quot;min&quot;</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">&quot;&quot;&quot;</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 = &quot;min&quot;)</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">        &quot;&quot;&quot;</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">&quot;Reading </span><span class="si">%s</span><span class="s2"> file&quot;</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">&quot;Unrecognized file type&quot;</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">&quot;Loading contact file&quot;</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">&quot;metapsicovhb&quot;</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">&quot;res_donor&quot;</span><span class="p">,</span> <span class="s2">&quot;res_acceptor&quot;</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">&quot;metapsicovhb&quot;</span> <span class="k">else</span> <span class="p">(</span><span class="s1">&#39;res1_nb&#39;</span><span class="p">,</span> <span class="s1">&#39;res2_nb&#39;</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">&quot;contactlist&quot;</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">&quot;con_flag&quot;</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">&quot;metapsicovhb&quot;</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">&quot;res_dist&quot;</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">&quot;evfold&quot;</span><span class="p">,</span> <span class="s2">&quot;plmdca&quot;</span><span class="p">,</span> <span class="s2">&quot;plm&quot;</span><span class="p">,</span> <span class="s2">&quot;plmev&quot;</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">&quot;ss_filter&quot;</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">&quot;high_cons_filter&quot;</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">&quot;cc_filter&quot;</span><span class="p">))</span> <span class="k">if</span> <span class="n">el</span> <span class="o">!=</span> <span class="s2">&quot;0&quot;</span><span class="p">),</span>
+                        <span class="s2">&quot;0&quot;</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">&quot;res1_name&quot;</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">&quot;res2_name&quot;</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">&quot;res1_nb&quot;</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">&quot;res1_name&quot;</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">&quot;res2_nb&quot;</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">&quot;res2_name&quot;</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">&#39;&#39;</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">&#39;*&#39;</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">&#39;Alignment of amino acid sequence with contact file</span><span class="se">\n</span><span class="s1">&#39;</span>
+                     <span class="s1">&#39;</span><span class="si">%s</span><span class="s1">&#39;</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">&#39;^-*&#39;</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">&quot;Found a shift of </span><span class="si">%d</span><span class="s2"> residues in positions given&quot;</span>
+                            <span class="s2">&quot; within contact list&quot;</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">&quot;Update index in contact list and remove unassigned &quot;</span>
+                         <span class="s2">&quot;contacts&quot;</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">&quot;Old contact list</span><span class="se">\n</span><span class="si">%s</span><span class="s2">&quot;</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">&quot;New contact list</span><span class="se">\n</span><span class="si">%s</span><span class="s2">&quot;</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">&quot;Remove contacts outside sequence bonds&quot;</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">&quot;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">&quot;</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">&quot;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">&quot;</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">&quot;&quot;&quot;</span>
+<span class="sd">    Contact map file</span>
+<span class="sd">    &quot;&quot;&quot;</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">&quot;&quot;&quot;</span>
+
+<span class="sd">        :param filepath:</span>
+<span class="sd">        :param filetype:</span>
+<span class="sd">        :return:</span>
+<span class="sd">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;residuex&quot;</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">&quot;metapsicovhb&quot;</span> <span class="k">else</span> <span class="s2">&quot;donor&quot;</span>
+        <span class="n">colnames</span> <span class="o">=</span> <span class="s2">&quot;residuey&quot;</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">&quot;metapsicovhb&quot;</span> <span class="k">else</span> <span class="s2">&quot;acceptor&quot;</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">&#39;contact&#39;</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">&#39;flaglist&#39;</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">&#39;sym&#39;</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">&quot;path&quot;</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">&#39;score&#39;</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">&#39;sym&#39;</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">&quot;path&quot;</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">&#39;distance&#39;</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">&quot;path&quot;</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">&#39;sym&#39;</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">&quot;metapsicovhb&quot;</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">&quot;-&quot;</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">&quot;-&quot;</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">&quot;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 &quot;</span>
+                          <span class="s2">&quot;not the same in resmap (</span><span class="si">%s</span><span class="s2">, </span><span class="si">%s</span><span class="s2">)&quot;</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">&quot;</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">&quot;</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">&quot;maplot&quot;</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">&quot;</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">&quot;</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">&quot;scoremap&quot;</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">&quot;distmap&quot;</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">&quot;&quot;&quot;PDB file&quot;&quot;&quot;</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">&#39;^(?P&lt;record&gt;ATOM  |HETATM)(?P&lt;serial&gt;[\s\w]</span><span class="si">{5}</span><span class="s1">)&#39;</span>
+                        <span class="sa">r</span><span class="s1">&#39;\s(?P&lt;name&gt;[\s\w]</span><span class="si">{4}</span><span class="s1">)&#39;</span>
+                        <span class="sa">r</span><span class="s1">&#39;(?P&lt;altLoc&gt;[\s\w])&#39;</span>
+                        <span class="sa">r</span><span class="s1">&#39;(?P&lt;resName&gt;\w</span><span class="si">{3}</span><span class="s1">)\s(?P&lt;chainID&gt;\w)&#39;</span>
+                        <span class="sa">r</span><span class="s1">&#39;(?P&lt;resSeq&gt;[\s\w]</span><span class="si">{4}</span><span class="s1">)(?P&lt;iCode&gt;[\s\w])&#39;</span>
+                        <span class="sa">r</span><span class="s1">&#39;\s</span><span class="si">{3}</span><span class="s1">(?P&lt;x&gt;[\s\d-]</span><span class="si">{4}</span><span class="s1">\.\d</span><span class="si">{3}</span><span class="s1">)(?P&lt;y&gt;[\s\d-]</span><span class="si">{4}</span><span class="s1">\.\d</span><span class="si">{3}</span><span class="s1">)&#39;</span>
+                        <span class="sa">r</span><span class="s1">&#39;(?P&lt;z&gt;[\s\d-]</span><span class="si">{4}</span><span class="s1">\.\d</span><span class="si">{3}</span><span class="s1">)&#39;</span>
+                        <span class="sa">r</span><span class="s1">&#39;(?P&lt;occupancy&gt;[\s\d-]</span><span class="si">{3}</span><span class="s1">\.\d</span><span class="si">{2}</span><span class="s1">)&#39;</span>
+                        <span class="sa">r</span><span class="s1">&#39;(?P&lt;tempFactor&gt;[\s\d-]</span><span class="si">{3}</span><span class="s1">\.\d</span><span class="si">{2}</span><span class="s1">)&#39;</span>
+                        <span class="sa">r</span><span class="s1">&#39;\s</span><span class="si">{10}</span><span class="s1">(?P&lt;element&gt;[\s\w]</span><span class="si">{2}</span><span class="s1">)&#39;</span>
+                        <span class="sa">r</span><span class="s1">&#39;(?P&lt;charge&gt;[\s\w]</span><span class="si">{2}</span><span class="s1">)&#39;</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">&quot;pdb&quot;</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">&quot;min&quot;</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">&quot;&quot;</span><span class="p">):</span>
+        <span class="sd">&quot;&quot;&quot;</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 = &quot;min&quot;)</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 = &quot;&quot;)</span>
+
+<span class="sd">        Returns</span>
+<span class="sd">        -------</span>
+
+<span class="sd">        </span>
+<span class="sd">        &quot;&quot;&quot;</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">&#39;distance&#39;</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">&quot;pdb distance map:</span><span class="se">\n</span><span class="si">%s</span><span class="s2">&quot;</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">&quot;alldistmap&quot;</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">&quot;distmap&quot;</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">&quot;allcontactmap&quot;</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">&quot;maplot&quot;</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">&quot;allcontactmap&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;Updating distance map with pdb file&quot;</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">&#39;name&#39;</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">&quot;</span><span class="si">%03d</span><span class="s2">-</span><span class="si">%s</span><span class="s2">&quot;</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">&#39;resSeq&#39;</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">&#39;resName&#39;</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">&#39;name&#39;</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">&quot;</span><span class="si">%03d</span><span class="s2">-</span><span class="si">%s</span><span class="s2">&quot;</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">&#39;resSeq&#39;</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">&#39;resName&#39;</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">&#39;name&#39;</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">&#39;x&#39;</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">&#39;y&#39;</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">&#39;z&#39;</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">&#39;x&#39;</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">&#39;y&#39;</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">&#39;z&#39;</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">&quot;residuex&quot;</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">&quot;residuex&quot;</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">&quot;Update distance value (</span><span class="si">%s</span><span class="s2">, </span><span class="si">%s</span><span class="s2">)&quot;</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">&quot;residuex&quot;</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">&quot;residuex&quot;</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">&quot;residuex&quot;</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">&quot;-&quot;</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">&quot;-&quot;</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">&quot;Can&#39;t update pdb distance map for pos in pdb file &quot;</span>
+                      <span class="s2">&quot;</span><span class="si">%s</span><span class="s2"> with </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;&quot;&quot;Distance matrix file&quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;Reader class for Map files&quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;Initiatize object from scratch object&quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;Reader focused on file(s) </span><span class="si">%s</span><span class="s2"> </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;Adding </span><span class="si">%s</span><span class="s2"> file to watchlist&quot;</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">&quot;pdb&quot;</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">&quot;pdb&quot;</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">&quot;distfile&quot;</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">&quot;pdb&quot;</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">&quot;Can&#39;t read </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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>
+        &copy; 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 &mdash; 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> &raquo;</li>
+        
+          <li><a href="../index.html">Module code</a> &raquo;</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">&quot;&quot;&quot;</span>
+<span class="sd">                                Settings section</span>
+<span class="sd">&quot;&quot;&quot;</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">&quot;&quot;&quot;Main setting object with args and config section&quot;&quot;&quot;</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">&quot;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">&quot;</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">&quot;&quot;&quot;Group settings with each section corresponding to a Setting object&quot;&quot;&quot;</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">&#39;&#39;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;Configuration file not found (</span><span class="si">%s</span><span class="s2">)&quot;</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">&quot;Formatting items of </span><span class="si">%s</span><span class="s2"> section&quot;</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">&quot;</span><span class="si">%s</span><span class="s2"> config updated&quot;</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">&quot;</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">&quot;</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">&quot;Unknow config section </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</span>
+        <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Writing .ini file (</span><span class="si">%s</span><span class="s2">)&quot;</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">&quot;w&quot;</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">&quot;&lt;Settings object&gt;</span><span class="se">\n</span><span class="s2">    sections: </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;&quot;&quot;</span>
+<span class="sd">    Settings object for ariaec</span>
+<span class="sd">    @DynamicAttrs</span>
+<span class="sd">    &quot;&quot;&quot;</span>
+    <span class="c1"># ss_dist = os.path.join(os.path.dirname(os.path.realpath(__file__)),</span>
+    <span class="c1">#                        &#39;conf/ss_dist.txt&#39;)</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">&#39;templates/aria_project_v2.3.0.xml&#39;</span>
+    <span class="n">SS_DIST</span> <span class="o">=</span> <span class="s1">&#39;data/ss_dist.txt&#39;</span>
+    <span class="n">SCSC_MIN</span> <span class="o">=</span> <span class="s1">&#39;data/scsc_min.p&#39;</span>
+    <span class="n">INTERLOWERBOUNDS</span> <span class="o">=</span> <span class="s1">&#39;data/pdbdists/lowerbounds.inter.p&#39;</span>
+    <span class="n">INTERTARGET</span> <span class="o">=</span> <span class="s1">&#39;data/pdbdists/targetdists.inter.p&#39;</span>
+    <span class="n">INTERUPPERBOUNDS</span> <span class="o">=</span> <span class="s1">&#39;data/pdbdists/upperbounds.inter.p&#39;</span>
+    <span class="n">INTRALOWERBOUNDS</span> <span class="o">=</span> <span class="s1">&#39;data/pdbdists/lowerbounds.intra.p&#39;</span>
+    <span class="n">INTRATARGET</span> <span class="o">=</span> <span class="s1">&#39;data/pdbdists/targetdists.intra.p&#39;</span>
+    <span class="n">INTRAUPPERBOUNDS</span> <span class="o">=</span> <span class="s1">&#39;data/pdbdists/upperbounds.intra.p&#39;</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">&#39;data/topallhdg5.3.pro&#39;</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">&quot;main&quot;</span><span class="p">,</span> <span class="s2">&quot;setup&quot;</span><span class="p">,</span> <span class="s2">&quot;maplot&quot;</span><span class="p">,</span> <span class="s2">&quot;bbconv&quot;</span><span class="p">,</span> <span class="s2">&quot;contactdef&quot;</span><span class="p">,</span>
+                <span class="s2">&quot;pdbqual&quot;</span><span class="p">,</span> <span class="s2">&quot;pdbdist&quot;</span><span class="p">,</span> <span class="s2">&quot;analysis&quot;</span><span class="p">,</span> <span class="s2">&quot;tbl2xml&quot;</span><span class="p">,</span> <span class="s2">&quot;pdbstat&quot;</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">&quot;&quot;&quot;</span>
+<span class="sd">        Initiate settings with name related to a command</span>
+<span class="sd">        :param name:</span>
+<span class="sd">        &quot;&quot;&quot;</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">&quot;&quot;&quot; &quot;&quot;&quot;</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">&quot;set </span><span class="si">%s</span><span class="s2"> dir: </span><span class="si">%s</span><span class="s2">&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;setup&quot;</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">&quot;xml&quot;</span><span class="p">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="s2">&quot;tbl&quot;</span><span class="p">:</span> <span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="s2">&quot;etc&quot;</span><span class="p">:</span> <span class="s2">&quot;&quot;</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">&quot;maplot&quot;</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">&quot;graphics&quot;</span><span class="p">:</span> <span class="s2">&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;ss_dist_file&quot;</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">&quot;ss_dist_file&quot;</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">&quot;ss_dist_file&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;templates/aria_project_v</span><span class="si">%s</span><span class="s2">.xml&quot;</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">&quot;ariaproject_template&quot;</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">&quot;Template version for aria project (</span><span class="si">%s</span><span class="s2">) is not &quot;</span>
+                          <span class="s2">&quot;supported&quot;</span><span class="p">,</span> <span class="bp">self</span><span class="p">[</span><span class="s2">&quot;ariaproject_template&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;scsc_min_file&quot;</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&#39;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">&#39;, &#39;</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">&quot;&quot;&quot;Generate infrastructure&quot;&quot;&quot;</span>
+        <span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s2">&quot;Making output directories&quot;</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">&quot;Create </span><span class="si">%s</span><span class="s2"> directory&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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>
+        &copy; 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 &mdash; 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> &raquo;</li>
+        
+          <li><a href="../index.html">Module code</a> &raquo;</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">&quot;&quot;&quot;</span>
+<span class="sd">                            Input/Output aria_ec scripts</span>
+<span class="sd">&quot;&quot;&quot;</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&#39;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">&quot;&quot;&quot;Aria Ec Setup protocol&quot;&quot;&quot;</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">&quot;&quot;&quot;</span>
+<span class="sd">        :param settings:</span>
+<span class="sd">        :return:</span>
+<span class="sd">        &quot;&quot;&quot;</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">&#39;&#39;</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">&quot;no_filter&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&quot;Settings:</span><span class="se">\n</span><span class="s2">&quot;</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">&quot;Args:</span><span class="se">\n</span><span class="s2">&quot;</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">&quot;seq&quot;</span><span class="p">,</span> <span class="s2">&quot;&quot;</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">&quot;seq&quot;</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">&quot;sspred&quot;</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">&quot;sspred&quot;</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">&quot;ssidx&quot;</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">&quot;infiles&quot;</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">&quot;contact_types&quot;</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">&#39;groupby_method&#39;</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&#39;applique sur l&#39;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">&quot;etc&quot;</span><span class="p">,</span> <span class="s1">&#39;&#39;</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">&quot;pdb&quot;</span> <span class="ow">and</span> <span class="s2">&quot;pdb&quot;</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">&quot;pdb&quot;</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">&quot;distfile&quot;</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">&quot;distance_type&quot;</span><span class="p">)</span> <span class="o">==</span> <span class="s2">&quot;distfile&quot;</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">&quot;Loading target distance file&quot;</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">&quot;distfile&quot;</span><span class="p">),</span>
+                <span class="n">maptypes</span><span class="o">=</span><span class="s2">&quot;distfile&quot;</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">&#39;groupby_method&#39;</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">&quot;ref&quot;</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">&quot;ref&quot;</span><span class="p">),</span>
+                <span class="n">maptypes</span><span class="o">=</span><span class="s2">&quot;pdb&quot;</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">&#39;groupby_method&#39;</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">&quot;hb&quot;</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">&quot;longrange_hb&quot;</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">&quot;hb&quot;</span><span class="p">),</span>
+                <span class="n">maptypes</span><span class="o">=</span><span class="s2">&quot;metapsicovhb&quot;</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">&#39;groupby_method&#39;</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">&quot;longrange_hb&quot;</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">&quot;etc&quot;</span><span class="p">,</span> <span class="s1">&#39;&#39;</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">&quot;.seq&quot;</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">&quot;Load molecule file and convert it into xml format&quot;</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">&quot;nf_longrange_hb&quot;</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">&quot;Writing tbl files ...&quot;</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">&quot;&quot;&quot;</span>
+<span class="sd">        Write filtered contacts &amp; 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">        &quot;&quot;&quot;</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">&quot;maplot&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">write_contacts</span><span class="p">(</span>
+                <span class="s2">&quot;_&quot;</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">&quot;filtered&quot;</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">&quot;etc&quot;</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">&quot;scoremap&quot;</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">&quot;alldistmap&quot;</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">&quot;alldistmap&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">to_csv</span><span class="p">(</span>
+                    <span class="s2">&quot;</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">.distmap.csv&quot;</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">&quot;etc&quot;</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">&quot;filteredlist&quot;</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">&quot;etc&quot;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">),</span>
+                    <span class="s2">&quot;_&quot;</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">&quot;filtered&quot;</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">&quot;maplot&quot;</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">&quot;distmap&quot;</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">&quot;alldistmap&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">to_csv</span><span class="p">(</span>
+                <span class="s2">&quot;</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&quot;</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">&quot;etc&quot;</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">&quot;&quot;&quot;</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">        &quot;&quot;&quot;</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">&#39;a&#39;</span> <span class="k">if</span> <span class="n">append</span> <span class="k">else</span> <span class="s1">&#39;w&#39;</span>
+        <span class="n">dist_desc</span> <span class="o">=</span> <span class="s1">&#39;</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)&#39;</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">&quot;groupby_method&quot;</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">&#39;&#39;</span>
+        <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%s</span><span class="s2">/</span><span class="si">%s</span><span class="s2">.contacts.txt&quot;</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">&#39;&#39;&#39;# resid1\tresid2\tres1\tres2%s\n&#39;&#39;&#39;</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">&#39;keys&#39;</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">&#39;Contact list must be 2-tuple !&#39;</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">&quot;Contact list </span><span class="si">%s</span><span class="s2">&quot;</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">&#39;res1_nb&#39;</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">&#39;res2_nb&#39;</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">&quot;Contact </span><span class="si">%s</span><span class="s2">&quot;</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">&#39;dist&#39;</span><span class="p">:</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;atoms&#39;</span><span class="p">:</span> <span class="s1">&#39;&#39;</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">&#39;TP&#39;</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">&#39;FP&#39;</span>
+                        <span class="n">outfile</span><span class="o">.</span><span class="n">write</span><span class="p">(</span>
+                            <span class="s2">&quot;</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">&quot;</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">&quot;</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">&quot;</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">&#39;&#39;&#39;</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">&#39;&#39;&#39;</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">&quot;__main__&quot;</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">&quot;Setup&quot;</span><span class="p">)</span>
+    <span class="n">AriaEcSettings</span><span class="p">(</span><span class="s1">&#39;setup&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">load_config</span><span class="p">(</span><span class="s1">&#39;config.ini&#39;</span><span class="p">)</span>
+</pre></div>
+
+           </div>
+           <div class="articleComments">
+            
+           </div>
+          </div>
+          <footer>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <p>
+        &copy; 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 &mdash; ARIA 4 documentation</title>
+  <title>Overview: module code &mdash; 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> &raquo;</li>
+      <li><a href="../index.html">Docs</a> &raquo;</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>
-        &copy; <a href="copyright.html">Copyright</a> 2017, Benjamin Bardiaux, Michael Habeck, Therese Malliavin, Wolfgang Rieping, and Michael Nilges.
+        &copy; 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 &mdash; 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> &raquo;</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>&#64;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
+&#64;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"> = &lt;_sre.SRE_Pattern object&gt;</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': &lt;_sre.SRE_Pattern object at 0x4ced770&gt;, u'acce': &lt;_sre.SRE_Pattern object&gt;, u'improper': &lt;_sre.SRE_Pattern object at 0x4c62630&gt;, u'atom': &lt;_sre.SRE_Pattern object at 0x4d63060&gt;, u'dono': &lt;_sre.SRE_Pattern object&gt;, u'bond': &lt;_sre.SRE_Pattern object&gt;}</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"> = &lt;_sre.SRE_Pattern object&gt;</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"> = &lt;_sre.SRE_Pattern object at 0x4d527b0&gt;</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"> = &lt;_sre.SRE_Pattern object&gt;</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"> = &lt;_sre.SRE_Pattern object at 0x4d52fd0&gt;</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"> = &lt;_sre.SRE_Pattern object&gt;</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"> = &lt;_sre.SRE_Pattern object&gt;</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': &lt;type 'float'&gt;, 'contact': &lt;type 'bool'&gt;, 'score': &lt;type 'float'&gt;}</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"> = &lt;_sre.SRE_Pattern object&gt;</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"> = &lt;_sre.SRE_Pattern object&gt;</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"> = &lt;_sre.SRE_Pattern object at 0x4d7b8a0&gt;</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': &lt;_sre.SRE_Pattern object&gt;, 'score_field': 'ec_score'}, 'pconsc2': {'regex': &lt;_sre.SRE_Pattern object&gt;, 'score_field': 'ec_score'}, 'plmc': {'regex': &lt;_sre.SRE_Pattern object at 0x4d72420&gt;, 'score_field': 'plm_score'}, 'metapsicovhb': {'regex': &lt;_sre.SRE_Pattern object at 0x4d7ec70&gt;, 'score_field': 'hbscore'}, 'evfold': {'regex': &lt;_sre.SRE_Pattern object at 0x4d74780&gt;, 'score_field': 'ec_score'}, 'native': {'regex': &lt;_sre.SRE_Pattern object at 0x4d7d8d0&gt;, 'score_field': None}, 'psicov': {'regex': &lt;_sre.SRE_Pattern object at 0x4d75410&gt;, 'score_field': 'ec_score'}, 'metapsicov_stg1': {'regex': &lt;_sre.SRE_Pattern object at 0x4d75410&gt;, 'score_field': 'ec_score'}, 'metapsicov_stg2': {'regex': &lt;_sre.SRE_Pattern object at 0x4d75410&gt;, 'score_field': 'ec_score'}, 'empty': {'regex': &lt;_sre.SRE_Pattern object&gt;, 'score_field': None}, 'gremlin': {'regex': &lt;_sre.SRE_Pattern object at 0x4d7de60&gt;, 'score_field': 'scale_score'}, 'bbcontacts': {'regex': &lt;_sre.SRE_Pattern object at 0x4d7f140&gt;, 'score_field': None}, 'default_4': {'regex': &lt;_sre.SRE_Pattern object&gt;, 'score_field': None}, 'default_3': {'regex': &lt;_sre.SRE_Pattern object at 0x4d76640&gt;, 'score_field': None}, 'default_2': {'regex': &lt;_sre.SRE_Pattern object&gt;, 'score_field': 'score'}, 'default_1': {'regex': &lt;_sre.SRE_Pattern object at 0x4d74500&gt;, 'score_field': 'score'}, 'plm': {'regex': &lt;_sre.SRE_Pattern object at 0x4d72420&gt;, 'score_field': 'plm_score'}, 'pconsc': {'regex': &lt;_sre.SRE_Pattern object&gt;, 'score_field': 'ec_score'}, 'plmdca': {'regex': &lt;_sre.SRE_Pattern object at 0x4d72420&gt;, 'score_field': 'plm_score'}, 'native_full': {'regex': &lt;_sre.SRE_Pattern object at 0x4d7d8d0&gt;, 'score_field': None}, 'contactlist': {'regex': &lt;_sre.SRE_Pattern object&gt;, 'score_field': None}, 'plmev': {'regex': &lt;_sre.SRE_Pattern object at 0x4d72420&gt;, '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"> = &lt;_sre.SRE_Pattern object at 0x4d817b0&gt;</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"> = &lt;_sre.SRE_Pattern object at 0x4d7c8b0&gt;</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
+&#64;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 &amp; 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>
+        &copy; 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>&lt;no title&gt; &mdash; ARIA 4 documentation</title>
+  <title>ariaec.test package &mdash; 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> &raquo;</li>
         
-      <li>&lt;no title&gt;</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>
-        &copy; <a href="copyright.html">Copyright</a> 2017, Benjamin Bardiaux, Michael Habeck, Therese Malliavin, Wolfgang Rieping, and Michael Nilges.
+        &copy; 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 &mdash; 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> &raquo;</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>
+        &copy; 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! &mdash; ARIA 4 documentation</title>
+  <title>Welcome to Aria-EC’s documentation! &mdash; 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> &raquo;</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>
-        &copy; <a href="copyright.html">Copyright</a> 2017, Benjamin Bardiaux, Michael Habeck, Therese Malliavin, Wolfgang Rieping, and Michael Nilges.
+        &copy; 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 &mdash; ARIA 4 documentation</title>
+  <title>ariaec &mdash; 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>
-        &copy; <a href="copyright.html">Copyright</a> 2017, Benjamin Bardiaux, Michael Habeck, Therese Malliavin, Wolfgang Rieping, and Michael Nilges.
+        &copy; 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 &mdash; ARIA 4 documentation</title>
+  <title>Python Module Index &mdash; 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> &raquo;</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>&#160;</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>&#160;&#160;&#160;
+       <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>&#160;&#160;&#160;
+       <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>&#160;&#160;&#160;
+       <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>&#160;&#160;&#160;
+       <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>&#160;&#160;&#160;
+       <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>&#160;&#160;&#160;
+       <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>&#160;&#160;&#160;
+       <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>&#160;&#160;&#160;
+       <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>&#160;&#160;&#160;
+       <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>&#160;&#160;&#160;
+       <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>&#160;&#160;&#160;
+       <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>&#160;&#160;&#160;
+       <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>&#160;&#160;&#160;
+       <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>
-        &copy; <a href="#">Copyright</a> 2017, Benjamin Bardiaux, Michael Habeck, Therese Malliavin, Wolfgang Rieping, and Michael Nilges.
+        &copy; 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 &mdash; ARIA 4 documentation</title>
+  <title>Search &mdash; 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>
-        &copy; <a href="copyright.html">Copyright</a> 2017, Benjamin Bardiaux, Michael Habeck, Therese Malliavin, Wolfgang Rieping, and Michael Nilges.
+        &copy; 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',