diff --git a/modules/mol/alg/doc/molalg.rst b/modules/mol/alg/doc/molalg.rst
index 2292b77202f10467edab34c83d8323b3005955fb..c31c9ffc6d441d8ad735577219aa19b0e7ba8101 100644
--- a/modules/mol/alg/doc/molalg.rst
+++ b/modules/mol/alg/doc/molalg.rst
@@ -867,4 +867,11 @@ used to skip frames in the analysis.
 
 .. autofunction:: ost.mol.alg.helix_kinks.AnalyzeHelixKink
 
+:mod:`mol.alg.trajectory_analysis <ost.mol.alg.trajectory_analysis>` -- DRMSD, pairwise distances and more
+=============================================================================================================
+
+.. automodule:: ost.mol.alg.trajectory_analysis
+   :members:
+
+
 
diff --git a/modules/mol/alg/pymod/trajectory_analysis.py b/modules/mol/alg/pymod/trajectory_analysis.py
index 064135c32684bf0fcb6cc068e38673ae432fcb02..709d6793fbca050994d06f3157488b02161eb596 100644
--- a/modules/mol/alg/pymod/trajectory_analysis.py
+++ b/modules/mol/alg/pymod/trajectory_analysis.py
@@ -1,7 +1,10 @@
 """
-Some functions for analyzing trajectories
+**This Module requires numpy**
 
-Author: Niklaus Johner
+This module contains functions to analyze trajectories, mainly 
+similiraty measures baed on RMSDS and pairwise distances.
+
+Author: Niklaus Johner (niklaus.johner@unibas.ch)
 """
 
 import ost.mol.alg
@@ -55,14 +58,20 @@ From here on the module needs numpy
 def RMSD_Matrix_From_Traj(t,sele,first=0,last=-1):
   """
   This function calculates a matrix M such that M[i,j] is the
-  RMSD of the EntityView sele between frames i and j of the trajectory t
+  RMSD (calculated on **sele**) between frames i and j of the trajectory **t**
   aligned on sele.
-  Its inputs are:
-    t       : the trajectory (CoordGroupHandle)
-    sele    : the EntityView used for alignment and RMSD calculation
-    first=0 : the first frame of t to be used
-    last=-1 : the last frame of t to be used
-  Returns a numpy NxN matrix, where n is the number of frames.
+
+  :param t: the trajectory
+  :param sele: the selection used for alignment and RMSD calculation
+  :param first: the first frame of t to be used
+  :param last: the last frame of t to be used
+  :type t: :class:`~ost.mol.CoordGroupHandle`
+  :type sele: :class:`~ost.mol.EntityView`
+  :type first: :class:`int`
+  :type last: :class:`int`
+
+  :return: Returns a numpy N\ :subscript:`frames`\ xN\ :subscript:`frames` matrix, 
+   where N\ :subscript:`frames` is the number of frames.
   """
   try:
     import numpy as npy
@@ -85,17 +94,23 @@ def RMSD_Matrix_From_Traj(t,sele,first=0,last=-1):
 
 def PairwiseDistancesFromTraj(t,sele,first=0,last=-1,seq_sep=1):
   """
-  This function calculates the distances between any pair of atoms in the
-  EntityView sele  with sequence separation larger than seq_sep from a trajectory t.
-  It return a matrix containing one line for each atom pair and N columns, where
-  N is the length of the trajectory.
-  Its inputs are:
-    t       : the trajectory (CoordGroupHandle)
-    sele    : the EntityView used to determine the atom pairs
-    first=0 : the first frame of t to be used
-    last=-1 : the last frame of t to be used
-    seq_sep=1 : The minimal sequence separation between
-  Returns a numpy NpairsxNframes matrix.
+  This function calculates the distances between any pair of atoms in **sele**  
+  with sequence separation larger than **seq_sep** from a trajectory **t**.
+  It return a matrix containing one line for each atom pair and N\ :subscript:`frames` columns, where
+  N\ :subscript:`frames` is the number of frames in the trajectory.
+  
+  :param t: the trajectory
+  :param sele: the selection used to determine the atom pairs
+  :param first: the first frame of t to be used
+  :param last: the last frame of t to be used
+  :param seq_sep: The minimal sequence separation between atom pairs
+  :type t: :class:`~ost.mol.CoordGroupHandle`
+  :type sele: :class:`~ost.mol.EntityView`
+  :type first: :class:`int`
+  :type last: :class:`int`
+  :type seq_sep: :class:`int`
+
+  :return: a numpy N\ :subscript:`pairs`\ xN\ :subscript:`frames` matrix.
   """
   try:
     import numpy as npy
@@ -122,15 +137,20 @@ def PairwiseDistancesFromTraj(t,sele,first=0,last=-1,seq_sep=1):
     
 def DistanceMatrixFromPairwiseDistances(distances,p=2):
   """
-  This function calculates an distance matrix M(NxN) from
-  the pairwise distances matrix D(MxN), where N is the number
-  of frames in the trajectory and M the number of atom pairs.
+  This function calculates an distance matrix M(N\ :subscript:`frames`\ xN\ :subscript:`frames`\ ) from
+  the pairwise distances matrix D(N\ :subscript:`pairs`\ xN\ :subscript:`frames`\ ), where 
+  N\ :subscript:`frames` is the number of frames in the trajectory
+  and N\ :subscript:`pairs` the number of atom pairs.
   M[i,j] is the distance between frame i and frame j
   calculated as a p-norm of the differences in distances
   from the two frames (distance-RMSD for p=2).
-  Inputs:
-    distances : a pairwise distance matrix as obtained from PairwiseDistancesFromTraj()
-  Returns a numpy NxN matrix, where N is the number of frames.
+
+  :param distances: a pairwise distance matrix as obtained from 
+   :py:func:`~mol.alg.trajectory_analysis.PairwiseDistancesFromTraj`
+  :param p: exponent used for the p-norm.
+
+  :return: a numpy N\ :subscript:`frames`\ xN\ :subscript:`frames` matrix, where N\ :subscript:`frames`
+   is the number of frames.
   """
   try:
     import numpy as npy
@@ -152,18 +172,29 @@ def DistRMSDFromTraj(t,sele,ref_sele,radius=7.0,average=False,seq_sep=4,first=0,
   """
   This function calculates the distance RMSD from a trajectory.
   The distances selected for the calculation are all the distances
-  between pair of atoms that from residues that are at least seq_sep apart
-  in the sequence and that are smaller than radius in ref_sel.
-  The number and order of atoms in ref_sele and sele should be the same.
-  Its inputs are:
-    t       : the trajectory (CoordGroupHandle)
-    sele    : the EntityView used to determine the distances from t
-    radius=7  : the upper limit of distances in ref_sele considered for the calculation
-    seq_sep=4 : The minimal sequence separation between atom pairs considered for the calculation 
-    average=false : use the average distance in the trajectory as reference instead of the distance obtained from ref_sele
-    first=0 : the first frame of t to be used
-    last=-1 : the last frame of t to be used
-  Returns a numpy vecor dist_rmsd(Nframes).  
+  between pair of atoms from residues that are at least **seq_sep** apart
+  in the sequence and that are smaller than **radius** in **ref_sel**.
+  The number and order of atoms in **ref_sele** and **sele** should be the same.
+
+  :param t: the trajectory
+  :param sele: the selection used to calculate the distance RMSD
+  :param ref_sele: the reference selection used to determine the atom pairs and reference distances
+  :param radius: the upper limit of distances in ref_sele considered for the calculation
+  :param seq_sep: the minimal sequence separation between atom pairs considered for the calculation 
+  :param average: use the average distance in the trajectory as reference instead of the distance obtained from ref_sele
+  :param first: the first frame of t to be used
+  :param last: the last frame of t to be used
+  
+  :type t: :class:`~ost.mol.CoordGroupHandle`
+  :type sele: :class:`~ost.mol.EntityView`
+  :type ref_sele: :class:`~ost.mol.EntityView`
+  :type radius: :class:`float`
+  :type average: :class:`bool`
+  :type first: :class:`int`
+  :type last: :class:`int`
+  :type seq_sep: :class:`int`
+
+  :return: a numpy vecor dist_rmsd(N\ :subscript:`frames`).  
   """
   if not sele.GetAtomCount()==ref_sele.GetAtomCount():
     print 'Not same number of atoms in the two views'
@@ -197,6 +228,22 @@ def DistRMSDFromTraj(t,sele,ref_sele,radius=7.0,average=False,seq_sep=4,first=0,
     raise
     
 def AverageDistanceMatrixFromTraj(t,sele,first=0,last=-1):
+  """
+  This function calcultes the distance between each pair of atoms
+  in **sele**, averaged over the trajectory **t**.
+
+  :param t: the trajectory
+  :param sele: the selection used to determine the atom pairs
+  :param first: the first frame of t to be used
+  :param last: the last frame of t to be used
+  :type t: :class:`~ost.mol.CoordGroupHandle`
+  :type sele: :class:`~ost.mol.EntityView`
+  :type first: :class:`int`
+  :type last: :class:`int`
+
+  :return: a numpy N\ :subscript:`pairs`\ xN\ :subscript:`pairs` matrix, where N\ :subscript:`pairs`
+   is the number of atom pairs in **sele**.
+  """
   try:
     import numpy as npy
   except ImportError: