-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 66ddd01
Showing
55 changed files
with
6,923 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +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: fee80ef0a1013f90939ae1a89d779839 | ||
tags: 645f666f9bcd5a90fca523b33c5a78b7 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
clusttraj package | ||
================= | ||
|
||
Submodules | ||
---------- | ||
|
||
clusttraj.classify module | ||
------------------------- | ||
|
||
.. automodule:: clusttraj.classify | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: | ||
|
||
clusttraj.distmat module | ||
------------------------ | ||
|
||
.. automodule:: clusttraj.distmat | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: | ||
|
||
clusttraj.io module | ||
------------------- | ||
|
||
.. automodule:: clusttraj.io | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: | ||
|
||
clusttraj.main module | ||
--------------------- | ||
|
||
.. automodule:: clusttraj.main | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: | ||
|
||
clusttraj.plot module | ||
--------------------- | ||
|
||
.. automodule:: clusttraj.plot | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: | ||
|
||
clusttraj.utils module | ||
---------------------- | ||
|
||
.. automodule:: clusttraj.utils | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: | ||
|
||
Module contents | ||
--------------- | ||
|
||
.. automodule:: clusttraj | ||
:members: | ||
:undoc-members: | ||
:show-inheritance: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
.. ClustTraj documentation master file, created by | ||
sphinx-quickstart on Sat Sep 16 18:21:59 2023. | ||
You can adapt this file completely to your liking, but it should at least | ||
contain the root `toctree` directive. | ||
Welcome to ClustTraj's documentation! | ||
===================================== | ||
|
||
.. toctree:: | ||
:maxdepth: 2 | ||
:caption: Contents: | ||
|
||
intro | ||
install | ||
clusttraj | ||
|
||
|
||
Indices and tables | ||
================== | ||
|
||
* :ref:`genindex` | ||
* :ref:`modindex` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
Installing ClustTraj | ||
==================== | ||
|
||
Installing ``clusttraj`` is simple and can be achieved using ``pip``: | ||
|
||
.. code-block:: console | ||
pip install clusttraj | ||
This will automatically install the package and its dependencies. | ||
|
||
We recommend performing the installation in an empty virtual environment. | ||
|
||
Dependencies | ||
************ | ||
|
||
``clustttraj`` dependencies should be installed automatically by ``pip``. | ||
|
||
Currently, the following dependencies are installed: | ||
|
||
* `NumPy <http://www.numpy.org/>`_ | ||
* `OpenBabel <http://openbabel.org/>`_ | ||
* `RMSD <https://github.com/charnley/rmsd>`_ | ||
* `QML <https://github.com/qmlcode/qml>`_ | ||
* `SciPy <https://www.scipy.org/>`_ | ||
* `scikit-learn <http://scikit-learn.org/stable/index.html>`_ | ||
* `matplotlib <https://matplotlib.org/>`_ | ||
|
||
Since the ``qml`` project development has been slow, we provide a fork repository in which | ||
we updated the package to be installable in modern enviroments with newer versions of | ||
Python and libraries. | ||
This modified version can be downloaded and installed from `this link <https://github.com/hmcezar/qml>`_. | ||
|
||
Installation Problems | ||
********************* | ||
|
||
If you have problems installing ``clusttraj`` because installing ``qml`` fails, try installing | ||
``qml`` yourself first. | ||
For Python 3.11, you might have to either disable setuptools distutils setting the environment | ||
variable ``SETUPTOOLS_USE_DISTUTILS=stdlib`` before installing, or downgrading ``setuptools`` | ||
to a version prior than 60.0. | ||
For example, you could install ``qml`` with: | ||
|
||
.. code-block:: console | ||
pip install "setuptools<60" | ||
pip install "qml @ git+https://github.com/hmcezar/qml@develop" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
Introduction | ||
============ | ||
|
||
``clusttraj`` is a Python package which aims to cluster similar configurations of molecular dynamics or Monte Carlo simulation trajectories. | ||
|
||
The optimal alignment between each snapshot is sought using reordering algorithms and optimal rotations. | ||
|
||
Any format supported by `openbabel <https://github.com/openbabel/openbabel>`_ is accepted as input or output, including the popular .xyz, .pdb and .xtc. | ||
|
||
Motivation | ||
********** | ||
|
||
The idea of ``clusttraj`` is to be an easy to use, and easy to extend platform for clustering trajectories. | ||
|
||
We also focus in providing options for the analysis of solute-solvent systems. | ||
|
||
Limitations | ||
*********** | ||
|
||
``clusttraj`` is limited by the agglomerative clustering algorithms provided by `SciPy <https://www.scipy.org/>`_. | ||
|
||
However, there are many algorithms implemented for one to choose, as can be seen `here <https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.linkage.html>`_. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
/* Compatability shim for jQuery and underscores.js. | ||
* | ||
* Copyright Sphinx contributors | ||
* Released under the two clause BSD licence | ||
*/ | ||
|
||
/** | ||
* small helper function to urldecode strings | ||
* | ||
* See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL | ||
*/ | ||
jQuery.urldecode = function(x) { | ||
if (!x) { | ||
return x | ||
} | ||
return decodeURIComponent(x.replace(/\+/g, ' ')); | ||
}; | ||
|
||
/** | ||
* small helper function to urlencode strings | ||
*/ | ||
jQuery.urlencode = encodeURIComponent; | ||
|
||
/** | ||
* This function returns the parsed url parameters of the | ||
* current request. Multiple values per key are supported, | ||
* it will always return arrays of strings for the value parts. | ||
*/ | ||
jQuery.getQueryParameters = function(s) { | ||
if (typeof s === 'undefined') | ||
s = document.location.search; | ||
var parts = s.substr(s.indexOf('?') + 1).split('&'); | ||
var result = {}; | ||
for (var i = 0; i < parts.length; i++) { | ||
var tmp = parts[i].split('=', 2); | ||
var key = jQuery.urldecode(tmp[0]); | ||
var value = jQuery.urldecode(tmp[1]); | ||
if (key in result) | ||
result[key].push(value); | ||
else | ||
result[key] = [value]; | ||
} | ||
return result; | ||
}; | ||
|
||
/** | ||
* highlight a given string on a jquery object by wrapping it in | ||
* span elements with the given class name. | ||
*/ | ||
jQuery.fn.highlightText = function(text, className) { | ||
function highlight(node, addItems) { | ||
if (node.nodeType === 3) { | ||
var val = node.nodeValue; | ||
var pos = val.toLowerCase().indexOf(text); | ||
if (pos >= 0 && | ||
!jQuery(node.parentNode).hasClass(className) && | ||
!jQuery(node.parentNode).hasClass("nohighlight")) { | ||
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; | ||
} | ||
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 rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); | ||
var bbox = node.parentElement.getBBox(); | ||
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); | ||
addItems.push({ | ||
"parent": node.parentNode, | ||
"target": rect}); | ||
} | ||
} | ||
} | ||
else if (!jQuery(node).is("button, select, textarea")) { | ||
jQuery.each(node.childNodes, function() { | ||
highlight(this, addItems); | ||
}); | ||
} | ||
} | ||
var addItems = []; | ||
var result = this.each(function() { | ||
highlight(this, addItems); | ||
}); | ||
for (var i = 0; i < addItems.length; ++i) { | ||
jQuery(addItems[i].parent).before(addItems[i].target); | ||
} | ||
return result; | ||
}; | ||
|
||
/* | ||
* backward compatibility for jQuery.browser | ||
* This will be supported until firefox bug is fixed. | ||
*/ | ||
if (!jQuery.browser) { | ||
jQuery.uaMatch = function(ua) { | ||
ua = ua.toLowerCase(); | ||
|
||
var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || | ||
/(webkit)[ \/]([\w.]+)/.exec(ua) || | ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || | ||
/(msie) ([\w.]+)/.exec(ua) || | ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || | ||
[]; | ||
|
||
return { | ||
browser: match[ 1 ] || "", | ||
version: match[ 2 ] || "0" | ||
}; | ||
}; | ||
jQuery.browser = {}; | ||
jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; | ||
} |
Oops, something went wrong.