7676 >>> import MDAnalysis.analysis.encore as encore
7777 >>> from MDAnalysis.tests.datafiles import PSF, DCD, DCD2
7878
79-
8079To calculate the Harmonic Ensemble Similarity (:func:`hes`)
8180two ensemble objects are first created and then used for calculation: ::
8281
8382 >>> ens1 = Universe(PSF, DCD)
8483 >>> ens2 = Universe(PSF, DCD2)
85- >>> print encore.hes([ens1, ens2])
86- (array([[ 0. , 38279683.95892926],
87- [ 38279683.95892926, 0. ]]), None)
84+ >>> HES, details = encore.hes([ens1, ens2])
85+ >>> print(HES)
86+ [[ 0. , 38279683.95892926],
87+ [ 38279683.95892926, 0. ]]
8888
89- Here None is returned in the array as the default details parameter is False.
9089HES can assume any non-negative value, i.e. no upper bound exists and the
9190measurement can therefore be used as an absolute scale.
9291
10099 >>> ens1 = Universe(PSF, DCD)
101100 >>> ens2 = Universe(PSF, DCD2)
102101 >>> CES, details = encore.ces([ens1, ens2])
103- >>> print CES
102+ >>> print( CES)
104103 [[ 0. 0.68070702]
105104 [ 0.68070702 0. ]]
106105
133132
134133 >>> DRES,details = encore.dres([ens1, ens2],
135134 distance_matrix = rmsd_matrix)
136- >>> print DRES
135+ >>> print( DRES)
137136 [[ 0. , 0.67453198]
138137 [ 0.67453198, 0. ]]
139138
@@ -721,7 +720,6 @@ def hes(ensembles,
721720 cov_estimator = "shrinkage" ,
722721 weights = 'mass' ,
723722 align = False ,
724- details = False ,
725723 estimate_error = False ,
726724 bootstrapping_samples = 100 ,
727725 calc_diagonal = False ):
@@ -747,9 +745,6 @@ def hes(ensembles,
747745 Note: this changes the ensembles in-place, and will thus leave your
748746 ensembles in an altered state.
749747 (default is False)
750- details : bool, optional
751- Save the mean and covariance matrix for each
752- ensemble in a numpy array (default is False).
753748 estimate_error : bool, optional
754749 Whether to perform error estimation (default is False).
755750 bootstrapping_samples : int, optional
@@ -762,8 +757,9 @@ def hes(ensembles,
762757
763758 Returns
764759 -------
765- numpy.array (bidimensional)
766- Harmonic similarity measurements between each pair of ensembles.
760+ hes, details : numpy.array, dictionary
761+ Harmonic similarity measurements between each pair of ensembles,
762+ and dict containing mean and covariance matrix for each ensemble
767763
768764 Notes
769765 -----
@@ -804,7 +800,7 @@ def hes(ensembles,
804800 >>> ens1 = Universe(PSF, DCD)
805801 >>> ens2 = Universe(PSF, DCD2)
806802 >>> HES, details = encore.hes([ens1, ens2])
807- >>> print HES
803+ >>> print( HES)
808804 [[ 0. 38279683.95892926]
809805 [ 38279683.95892926 0. ]]
810806
@@ -813,7 +809,7 @@ def hes(ensembles,
813809 align everything to the current timestep in the first ensemble. Note that
814810 this changes the ens1 and ens2 objects:
815811
816- >>> print encore.hes([ens1, ens2], align=True)[0]
812+ >>> print( encore.hes([ens1, ens2], align=True)[0])
817813 [[ 0. 6880.34140106]
818814 [ 6880.34140106 0. ]]
819815
@@ -823,9 +819,14 @@ def hes(ensembles,
823819 >>> from MDAnalysis.analysis import align
824820 >>> align.AlignTraj(ens1, ens1, select="name CA", in_memory=True).run()
825821 >>> align.AlignTraj(ens2, ens1, select="name CA", in_memory=True).run()
826- >>> print encore.hes([ens1, ens2])[0]
822+ >>> print( encore.hes([ens1, ens2])[0])
827823 [[ 0. 7032.19607004]
828824 [ 7032.19607004 0. ]]
825+
826+ .. versionchanged:: 1.0.0
827+ hes doesn't accept the *details* argument anymore, it always returns the
828+ details of the calculation instead, in the form of a dictionary
829+
829830 """
830831
831832 if not isinstance (weights , (list , tuple , np .ndarray )) and weights == 'mass' :
@@ -937,15 +938,10 @@ def hes(ensembles,
937938 values [j , i ] = value
938939
939940 # Save details as required
940- if details :
941- kwds = {}
942- for i in range (out_matrix_eln ):
943- kwds ['ensemble{0:d}_mean' .format (i + 1 )] = xs [i ]
944- kwds ['ensemble{0:d}_covariance_matrix' .format (i + 1 )] = sigmas [i ]
945- details = np .array (kwds )
946-
947- else :
948- details = None
941+ details = {}
942+ for i in range (out_matrix_eln ):
943+ details ['ensemble{0:d}_mean' .format (i + 1 )] = xs [i ]
944+ details ['ensemble{0:d}_covariance_matrix' .format (i + 1 )] = sigmas [i ]
949945
950946 return values , details
951947
@@ -1060,8 +1056,8 @@ def ces(ensembles,
10601056
10611057 >>> ens1 = Universe(PSF, DCD)
10621058 >>> ens2 = Universe(PSF, DCD2)
1063- >>> CES,details = encore.ces([ens1,ens2])
1064- >>> print CES
1059+ >>> CES, details = encore.ces([ens1,ens2])
1060+ >>> print( CES)
10651061 [[ 0. 0.68070702]
10661062 [ 0.68070702 0. ]]
10671063
@@ -1073,10 +1069,10 @@ def ces(ensembles,
10731069 >>> CES, details = encore.ces([ens1,ens2],
10741070 clustering_method = [encore.DBSCAN(eps=0.45),
10751071 encore.DBSCAN(eps=0.50)])
1076- >>> print "eps=0.45: ", CES[0]
1072+ >>> print( "eps=0.45: ", CES[0])
10771073 eps=0.45: [[ 0. 0.20447236]
10781074 [ 0.20447236 0. ]]
1079- >>> print "eps=0.5: ", CES[1]
1075+ >>> print( "eps=0.5: ", CES[1])
10801076 eps=0.5: [[ 0. 0.25331629]
10811077 [ 0.25331629 0. ]]"
10821078
@@ -1336,7 +1332,7 @@ def dres(ensembles,
13361332 >>> ens1 = Universe(PSF,DCD)
13371333 >>> ens2 = Universe(PSF,DCD2)
13381334 >>> DRES, details = encore.dres([ens1,ens2])
1339- >>> print DRES
1335+ >>> print( DRES)
13401336 [[ 0. 0.67996043]
13411337 [ 0.67996043 0. ]]
13421338
@@ -1352,7 +1348,7 @@ def dres(ensembles,
13521348
13531349 >>> DRES, details = encore.dres([ens1,ens2],
13541350 dimensionality_reduction_method = encore.PrincipalComponentAnalysis(dimension=2))
1355- >>> print DRES
1351+ >>> print( DRES)
13561352 [[ 0. 0.69314718]
13571353 [ 0.69314718 0. ]]
13581354
@@ -1549,7 +1545,7 @@ def ces_convergence(original_ensemble,
15491545
15501546 >>> ens1 = Universe(PSF,DCD)
15511547 >>> ces_conv = encore.ces_convergence(ens1, 10)
1552- >>> print ces_conv
1548+ >>> print( ces_conv)
15531549 [[ 0.48194205]
15541550 [ 0.40284672]
15551551 [ 0.31699026]
@@ -1658,7 +1654,7 @@ def dres_convergence(original_ensemble,
16581654
16591655 >>> ens1 = Universe(PSF,DCD)
16601656 >>> dres_conv = encore.dres_convergence(ens1, 10)
1661- >>> print dres_conv
1657+ >>> print( dres_conv)
16621658 [[ 0.5295528 ]
16631659 [ 0.40716539]
16641660 [ 0.31158669]
0 commit comments