sequenzo 0.1.17__cp39-cp39-macosx_10_9_universal2.whl → 0.1.19__cp39-cp39-macosx_10_9_universal2.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of sequenzo might be problematic. Click here for more details.

Files changed (423) hide show
  1. sequenzo/__init__.py +64 -8
  2. sequenzo/big_data/clara/clara.py +1 -1
  3. sequenzo/big_data/clara/utils/get_weighted_diss.c +157 -157
  4. sequenzo/big_data/clara/utils/get_weighted_diss.cpython-39-darwin.so +0 -0
  5. sequenzo/clustering/KMedoids.py +39 -0
  6. sequenzo/clustering/hierarchical_clustering.py +304 -8
  7. sequenzo/define_sequence_data.py +44 -3
  8. sequenzo/dissimilarity_measures/c_code.cpython-39-darwin.so +0 -0
  9. sequenzo/dissimilarity_measures/get_distance_matrix.py +1 -2
  10. sequenzo/dissimilarity_measures/get_substitution_cost_matrix.py +1 -1
  11. sequenzo/dissimilarity_measures/src/DHDdistance.cpp +13 -37
  12. sequenzo/dissimilarity_measures/src/LCPdistance.cpp +13 -37
  13. sequenzo/dissimilarity_measures/src/OMdistance.cpp +12 -47
  14. sequenzo/dissimilarity_measures/src/OMspellDistance.cpp +103 -67
  15. sequenzo/dissimilarity_measures/src/dp_utils.h +160 -0
  16. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_arithmetic.hpp +41 -16
  17. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_complex.hpp +4 -0
  18. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_details.hpp +7 -0
  19. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_logical.hpp +10 -0
  20. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_math.hpp +127 -43
  21. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_memory.hpp +30 -2
  22. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_swizzle.hpp +174 -0
  23. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_trigo.hpp +14 -5
  24. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx.hpp +111 -54
  25. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx2.hpp +131 -9
  26. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512bw.hpp +11 -113
  27. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512dq.hpp +39 -7
  28. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512f.hpp +336 -30
  29. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512vbmi.hpp +9 -37
  30. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512vbmi2.hpp +58 -0
  31. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_common.hpp +1 -0
  32. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_common_fwd.hpp +35 -2
  33. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_constants.hpp +3 -1
  34. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_emulated.hpp +17 -0
  35. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_fma3_avx.hpp +13 -0
  36. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_fma3_sse.hpp +18 -0
  37. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_fma4.hpp +13 -0
  38. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_isa.hpp +8 -0
  39. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_neon.hpp +363 -34
  40. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_neon64.hpp +7 -0
  41. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_rvv.hpp +13 -0
  42. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_scalar.hpp +41 -4
  43. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_sse2.hpp +252 -16
  44. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_sse3.hpp +9 -0
  45. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_ssse3.hpp +12 -1
  46. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_sve.hpp +7 -0
  47. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_vsx.hpp +892 -0
  48. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_wasm.hpp +78 -1
  49. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/config/xsimd_arch.hpp +3 -1
  50. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/config/xsimd_config.hpp +13 -2
  51. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/config/xsimd_cpuid.hpp +5 -0
  52. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/config/xsimd_inline.hpp +5 -1
  53. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_all_registers.hpp +2 -0
  54. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_api.hpp +64 -1
  55. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_batch.hpp +36 -0
  56. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_rvv_register.hpp +40 -31
  57. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_traits.hpp +8 -0
  58. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_vsx_register.hpp +77 -0
  59. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/xsimd.hpp +6 -0
  60. sequenzo/dissimilarity_measures/utils/get_sm_trate_substitution_cost_matrix.c +157 -157
  61. sequenzo/dissimilarity_measures/utils/get_sm_trate_substitution_cost_matrix.cpython-39-darwin.so +0 -0
  62. sequenzo/dissimilarity_measures/utils/seqconc.c +157 -157
  63. sequenzo/dissimilarity_measures/utils/seqconc.cpython-39-darwin.so +0 -0
  64. sequenzo/dissimilarity_measures/utils/seqdss.c +157 -157
  65. sequenzo/dissimilarity_measures/utils/seqdss.cpython-39-darwin.so +0 -0
  66. sequenzo/dissimilarity_measures/utils/seqdur.c +157 -157
  67. sequenzo/dissimilarity_measures/utils/seqdur.cpython-39-darwin.so +0 -0
  68. sequenzo/dissimilarity_measures/utils/seqlength.c +157 -157
  69. sequenzo/dissimilarity_measures/utils/seqlength.cpython-39-darwin.so +0 -0
  70. sequenzo/multidomain/cat.py +0 -53
  71. sequenzo/multidomain/idcd.py +0 -1
  72. sequenzo/openmp_setup.py +233 -0
  73. sequenzo/sequence_characteristics/__init__.py +4 -0
  74. sequenzo/sequence_characteristics/complexity_index.py +17 -57
  75. sequenzo/sequence_characteristics/overall_cross_sectional_entropy.py +177 -111
  76. sequenzo/sequence_characteristics/plot_characteristics.py +30 -11
  77. sequenzo/sequence_characteristics/simple_characteristics.py +1 -0
  78. sequenzo/sequence_characteristics/state_frequencies_and_entropy_per_sequence.py +9 -3
  79. sequenzo/sequence_characteristics/turbulence.py +47 -67
  80. sequenzo/sequence_characteristics/variance_of_spell_durations.py +19 -9
  81. sequenzo/sequence_characteristics/within_sequence_entropy.py +5 -58
  82. sequenzo/visualization/plot_sequence_index.py +58 -35
  83. sequenzo/visualization/plot_state_distribution.py +57 -36
  84. sequenzo/visualization/plot_transition_matrix.py +21 -22
  85. sequenzo/with_event_history_analysis/__init__.py +35 -0
  86. sequenzo/with_event_history_analysis/sequence_analysis_multi_state_model.py +850 -0
  87. sequenzo/with_event_history_analysis/sequence_history_analysis.py +283 -0
  88. {sequenzo-0.1.17.dist-info → sequenzo-0.1.19.dist-info}/METADATA +48 -14
  89. sequenzo-0.1.19.dist-info/RECORD +215 -0
  90. sequenzo/dissimilarity_measures/setup.py +0 -35
  91. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Cholesky/LDLT.h +0 -688
  92. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Cholesky/LLT.h +0 -558
  93. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +0 -99
  94. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +0 -682
  95. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +0 -346
  96. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +0 -462
  97. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +0 -91
  98. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/EigenSolver.h +0 -622
  99. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +0 -418
  100. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +0 -226
  101. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +0 -374
  102. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +0 -158
  103. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/RealQZ.h +0 -657
  104. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/RealSchur.h +0 -558
  105. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +0 -77
  106. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +0 -904
  107. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +0 -87
  108. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +0 -561
  109. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/AlignedBox.h +0 -486
  110. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/AngleAxis.h +0 -247
  111. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/EulerAngles.h +0 -114
  112. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Homogeneous.h +0 -501
  113. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Hyperplane.h +0 -282
  114. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/OrthoMethods.h +0 -235
  115. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/ParametrizedLine.h +0 -232
  116. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Quaternion.h +0 -870
  117. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Rotation2D.h +0 -199
  118. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/RotationBase.h +0 -206
  119. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Scaling.h +0 -188
  120. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Transform.h +0 -1563
  121. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Translation.h +0 -202
  122. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Umeyama.h +0 -166
  123. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +0 -168
  124. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Householder/BlockHouseholder.h +0 -110
  125. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Householder/Householder.h +0 -176
  126. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Householder/HouseholderSequence.h +0 -545
  127. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +0 -226
  128. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +0 -212
  129. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +0 -229
  130. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +0 -394
  131. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +0 -453
  132. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +0 -444
  133. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +0 -198
  134. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +0 -117
  135. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Jacobi/Jacobi.h +0 -483
  136. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/KLUSupport/KLUSupport.h +0 -358
  137. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/Determinant.h +0 -117
  138. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/FullPivLU.h +0 -877
  139. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/InverseImpl.h +0 -432
  140. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/PartialPivLU.h +0 -624
  141. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +0 -83
  142. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/arch/InverseSize4.h +0 -351
  143. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/MetisSupport/MetisSupport.h +0 -137
  144. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/OrderingMethods/Amd.h +0 -435
  145. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +0 -1863
  146. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/OrderingMethods/Ordering.h +0 -153
  147. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +0 -678
  148. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +0 -545
  149. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/ColPivHouseholderQR.h +0 -674
  150. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +0 -97
  151. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +0 -635
  152. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/FullPivHouseholderQR.h +0 -713
  153. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/HouseholderQR.h +0 -434
  154. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h +0 -68
  155. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +0 -335
  156. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/BDCSVD.h +0 -1366
  157. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/JacobiSVD.h +0 -812
  158. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +0 -91
  159. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/SVDBase.h +0 -376
  160. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/UpperBidiagonalization.h +0 -414
  161. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +0 -697
  162. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +0 -174
  163. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/AmbiVector.h +0 -378
  164. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/CompressedStorage.h +0 -274
  165. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +0 -352
  166. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h +0 -67
  167. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseAssign.h +0 -270
  168. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseBlock.h +0 -571
  169. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseColEtree.h +0 -206
  170. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +0 -370
  171. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +0 -722
  172. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +0 -150
  173. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +0 -342
  174. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h +0 -138
  175. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseDot.h +0 -98
  176. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseFuzzy.h +0 -29
  177. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseMap.h +0 -305
  178. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseMatrix.h +0 -1518
  179. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +0 -398
  180. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparsePermutation.h +0 -178
  181. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseProduct.h +0 -181
  182. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseRedux.h +0 -49
  183. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseRef.h +0 -397
  184. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +0 -659
  185. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseSolverBase.h +0 -124
  186. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +0 -198
  187. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseTranspose.h +0 -92
  188. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseTriangularView.h +0 -189
  189. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseUtil.h +0 -186
  190. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseVector.h +0 -478
  191. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseView.h +0 -254
  192. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/TriangularSolver.h +0 -315
  193. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU.h +0 -923
  194. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLUImpl.h +0 -66
  195. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +0 -226
  196. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_Structs.h +0 -110
  197. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +0 -375
  198. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_Utils.h +0 -80
  199. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h +0 -181
  200. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +0 -179
  201. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +0 -107
  202. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +0 -280
  203. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +0 -126
  204. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +0 -130
  205. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +0 -223
  206. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h +0 -258
  207. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h +0 -137
  208. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h +0 -136
  209. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h +0 -83
  210. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseQR/SparseQR.h +0 -758
  211. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/StlSupport/StdDeque.h +0 -116
  212. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/StlSupport/StdList.h +0 -106
  213. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/StlSupport/StdVector.h +0 -131
  214. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/StlSupport/details.h +0 -84
  215. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +0 -1025
  216. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +0 -642
  217. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/Image.h +0 -82
  218. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/Kernel.h +0 -79
  219. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/RealSvd2x2.h +0 -55
  220. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/blas.h +0 -440
  221. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/lapack.h +0 -152
  222. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/lapacke.h +0 -16292
  223. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/lapacke_mangling.h +0 -17
  224. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +0 -358
  225. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +0 -696
  226. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/BlockMethods.h +0 -1442
  227. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h +0 -115
  228. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h +0 -177
  229. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/IndexedViewMethods.h +0 -262
  230. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +0 -152
  231. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +0 -95
  232. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/ReshapedMethods.h +0 -149
  233. sequenzo/dissimilarity_measures/src/eigen/blas/BandTriangularSolver.h +0 -97
  234. sequenzo/dissimilarity_measures/src/eigen/blas/GeneralRank1Update.h +0 -44
  235. sequenzo/dissimilarity_measures/src/eigen/blas/PackedSelfadjointProduct.h +0 -53
  236. sequenzo/dissimilarity_measures/src/eigen/blas/PackedTriangularMatrixVector.h +0 -79
  237. sequenzo/dissimilarity_measures/src/eigen/blas/PackedTriangularSolverVector.h +0 -88
  238. sequenzo/dissimilarity_measures/src/eigen/blas/Rank2Update.h +0 -57
  239. sequenzo/dissimilarity_measures/src/eigen/blas/common.h +0 -175
  240. sequenzo/dissimilarity_measures/src/eigen/blas/f2c/datatypes.h +0 -24
  241. sequenzo/dissimilarity_measures/src/eigen/blas/level1_cplx_impl.h +0 -155
  242. sequenzo/dissimilarity_measures/src/eigen/blas/level1_impl.h +0 -144
  243. sequenzo/dissimilarity_measures/src/eigen/blas/level1_real_impl.h +0 -122
  244. sequenzo/dissimilarity_measures/src/eigen/blas/level2_cplx_impl.h +0 -360
  245. sequenzo/dissimilarity_measures/src/eigen/blas/level2_impl.h +0 -553
  246. sequenzo/dissimilarity_measures/src/eigen/blas/level2_real_impl.h +0 -306
  247. sequenzo/dissimilarity_measures/src/eigen/blas/level3_impl.h +0 -702
  248. sequenzo/dissimilarity_measures/src/eigen/debug/gdb/__init__.py +0 -1
  249. sequenzo/dissimilarity_measures/src/eigen/debug/gdb/printers.py +0 -314
  250. sequenzo/dissimilarity_measures/src/eigen/lapack/lapack_common.h +0 -29
  251. sequenzo/dissimilarity_measures/src/eigen/scripts/relicense.py +0 -69
  252. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/Tensor.h +0 -554
  253. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h +0 -329
  254. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h +0 -247
  255. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h +0 -1176
  256. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h +0 -1559
  257. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h +0 -1093
  258. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h +0 -518
  259. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h +0 -377
  260. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h +0 -1023
  261. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h +0 -73
  262. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h +0 -6
  263. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionGpu.h +0 -1413
  264. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h +0 -575
  265. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h +0 -1650
  266. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h +0 -1679
  267. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h +0 -456
  268. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h +0 -1132
  269. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h +0 -544
  270. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h +0 -214
  271. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h +0 -347
  272. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h +0 -137
  273. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h +0 -6
  274. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h +0 -104
  275. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceGpu.h +0 -389
  276. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h +0 -1048
  277. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h +0 -409
  278. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h +0 -236
  279. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h +0 -490
  280. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h +0 -236
  281. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h +0 -983
  282. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h +0 -703
  283. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h +0 -388
  284. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h +0 -669
  285. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h +0 -379
  286. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h +0 -237
  287. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h +0 -191
  288. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h +0 -488
  289. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h +0 -302
  290. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h +0 -33
  291. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaDefines.h +0 -99
  292. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaUndefines.h +0 -44
  293. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h +0 -79
  294. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h +0 -603
  295. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h +0 -738
  296. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h +0 -247
  297. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h +0 -82
  298. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h +0 -263
  299. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h +0 -216
  300. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h +0 -98
  301. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h +0 -327
  302. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h +0 -311
  303. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h +0 -1102
  304. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h +0 -708
  305. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h +0 -291
  306. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h +0 -322
  307. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h +0 -998
  308. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h +0 -6
  309. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReductionGpu.h +0 -966
  310. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h +0 -582
  311. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h +0 -454
  312. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h +0 -465
  313. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h +0 -528
  314. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorScanSycl.h +0 -513
  315. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h +0 -471
  316. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h +0 -161
  317. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h +0 -346
  318. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorTrace.h +0 -303
  319. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h +0 -264
  320. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h +0 -249
  321. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h +0 -629
  322. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h +0 -293
  323. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h +0 -236
  324. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h +0 -338
  325. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h +0 -669
  326. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/Barrier.h +0 -67
  327. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h +0 -249
  328. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h +0 -486
  329. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h +0 -236
  330. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadCancel.h +0 -23
  331. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h +0 -40
  332. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h +0 -301
  333. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h +0 -48
  334. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h +0 -20
  335. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/util/CXX11Meta.h +0 -537
  336. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h +0 -88
  337. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/util/EmulateArray.h +0 -261
  338. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h +0 -158
  339. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h +0 -108
  340. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h +0 -730
  341. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h +0 -220
  342. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/BVH/BVAlgorithms.h +0 -293
  343. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/BVH/KdBVH.h +0 -223
  344. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h +0 -790
  345. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/EulerAngles/EulerAngles.h +0 -355
  346. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/EulerAngles/EulerSystem.h +0 -305
  347. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/FFT/ei_fftw_impl.h +0 -261
  348. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/FFT/ei_kissfft_impl.h +0 -449
  349. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h +0 -187
  350. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/DGMRES.h +0 -511
  351. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/GMRES.h +0 -335
  352. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/IDRS.h +0 -436
  353. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h +0 -90
  354. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/IterationController.h +0 -154
  355. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/MINRES.h +0 -267
  356. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/Scaling.h +0 -193
  357. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h +0 -305
  358. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h +0 -84
  359. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h +0 -202
  360. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h +0 -160
  361. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h +0 -188
  362. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h +0 -396
  363. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h +0 -441
  364. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h +0 -569
  365. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h +0 -373
  366. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h +0 -705
  367. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h +0 -368
  368. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/StemFunction.h +0 -117
  369. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MoreVectorization/MathFunctions.h +0 -95
  370. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h +0 -601
  371. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h +0 -657
  372. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/chkder.h +0 -66
  373. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/covar.h +0 -70
  374. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/dogleg.h +0 -107
  375. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h +0 -79
  376. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/lmpar.h +0 -298
  377. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h +0 -91
  378. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h +0 -30
  379. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/r1updt.h +0 -99
  380. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h +0 -49
  381. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h +0 -130
  382. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Polynomials/Companion.h +0 -280
  383. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Polynomials/PolynomialSolver.h +0 -428
  384. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Polynomials/PolynomialUtils.h +0 -143
  385. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h +0 -352
  386. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineMatrix.h +0 -862
  387. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h +0 -212
  388. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineProduct.h +0 -295
  389. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineStorage.h +0 -259
  390. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineUtil.h +0 -89
  391. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h +0 -122
  392. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h +0 -1079
  393. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h +0 -404
  394. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/MarketIO.h +0 -282
  395. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h +0 -247
  396. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/RandomSetter.h +0 -349
  397. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsArrayAPI.h +0 -286
  398. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsBFloat16.h +0 -68
  399. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsFunctors.h +0 -357
  400. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsHalf.h +0 -66
  401. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsImpl.h +0 -1959
  402. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsPacketMath.h +0 -118
  403. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/HipVectorCompatibility.h +0 -67
  404. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h +0 -167
  405. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsBFloat16.h +0 -58
  406. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h +0 -330
  407. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h +0 -58
  408. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h +0 -2045
  409. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h +0 -79
  410. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/AVX/BesselFunctions.h +0 -46
  411. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/AVX/SpecialFunctions.h +0 -16
  412. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/BesselFunctions.h +0 -46
  413. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/SpecialFunctions.h +0 -16
  414. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/GPU/SpecialFunctions.h +0 -369
  415. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/NEON/BesselFunctions.h +0 -54
  416. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/NEON/SpecialFunctions.h +0 -34
  417. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Splines/Spline.h +0 -507
  418. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Splines/SplineFitting.h +0 -431
  419. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Splines/SplineFwd.h +0 -93
  420. sequenzo-0.1.17.dist-info/RECORD +0 -537
  421. {sequenzo-0.1.17.dist-info → sequenzo-0.1.19.dist-info}/WHEEL +0 -0
  422. {sequenzo-0.1.17.dist-info → sequenzo-0.1.19.dist-info}/licenses/LICENSE +0 -0
  423. {sequenzo-0.1.17.dist-info → sequenzo-0.1.19.dist-info}/top_level.txt +0 -0
@@ -14,6 +14,45 @@ clustering_c_code = importlib.import_module("sequenzo.clustering.clustering_c_co
14
14
 
15
15
  from sequenzo.clustering.utils.disscenter import disscentertrim
16
16
 
17
+ import glob
18
+ import os
19
+ import sys
20
+ import cffi
21
+
22
+ ffi = cffi.FFI()
23
+
24
+ if sys.platform.startswith("win"):
25
+ files = glob.glob(os.path.join(os.path.dirname(__file__), "*.pyd"))
26
+ else:
27
+ files = glob.glob(os.path.join(os.path.dirname(__file__), "*.so"))
28
+
29
+ if not files:
30
+ raise FileNotFoundError("No compiled library found")
31
+
32
+ lib_file = files[0]
33
+
34
+ try:
35
+ # 重定向 stderr 来抑制 cffi 的错误信息输出
36
+ import io
37
+ old_stderr = sys.stderr
38
+ sys.stderr = io.StringIO()
39
+ try:
40
+ lib = ffi.dlopen(lib_file)
41
+ finally:
42
+ # 恢复 stderr
43
+ sys.stderr = old_stderr
44
+ except ImportError as e:
45
+ if sys.platform.startswith("win") and 'cffi mode "ANY" is only "ABI"' in str(e):
46
+ # Windows 降级到 ABI 模式,同样抑制错误信息
47
+ old_stderr = sys.stderr
48
+ sys.stderr = io.StringIO()
49
+ try:
50
+ lib = ffi.dlopen(lib_file)
51
+ finally:
52
+ sys.stderr = old_stderr
53
+ else:
54
+ raise
55
+
17
56
  def KMedoids(diss, k, weights=None, npass=1, initialclust=None, method='PAMonce', cluster_only=False):
18
57
 
19
58
  # Lazily import the c_code module to avoid circular dependencies during installation
@@ -75,6 +75,26 @@ from scipy.spatial.distance import squareform
75
75
  # sklearn metrics no longer needed - using C++ implementation
76
76
  from fastcluster import linkage
77
77
 
78
+ # Optional R integration for Ward D method
79
+ _RPY2_AVAILABLE = False
80
+ ro = None
81
+ importr = None
82
+
83
+ try:
84
+ import rpy2.robjects as ro
85
+ from rpy2.robjects.packages import importr, PackageNotInstalledError
86
+ _RPY2_AVAILABLE = True
87
+ except Exception:
88
+ # Catch any error during rpy2 import/initialization (e.g., R not installed / R_HOME missing on Windows)
89
+ _RPY2_AVAILABLE = False
90
+
91
+ if not _RPY2_AVAILABLE:
92
+ print("[!] Warning: rpy2 not available or R not properly configured. Ward D clustering method will not be supported.")
93
+ print(" To use Ward D: please install R and properly configure rpy2 (make sure `R --version` works).")
94
+ print(" use 'ward_d2', 'average', 'complete', or 'single' methods.")
95
+ print(" See CRAN: https://cloud.r-project.org.")
96
+ print(" Alternatively, use the 'ward_d2', 'average', 'complete', or 'single' method instead.")
97
+
78
98
  # Import C++ cluster quality functions
79
99
  try:
80
100
  from . import clustering_c_code
@@ -83,12 +103,91 @@ except ImportError:
83
103
  _CPP_AVAILABLE = False
84
104
  print("[!] Warning: C++ cluster quality functions not available. Using Python fallback.")
85
105
 
106
+
86
107
  # Corrected imports: Use relative imports *within* the package.
87
- from ..visualization.utils import save_and_show_results
108
+ from sequenzo.visualization.utils import save_and_show_results
88
109
 
89
110
  # Global flag to ensure Ward warning is only shown once per session
90
111
  _WARD_WARNING_SHOWN = False
91
112
 
113
+ def _ensure_r_environment_and_fastcluster():
114
+ """
115
+ Ensure R runtime is discoverable and R package 'fastcluster' is installed.
116
+ - If R is not available, raise with platform-specific installation instructions
117
+ - Choose CRAN mirror
118
+ - Auto-install 'fastcluster' if not present
119
+ """
120
+ print(' - Checking R runtime environment and fastcluster.')
121
+ # Try to load R runtime via rpy2. If this fails, provide installation instructions.
122
+ try:
123
+ utils = importr('utils')
124
+ except Exception as e:
125
+ # Build platform-specific guidance
126
+ if sys.platform == 'darwin':
127
+ guide = (
128
+ "No available R runtime environment detected.\n"
129
+ "Please install and configure R first:\n"
130
+ "1) Installation: Install R from CRAN (recommended macOS package): https://cloud.r-project.org \n"
131
+ " Or use Homebrew: brew install r\n"
132
+ "2) Verification: Run `R --version` in the terminal to check the version information.\n"
133
+ "3) If the error persists, you can set the environment variable manually:\n"
134
+ " export R_HOME=/Library/Frameworks/R.framework/Resources\n"
135
+ " and ensure that `which R` can locate the R executable."
136
+ )
137
+ elif sys.platform.startswith('linux'):
138
+ guide = (
139
+ "No available R runtime environment detected.\n"
140
+ "Please install and configure R first:\n"
141
+ "1) Installation: Use your distribution's package manager "
142
+ "(e.g., Ubuntu: sudo apt-get install -y r-base; CentOS/RHEL: sudo yum install -y R)\n"
143
+ " or download from CRAN: https://cloud.r-project.org \n"
144
+ "2) Verification: Run `R --version` in the terminal.\n"
145
+ "3) If necessary, set R_HOME to point to the R installation directory (e.g., /usr/lib/R)."
146
+ )
147
+ elif sys.platform == 'win32':
148
+ guide = (
149
+ "No available R runtime environment detected.\n"
150
+ "Please install and configure R first:\n"
151
+ "1) Installation: Download and install R for Windows from CRAN: https://cloud.r-project.org \n"
152
+ "2) Verification: Run `R --version` in PowerShell.\n"
153
+ "3) If the error persists, add the R bin directory to your system PATH environment variable,\n"
154
+ " e.g., C:\\Program Files\\R\\R-x.y.z\\bin; if needed, set R_HOME to that R directory."
155
+ )
156
+ else:
157
+ guide = (
158
+ "No available R runtime environment detected. "
159
+ "Please install R and ensure that `R --version` can be executed from the command line.\n"
160
+ "CRAN: https://cloud.r-project.org"
161
+ )
162
+ raise RuntimeError(f"{guide}\nOriginal error: {e}")
163
+
164
+ # Ensure mirror
165
+ try:
166
+ # If a mirror is not chosen, choose the first (may be reset by user later)
167
+ utils.chooseCRANmirror(ind=1)
168
+ except Exception:
169
+ # Fallback to cloud mirror
170
+ try:
171
+ ro.r('options(repos = c(CRAN = "https://cloud.r-project.org"))')
172
+ except Exception:
173
+ pass
174
+
175
+ # Ensure fastcluster installed
176
+ try:
177
+ importr('fastcluster')
178
+ except PackageNotInstalledError:
179
+ try:
180
+ # Try install with explicit repo and limited parallelism
181
+ utils.install_packages('fastcluster', repos='https://cloud.r-project.org', Ncpus=2)
182
+ importr('fastcluster')
183
+ except Exception as install_err:
184
+ raise RuntimeError(
185
+ "Failed to install R package 'fastcluster' automatically. "
186
+ "Please ensure internet access and a working R toolchain are available. "
187
+ f"Original error: {install_err}"
188
+ )
189
+
190
+
92
191
 
93
192
  def _check_euclidean_compatibility(matrix, method):
94
193
  """
@@ -259,6 +358,79 @@ def _clean_distance_matrix(matrix):
259
358
  return matrix
260
359
 
261
360
 
361
+ def _hclust_to_linkage_matrix(linkage_matrix):
362
+ """
363
+ Convert an R `hclust` object to a SciPy-compatible linkage matrix.
364
+
365
+ This function takes an `hclust` object returned by R (e.g., from
366
+ `fastcluster::hclust`) and converts it into the standard linkage matrix
367
+ format used by SciPy (`scipy.cluster.hierarchy.linkage`), which can be
368
+ used for dendrogram plotting or further clustering analysis in Python.
369
+
370
+ Parameters
371
+ ----------
372
+ linkage_matrix : rpy2.robjects.ListVector
373
+ An R `hclust` object. Expected to contain at least the following fields:
374
+ - 'merge': ndarray of shape (n-1, 2), indicating which clusters are merged
375
+ at each step (negative indices for original observations,
376
+ positive indices for previously merged clusters).
377
+ - 'height': ndarray of shape (n-1,), distances at which merges occur.
378
+ - 'order': ordering of the leaves.
379
+
380
+ Returns
381
+ -------
382
+ Z : numpy.ndarray, shape (n-1, 4), dtype=float
383
+ A SciPy-compatible linkage matrix where each row represents a merge:
384
+ - Z[i, 0] : index of the first cluster (0-based)
385
+ - Z[i, 1] : index of the second cluster (0-based)
386
+ - Z[i, 2] : distance between the merged clusters
387
+ - Z[i, 3] : total number of original samples in the newly formed cluster
388
+
389
+ Notes
390
+ -----
391
+ - The conversion handles the difference in indexing:
392
+ - In R's `hclust`, negative numbers in 'merge' indicate original samples
393
+ and positive numbers indicate previously merged clusters (1-based).
394
+ - In the returned SciPy linkage matrix, all indices are converted to 0-based.
395
+ - The function iteratively tracks cluster sizes to populate the fourth column
396
+ (sample counts) required by SciPy.
397
+ """
398
+
399
+ n = len(linkage_matrix.rx2("order")) # 样本数
400
+ merge = np.array(linkage_matrix.rx2("merge"), dtype=int) # (n-1, 2)
401
+ height = np.array(linkage_matrix.rx2("height"), dtype=float)
402
+
403
+ cluster_sizes = np.ones(n, dtype=int) # 单个样本初始大小 = 1
404
+ Z = np.zeros((n - 1, 4), dtype=float)
405
+
406
+ for i in range(n - 1):
407
+ a, b = merge[i]
408
+
409
+ # R hclust 编号负数表示原始样本
410
+ if a < 0:
411
+ idx1 = -a - 1 # 转成 0-based
412
+ size1 = 1
413
+ else:
414
+ idx1 = n + a - 1 # 已合并簇,0-based
415
+ size1 = cluster_sizes[idx1]
416
+
417
+ if b < 0:
418
+ idx2 = -b - 1
419
+ size2 = 1
420
+ else:
421
+ idx2 = n + b - 1
422
+ size2 = cluster_sizes[idx2]
423
+
424
+ Z[i, 0] = idx1
425
+ Z[i, 1] = idx2
426
+ Z[i, 2] = height[i]
427
+ Z[i, 3] = size1 + size2
428
+
429
+ # 更新 cluster_sizes,用于后续簇
430
+ cluster_sizes = np.append(cluster_sizes, size1 + size2)
431
+
432
+ return Z
433
+
262
434
  class Cluster:
263
435
  def __init__(self,
264
436
  matrix,
@@ -358,12 +530,36 @@ class Cluster:
358
530
  try:
359
531
  # Map our method names to fastcluster's expected method names
360
532
  fastcluster_method = self._map_method_name(self.clustering_method)
361
- linkage_matrix = linkage(self.condensed_matrix, method=fastcluster_method)
362
-
533
+
534
+ if self.clustering_method == "ward_d" or self.clustering_method == "ward":
535
+ if not _RPY2_AVAILABLE:
536
+ raise ImportError(
537
+ "rpy2 is required for Ward D clustering method but is not available or R is not properly configured.\n"
538
+ "Install rpy2 and ensure R is properly set up, or install with: pip install sequenzo[r]\n"
539
+ "Alternatively, use 'ward_d2', 'average', 'complete', or 'single' methods."
540
+ )
541
+ # Ensure R and R package fastcluster are available (auto-install if needed)
542
+ _ensure_r_environment_and_fastcluster()
543
+
544
+ fastcluster_r = importr("fastcluster")
545
+
546
+ # 将 full_matrix 转换为 R 矩阵(直接从 Python 数组创建),避免 rpy2 对大向量长度出错
547
+ # 用‘F’强制按列展开,符合 R 的内存布局(列优先)
548
+ full_matrix_r = ro.r.matrix(ro.FloatVector(self.full_matrix.flatten('F')),
549
+ nrow=self.full_matrix.shape[0], ncol=self.full_matrix.shape[1])
550
+ r_om = ro.r['as.dist'](full_matrix_r)
551
+
552
+ linkage_matrix = fastcluster_r.hclust(r_om, method="ward.D")
553
+
554
+ linkage_matrix = _hclust_to_linkage_matrix(linkage_matrix)
555
+
556
+ else:
557
+ linkage_matrix = linkage(self.condensed_matrix, method=fastcluster_method)
558
+
363
559
  # Apply Ward D correction if needed (divide distances by 2 for classic Ward)
364
- if self.clustering_method == "ward_d":
365
- linkage_matrix = self._apply_ward_d_correction(linkage_matrix)
366
-
560
+ # if self.clustering_method == "ward_d":
561
+ # linkage_matrix = self._apply_ward_d_correction(linkage_matrix)
562
+
367
563
  except Exception as e:
368
564
  raise RuntimeError(
369
565
  f"Failed to compute linkage with method '{self.clustering_method}'. "
@@ -1080,5 +1276,105 @@ class ClusterResults:
1080
1276
  save_and_show_results(save_as, dpi)
1081
1277
 
1082
1278
 
1083
-
1084
-
1279
+ # For xinyi's test, because she can't debug in Jupyter :
1280
+ # Traceback (most recent call last):
1281
+ # File "/Applications/PyCharm.app/Contents/plugins/python-ce/helpers/pydev/_pydevd_bundle/pydevd_comm.py", line 736, in make_thread_stack_str
1282
+ # append('file="%s" line="%s">' % (make_valid_xml_value(my_file), lineno))
1283
+ # File "/Applications/PyCharm.app/Contents/plugins/python-ce/helpers/pydev/_pydevd_bundle/pydevd_xml.py", line 36, in make_valid_xml_value
1284
+ # return s.replace("&", "&amp;").replace('<', '&lt;').replace('>', '&gt;').replace('"', '&quot;')
1285
+ # AttributeError: 'tuple' object has no attribute 'replace'
1286
+
1287
+ if __name__ == '__main__':
1288
+ # Import necessary libraries
1289
+ # Your calling code (e.g., in a script or notebook)
1290
+
1291
+ from sequenzo import * # Import the package, give it a short alias
1292
+ import pandas as pd # Data manipulation
1293
+ import numpy as np
1294
+
1295
+ # List all the available datasets in Sequenzo
1296
+ # Now access functions using the alias:
1297
+ print('Available datasets in Sequenzo: ', list_datasets())
1298
+
1299
+ # Load the data that we would like to explore in this tutorial
1300
+ # `df` is the short for `dataframe`, which is a common variable name for a dataset
1301
+ # df = load_dataset('country_co2_emissions')
1302
+ df = load_dataset('mvad')
1303
+
1304
+ # 时间列表
1305
+ time_list = ['Jul.93', 'Aug.93', 'Sep.93', 'Oct.93', 'Nov.93', 'Dec.93',
1306
+ 'Jan.94', 'Feb.94', 'Mar.94', 'Apr.94', 'May.94', 'Jun.94', 'Jul.94',
1307
+ 'Aug.94', 'Sep.94', 'Oct.94', 'Nov.94', 'Dec.94', 'Jan.95', 'Feb.95',
1308
+ 'Mar.95', 'Apr.95', 'May.95', 'Jun.95', 'Jul.95', 'Aug.95', 'Sep.95',
1309
+ 'Oct.95', 'Nov.95', 'Dec.95', 'Jan.96', 'Feb.96', 'Mar.96', 'Apr.96',
1310
+ 'May.96', 'Jun.96', 'Jul.96', 'Aug.96', 'Sep.96', 'Oct.96', 'Nov.96',
1311
+ 'Dec.96', 'Jan.97', 'Feb.97', 'Mar.97', 'Apr.97', 'May.97', 'Jun.97',
1312
+ 'Jul.97', 'Aug.97', 'Sep.97', 'Oct.97', 'Nov.97', 'Dec.97', 'Jan.98',
1313
+ 'Feb.98', 'Mar.98', 'Apr.98', 'May.98', 'Jun.98', 'Jul.98', 'Aug.98',
1314
+ 'Sep.98', 'Oct.98', 'Nov.98', 'Dec.98', 'Jan.99', 'Feb.99', 'Mar.99',
1315
+ 'Apr.99', 'May.99', 'Jun.99']
1316
+
1317
+ # 方法1: 使用pandas获取所有唯一值
1318
+ time_states_df = df[time_list]
1319
+ all_unique_states = set()
1320
+
1321
+ for col in time_list:
1322
+ unique_vals = df[col].dropna().unique() # Remove NaN values
1323
+ all_unique_states.update(unique_vals)
1324
+
1325
+ # 转换为排序的列表
1326
+ states = sorted(list(all_unique_states))
1327
+ print("All unique states:")
1328
+ for i, state in enumerate(states, 1):
1329
+ print(f"{i:2d}. {state}")
1330
+
1331
+ print(f"\nstates list:")
1332
+ print(f"states = {states}")
1333
+
1334
+ # Create a SequenceData object
1335
+
1336
+ # Define the time-span variable
1337
+ time_list = ['Jul.93', 'Aug.93', 'Sep.93', 'Oct.93', 'Nov.93', 'Dec.93',
1338
+ 'Jan.94', 'Feb.94', 'Mar.94', 'Apr.94', 'May.94', 'Jun.94', 'Jul.94',
1339
+ 'Aug.94', 'Sep.94', 'Oct.94', 'Nov.94', 'Dec.94', 'Jan.95', 'Feb.95',
1340
+ 'Mar.95', 'Apr.95', 'May.95', 'Jun.95', 'Jul.95', 'Aug.95', 'Sep.95',
1341
+ 'Oct.95', 'Nov.95', 'Dec.95', 'Jan.96', 'Feb.96', 'Mar.96', 'Apr.96',
1342
+ 'May.96', 'Jun.96', 'Jul.96', 'Aug.96', 'Sep.96', 'Oct.96', 'Nov.96',
1343
+ 'Dec.96', 'Jan.97', 'Feb.97', 'Mar.97', 'Apr.97', 'May.97', 'Jun.97',
1344
+ 'Jul.97', 'Aug.97', 'Sep.97', 'Oct.97', 'Nov.97', 'Dec.97', 'Jan.98',
1345
+ 'Feb.98', 'Mar.98', 'Apr.98', 'May.98', 'Jun.98', 'Jul.98', 'Aug.98',
1346
+ 'Sep.98', 'Oct.98', 'Nov.98', 'Dec.98', 'Jan.99', 'Feb.99', 'Mar.99',
1347
+ 'Apr.99', 'May.99', 'Jun.99']
1348
+
1349
+ states = ['FE', 'HE', 'employment', 'joblessness', 'school', 'training']
1350
+ labels = ['further education', 'higher education', 'employment', 'joblessness', 'school', 'training']
1351
+
1352
+ # TODO: write a try and error: if no such a parameter, then ask to pass the right ones
1353
+ # sequence_data = SequenceData(df, time=time, time_type="year", id_col="country", ids=df['country'].values, states=states)
1354
+
1355
+ sequence_data = SequenceData(df,
1356
+ time=time_list,
1357
+ id_col="id",
1358
+ states=states,
1359
+ labels=labels,
1360
+ )
1361
+
1362
+ om = get_distance_matrix(sequence_data,
1363
+ method="OM",
1364
+ sm="CONSTANT",
1365
+ indel=1)
1366
+
1367
+ cluster = Cluster(om, sequence_data.ids, clustering_method='ward_d')
1368
+ cluster.plot_dendrogram(xlabel="Individuals", ylabel="Distance")
1369
+
1370
+ # Create a ClusterQuality object to evaluate clustering quality
1371
+ cluster_quality = ClusterQuality(cluster)
1372
+ cluster_quality.compute_cluster_quality_scores()
1373
+ cluster_quality.plot_cqi_scores(norm='zscore')
1374
+ summary_table = cluster_quality.get_cqi_table()
1375
+ print(summary_table)
1376
+
1377
+ table = cluster_quality.get_cluster_range_table()
1378
+ # table.to_csv("cluster_quality_table.csv")
1379
+
1380
+ print(table)
@@ -325,7 +325,23 @@ class SequenceData:
325
325
  if non_missing_states <= 20:
326
326
  non_missing_color_list = sns.color_palette("Spectral", non_missing_states)
327
327
  else:
328
- non_missing_color_list = sns.color_palette("cubehelix", non_missing_states)
328
+ # Use a more elegant color palette for many states - combination of viridis and pastel colors
329
+ if non_missing_states <= 40:
330
+ # Use viridis for up to 40 states (more colorful than cubehelix)
331
+ non_missing_color_list = sns.color_palette("viridis", non_missing_states)
332
+ else:
333
+ # For very large state counts, use a custom palette combining multiple schemes
334
+ viridis_colors = sns.color_palette("viridis", min(non_missing_states // 2, 20))
335
+ pastel_colors = sns.color_palette("Set3", min(non_missing_states // 2, 12))
336
+ tab20_colors = sns.color_palette("tab20", min(non_missing_states // 3, 20))
337
+
338
+ # Combine and extend the palette
339
+ combined_colors = viridis_colors + pastel_colors + tab20_colors
340
+ # If we need more colors, cycle through the combined palette
341
+ while len(combined_colors) < non_missing_states:
342
+ combined_colors.extend(combined_colors[:min(len(combined_colors), non_missing_states - len(combined_colors))])
343
+
344
+ non_missing_color_list = combined_colors[:non_missing_states]
329
345
 
330
346
  if reverse_colors:
331
347
  non_missing_color_list = list(reversed(non_missing_color_list))
@@ -342,7 +358,23 @@ class SequenceData:
342
358
  if num_states <= 20:
343
359
  color_list = sns.color_palette("Spectral", num_states)
344
360
  else:
345
- color_list = sns.color_palette("cubehelix", num_states)
361
+ # Use a more elegant color palette for many states - combination of viridis and pastel colors
362
+ if num_states <= 40:
363
+ # Use viridis for up to 40 states (more colorful than cubehelix)
364
+ color_list = sns.color_palette("viridis", num_states)
365
+ else:
366
+ # For very large state counts, use a custom palette combining multiple schemes
367
+ viridis_colors = sns.color_palette("viridis", min(num_states // 2, 20))
368
+ pastel_colors = sns.color_palette("Set3", min(num_states // 2, 12))
369
+ tab20_colors = sns.color_palette("tab20", min(num_states // 3, 20))
370
+
371
+ # Combine and extend the palette
372
+ combined_colors = viridis_colors + pastel_colors + tab20_colors
373
+ # If we need more colors, cycle through the combined palette
374
+ while len(combined_colors) < num_states:
375
+ combined_colors.extend(combined_colors[:min(len(combined_colors), num_states - len(combined_colors))])
376
+
377
+ color_list = combined_colors[:num_states]
346
378
 
347
379
  if reverse_colors:
348
380
  color_list = list(reversed(color_list))
@@ -430,8 +462,17 @@ class SequenceData:
430
462
 
431
463
  def plot_legend(self, save_as=None, dpi=200):
432
464
  """Displays the saved legend for sequence state colors."""
465
+ # Ensure legend handles exist even if get_legend() wasn't called
466
+ legend_handles = getattr(self, "legend_handles", None)
467
+ if not legend_handles:
468
+ legend_handles = [
469
+ plt.Rectangle((0, 0), 1, 1, color=self.color_map[i + 1], label=self.labels[i]
470
+ ) for i in range(len(self.states))
471
+ ]
472
+ self.legend_handles = legend_handles
473
+
433
474
  fig, ax = plt.subplots(figsize=(2, 2))
434
- ax.legend(handles=self.legend_handles, loc='center', title="States", fontsize=10)
475
+ ax.legend(handles=legend_handles, loc='center', title="States", fontsize=10)
435
476
  ax.axis('off')
436
477
 
437
478
  if save_as:
@@ -42,7 +42,6 @@
42
42
  Designates a seqcost method to build sm. "CONSTANT" is not relevant for "DHD".
43
43
  sm is mandatory when method is one of "OM", "OMloc", "OMslen", "OMspell", "OMstran", or "TWED".
44
44
  sm is autogenerated when method is one of "HAM" or "DHD" and sm = NULL.
45
- with.missing : Should the non-deleted missing value be added to the alphabet as an additional state?
46
45
  full.matrix : Default: TRUE. When refseq = NULL, if TRUE, the full distance matrix is returned,
47
46
  if FALSE, an object of class dist is returned,
48
47
  that is, a vector containing only values from the lower triangle of the distance matrix.
@@ -277,7 +276,7 @@ def get_distance_matrix(seqdata=None, method=None, refseq=None, norm="none", ind
277
276
  # OM, OMspell, HAM, DHD
278
277
  if method in om_methods + ["HAM", "DHD"]:
279
278
  if sm_type == "matrix":
280
- if method in [om_methods, "TWED"]:
279
+ if method in om_methods + ["TWED"]:
281
280
  # TODO : checkcost()
282
281
  pass
283
282
  elif method == "HAM":
@@ -142,7 +142,7 @@ def get_substitution_cost_matrix(seqdata, method, cval=None, miss_cost=None, tim
142
142
  # ================================
143
143
  if method in ["INDELS", "INDELSLOG"]:
144
144
  if time_varying:
145
- indels = get_cross_sectional_entropy(seqdata)['Frequencies']
145
+ indels = get_cross_sectional_entropy(seqdata, return_format="dict")['Frequencies']
146
146
  else:
147
147
  ww = seqdata.weights
148
148
  if ww is None:
@@ -4,6 +4,7 @@
4
4
  #include <cmath>
5
5
  #include <iostream>
6
6
  #include "utils.h"
7
+ #include "dp_utils.h"
7
8
  #ifdef _OPENMP
8
9
  #include <omp.h>
9
10
  #endif
@@ -104,26 +105,11 @@ public:
104
105
 
105
106
  py::array_t<double> compute_all_distances() {
106
107
  try {
107
- auto buffer = dist_matrix.mutable_unchecked<2>();
108
-
109
- #pragma omp parallel
110
- {
111
- #pragma omp for schedule(guided)
112
- for (int i = 0; i < nseq; i++) {
113
- for (int j = i; j < nseq; j++) {
114
- buffer(i, j) = compute_distance(i, j);
115
- }
116
- }
117
- }
118
-
119
- #pragma omp for schedule(static)
120
- for (int i = 0; i < nseq; ++i) {
121
- for (int j = i + 1; j < nseq; ++j) {
122
- buffer(j, i) = buffer(i, j);
123
- }
124
- }
125
-
126
- return dist_matrix;
108
+ return dp_utils::compute_all_distances_simple(
109
+ nseq,
110
+ dist_matrix,
111
+ [this](int i, int j){ return this->compute_distance(i, j); }
112
+ );
127
113
  } catch (const std::exception& e) {
128
114
  py::print("Error in compute_all_distances: ", e.what());
129
115
  throw;
@@ -132,23 +118,13 @@ public:
132
118
 
133
119
  py::array_t<double> compute_refseq_distances() {
134
120
  try {
135
- auto buffer = refdist_matrix.mutable_unchecked<2>();
136
-
137
- #pragma omp parallel
138
- {
139
- #pragma omp for schedule(guided)
140
- for (int rseq = rseq1; rseq < rseq2; rseq ++) {
141
- for (int is = 0; is < nseq; is ++) {
142
- if(is == rseq){
143
- buffer(is, rseq-rseq1) = 0;
144
- }else{
145
- buffer(is, rseq-rseq1) = compute_distance(is, rseq);
146
- }
147
- }
148
- }
149
- }
150
-
151
- return refdist_matrix;
121
+ return dp_utils::compute_refseq_distances_simple(
122
+ nseq,
123
+ rseq1,
124
+ rseq2,
125
+ refdist_matrix,
126
+ [this](int is, int rseq){ return this->compute_distance(is, rseq); }
127
+ );
152
128
  } catch (const std::exception& e) {
153
129
  py::print("Error in compute_all_distances: ", e.what());
154
130
  throw;
@@ -3,6 +3,7 @@
3
3
  #include <vector>
4
4
  #include <iostream>
5
5
  #include "utils.h"
6
+ #include "dp_utils.h"
6
7
 
7
8
  namespace py = pybind11;
8
9
 
@@ -71,26 +72,11 @@ public:
71
72
 
72
73
  py::array_t<double> compute_all_distances() {
73
74
  try {
74
- auto buffer = dist_matrix.mutable_unchecked<2>();
75
-
76
- #pragma omp parallel
77
- {
78
- #pragma omp for schedule(static)
79
- for (int i = 0; i < nseq; i++) {
80
- for (int j = i; j < nseq; j++) {
81
- buffer(i, j) = compute_distance(i, j);
82
- }
83
- }
84
- }
85
-
86
- #pragma omp for schedule(static)
87
- for (int i = 0; i < nseq; ++i) {
88
- for (int j = i + 1; j < nseq; ++j) {
89
- buffer(j, i) = buffer(i, j);
90
- }
91
- }
92
-
93
- return dist_matrix;
75
+ return dp_utils::compute_all_distances_simple(
76
+ nseq,
77
+ dist_matrix,
78
+ [this](int i, int j){ return this->compute_distance(i, j); }
79
+ );
94
80
  } catch (const std::exception& e) {
95
81
  py::print("Error in compute_all_distances: ", e.what());
96
82
  throw;
@@ -99,23 +85,13 @@ public:
99
85
 
100
86
  py::array_t<double> compute_refseq_distances() {
101
87
  try {
102
- auto buffer = refdist_matrix.mutable_unchecked<2>();
103
-
104
- #pragma omp parallel
105
- {
106
- #pragma omp for schedule(guided)
107
- for (int rseq = rseq1; rseq < rseq2; rseq ++) {
108
- for (int is = 0; is < nseq; is ++) {
109
- if(is == rseq){
110
- buffer(is, rseq-rseq1) = 0;
111
- }else{
112
- buffer(is, rseq-rseq1) = compute_distance(is, rseq);
113
- }
114
- }
115
- }
116
- }
117
-
118
- return refdist_matrix;
88
+ return dp_utils::compute_refseq_distances_simple(
89
+ nseq,
90
+ rseq1,
91
+ rseq2,
92
+ refdist_matrix,
93
+ [this](int is, int rseq){ return this->compute_distance(is, rseq); }
94
+ );
119
95
  } catch (const std::exception& e) {
120
96
  py::print("Error in compute_all_distances: ", e.what());
121
97
  throw;