sequenzo 0.1.18__cp312-cp312-macosx_10_13_universal2.whl → 0.1.19__cp312-cp312-macosx_10_13_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 (357) hide show
  1. sequenzo/__init__.py +39 -7
  2. sequenzo/big_data/clara/utils/get_weighted_diss.c +155 -155
  3. sequenzo/big_data/clara/utils/get_weighted_diss.cpython-312-darwin.so +0 -0
  4. sequenzo/clustering/KMedoids.py +39 -0
  5. sequenzo/clustering/hierarchical_clustering.py +107 -5
  6. sequenzo/define_sequence_data.py +10 -1
  7. sequenzo/dissimilarity_measures/get_distance_matrix.py +1 -2
  8. sequenzo/dissimilarity_measures/utils/get_sm_trate_substitution_cost_matrix.c +155 -155
  9. sequenzo/dissimilarity_measures/utils/get_sm_trate_substitution_cost_matrix.cpython-312-darwin.so +0 -0
  10. sequenzo/dissimilarity_measures/utils/seqconc.c +155 -155
  11. sequenzo/dissimilarity_measures/utils/seqconc.cpython-312-darwin.so +0 -0
  12. sequenzo/dissimilarity_measures/utils/seqdss.c +155 -155
  13. sequenzo/dissimilarity_measures/utils/seqdss.cpython-312-darwin.so +0 -0
  14. sequenzo/dissimilarity_measures/utils/seqdur.c +155 -155
  15. sequenzo/dissimilarity_measures/utils/seqdur.cpython-312-darwin.so +0 -0
  16. sequenzo/dissimilarity_measures/utils/seqlength.c +155 -155
  17. sequenzo/dissimilarity_measures/utils/seqlength.cpython-312-darwin.so +0 -0
  18. sequenzo/multidomain/cat.py +0 -53
  19. sequenzo/multidomain/idcd.py +0 -1
  20. sequenzo/openmp_setup.py +233 -0
  21. sequenzo/visualization/plot_transition_matrix.py +21 -22
  22. {sequenzo-0.1.18.dist-info → sequenzo-0.1.19.dist-info}/METADATA +43 -10
  23. sequenzo-0.1.19.dist-info/RECORD +215 -0
  24. sequenzo/dissimilarity_measures/setup.py +0 -35
  25. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Cholesky/LDLT.h +0 -688
  26. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Cholesky/LLT.h +0 -558
  27. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +0 -99
  28. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +0 -682
  29. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +0 -346
  30. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +0 -462
  31. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +0 -91
  32. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/EigenSolver.h +0 -622
  33. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +0 -418
  34. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +0 -226
  35. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +0 -374
  36. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +0 -158
  37. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/RealQZ.h +0 -657
  38. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/RealSchur.h +0 -558
  39. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +0 -77
  40. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +0 -904
  41. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +0 -87
  42. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +0 -561
  43. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/AlignedBox.h +0 -486
  44. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/AngleAxis.h +0 -247
  45. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/EulerAngles.h +0 -114
  46. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Homogeneous.h +0 -501
  47. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Hyperplane.h +0 -282
  48. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/OrthoMethods.h +0 -235
  49. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/ParametrizedLine.h +0 -232
  50. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Quaternion.h +0 -870
  51. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Rotation2D.h +0 -199
  52. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/RotationBase.h +0 -206
  53. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Scaling.h +0 -188
  54. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Transform.h +0 -1563
  55. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Translation.h +0 -202
  56. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Umeyama.h +0 -166
  57. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +0 -168
  58. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Householder/BlockHouseholder.h +0 -110
  59. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Householder/Householder.h +0 -176
  60. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Householder/HouseholderSequence.h +0 -545
  61. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +0 -226
  62. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +0 -212
  63. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +0 -229
  64. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +0 -394
  65. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +0 -453
  66. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +0 -444
  67. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +0 -198
  68. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +0 -117
  69. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Jacobi/Jacobi.h +0 -483
  70. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/KLUSupport/KLUSupport.h +0 -358
  71. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/Determinant.h +0 -117
  72. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/FullPivLU.h +0 -877
  73. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/InverseImpl.h +0 -432
  74. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/PartialPivLU.h +0 -624
  75. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +0 -83
  76. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/arch/InverseSize4.h +0 -351
  77. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/MetisSupport/MetisSupport.h +0 -137
  78. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/OrderingMethods/Amd.h +0 -435
  79. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +0 -1863
  80. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/OrderingMethods/Ordering.h +0 -153
  81. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +0 -678
  82. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +0 -545
  83. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/ColPivHouseholderQR.h +0 -674
  84. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +0 -97
  85. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +0 -635
  86. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/FullPivHouseholderQR.h +0 -713
  87. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/HouseholderQR.h +0 -434
  88. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h +0 -68
  89. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +0 -335
  90. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/BDCSVD.h +0 -1366
  91. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/JacobiSVD.h +0 -812
  92. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +0 -91
  93. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/SVDBase.h +0 -376
  94. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/UpperBidiagonalization.h +0 -414
  95. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +0 -697
  96. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +0 -174
  97. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/AmbiVector.h +0 -378
  98. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/CompressedStorage.h +0 -274
  99. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +0 -352
  100. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h +0 -67
  101. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseAssign.h +0 -270
  102. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseBlock.h +0 -571
  103. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseColEtree.h +0 -206
  104. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +0 -370
  105. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +0 -722
  106. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +0 -150
  107. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +0 -342
  108. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h +0 -138
  109. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseDot.h +0 -98
  110. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseFuzzy.h +0 -29
  111. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseMap.h +0 -305
  112. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseMatrix.h +0 -1518
  113. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +0 -398
  114. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparsePermutation.h +0 -178
  115. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseProduct.h +0 -181
  116. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseRedux.h +0 -49
  117. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseRef.h +0 -397
  118. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +0 -659
  119. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseSolverBase.h +0 -124
  120. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +0 -198
  121. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseTranspose.h +0 -92
  122. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseTriangularView.h +0 -189
  123. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseUtil.h +0 -186
  124. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseVector.h +0 -478
  125. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseView.h +0 -254
  126. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/TriangularSolver.h +0 -315
  127. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU.h +0 -923
  128. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLUImpl.h +0 -66
  129. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +0 -226
  130. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_Structs.h +0 -110
  131. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +0 -375
  132. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_Utils.h +0 -80
  133. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h +0 -181
  134. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +0 -179
  135. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +0 -107
  136. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +0 -280
  137. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +0 -126
  138. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +0 -130
  139. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +0 -223
  140. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h +0 -258
  141. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h +0 -137
  142. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h +0 -136
  143. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h +0 -83
  144. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseQR/SparseQR.h +0 -758
  145. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/StlSupport/StdDeque.h +0 -116
  146. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/StlSupport/StdList.h +0 -106
  147. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/StlSupport/StdVector.h +0 -131
  148. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/StlSupport/details.h +0 -84
  149. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +0 -1025
  150. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +0 -642
  151. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/Image.h +0 -82
  152. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/Kernel.h +0 -79
  153. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/RealSvd2x2.h +0 -55
  154. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/blas.h +0 -440
  155. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/lapack.h +0 -152
  156. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/lapacke.h +0 -16292
  157. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/lapacke_mangling.h +0 -17
  158. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +0 -358
  159. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +0 -696
  160. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/BlockMethods.h +0 -1442
  161. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h +0 -115
  162. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h +0 -177
  163. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/IndexedViewMethods.h +0 -262
  164. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +0 -152
  165. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +0 -95
  166. sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/ReshapedMethods.h +0 -149
  167. sequenzo/dissimilarity_measures/src/eigen/blas/BandTriangularSolver.h +0 -97
  168. sequenzo/dissimilarity_measures/src/eigen/blas/GeneralRank1Update.h +0 -44
  169. sequenzo/dissimilarity_measures/src/eigen/blas/PackedSelfadjointProduct.h +0 -53
  170. sequenzo/dissimilarity_measures/src/eigen/blas/PackedTriangularMatrixVector.h +0 -79
  171. sequenzo/dissimilarity_measures/src/eigen/blas/PackedTriangularSolverVector.h +0 -88
  172. sequenzo/dissimilarity_measures/src/eigen/blas/Rank2Update.h +0 -57
  173. sequenzo/dissimilarity_measures/src/eigen/blas/common.h +0 -175
  174. sequenzo/dissimilarity_measures/src/eigen/blas/f2c/datatypes.h +0 -24
  175. sequenzo/dissimilarity_measures/src/eigen/blas/level1_cplx_impl.h +0 -155
  176. sequenzo/dissimilarity_measures/src/eigen/blas/level1_impl.h +0 -144
  177. sequenzo/dissimilarity_measures/src/eigen/blas/level1_real_impl.h +0 -122
  178. sequenzo/dissimilarity_measures/src/eigen/blas/level2_cplx_impl.h +0 -360
  179. sequenzo/dissimilarity_measures/src/eigen/blas/level2_impl.h +0 -553
  180. sequenzo/dissimilarity_measures/src/eigen/blas/level2_real_impl.h +0 -306
  181. sequenzo/dissimilarity_measures/src/eigen/blas/level3_impl.h +0 -702
  182. sequenzo/dissimilarity_measures/src/eigen/debug/gdb/__init__.py +0 -1
  183. sequenzo/dissimilarity_measures/src/eigen/debug/gdb/printers.py +0 -314
  184. sequenzo/dissimilarity_measures/src/eigen/lapack/lapack_common.h +0 -29
  185. sequenzo/dissimilarity_measures/src/eigen/scripts/relicense.py +0 -69
  186. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/Tensor.h +0 -554
  187. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h +0 -329
  188. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h +0 -247
  189. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h +0 -1176
  190. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h +0 -1559
  191. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h +0 -1093
  192. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h +0 -518
  193. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h +0 -377
  194. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h +0 -1023
  195. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h +0 -73
  196. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h +0 -6
  197. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionGpu.h +0 -1413
  198. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h +0 -575
  199. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h +0 -1650
  200. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h +0 -1679
  201. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h +0 -456
  202. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h +0 -1132
  203. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h +0 -544
  204. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h +0 -214
  205. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h +0 -347
  206. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h +0 -137
  207. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h +0 -6
  208. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h +0 -104
  209. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceGpu.h +0 -389
  210. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h +0 -1048
  211. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h +0 -409
  212. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h +0 -236
  213. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h +0 -490
  214. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h +0 -236
  215. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h +0 -983
  216. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h +0 -703
  217. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h +0 -388
  218. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h +0 -669
  219. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h +0 -379
  220. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h +0 -237
  221. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h +0 -191
  222. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h +0 -488
  223. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h +0 -302
  224. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h +0 -33
  225. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaDefines.h +0 -99
  226. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaUndefines.h +0 -44
  227. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h +0 -79
  228. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h +0 -603
  229. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h +0 -738
  230. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h +0 -247
  231. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h +0 -82
  232. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h +0 -263
  233. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h +0 -216
  234. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h +0 -98
  235. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h +0 -327
  236. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h +0 -311
  237. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h +0 -1102
  238. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h +0 -708
  239. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h +0 -291
  240. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h +0 -322
  241. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h +0 -998
  242. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h +0 -6
  243. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReductionGpu.h +0 -966
  244. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h +0 -582
  245. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h +0 -454
  246. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h +0 -465
  247. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h +0 -528
  248. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorScanSycl.h +0 -513
  249. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h +0 -471
  250. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h +0 -161
  251. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h +0 -346
  252. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorTrace.h +0 -303
  253. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h +0 -264
  254. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h +0 -249
  255. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h +0 -629
  256. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h +0 -293
  257. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h +0 -236
  258. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h +0 -338
  259. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h +0 -669
  260. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/Barrier.h +0 -67
  261. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h +0 -249
  262. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h +0 -486
  263. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h +0 -236
  264. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadCancel.h +0 -23
  265. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h +0 -40
  266. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h +0 -301
  267. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h +0 -48
  268. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h +0 -20
  269. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/util/CXX11Meta.h +0 -537
  270. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h +0 -88
  271. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/util/EmulateArray.h +0 -261
  272. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h +0 -158
  273. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h +0 -108
  274. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h +0 -730
  275. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h +0 -220
  276. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/BVH/BVAlgorithms.h +0 -293
  277. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/BVH/KdBVH.h +0 -223
  278. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h +0 -790
  279. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/EulerAngles/EulerAngles.h +0 -355
  280. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/EulerAngles/EulerSystem.h +0 -305
  281. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/FFT/ei_fftw_impl.h +0 -261
  282. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/FFT/ei_kissfft_impl.h +0 -449
  283. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h +0 -187
  284. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/DGMRES.h +0 -511
  285. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/GMRES.h +0 -335
  286. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/IDRS.h +0 -436
  287. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h +0 -90
  288. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/IterationController.h +0 -154
  289. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/MINRES.h +0 -267
  290. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/Scaling.h +0 -193
  291. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h +0 -305
  292. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h +0 -84
  293. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h +0 -202
  294. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h +0 -160
  295. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h +0 -188
  296. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h +0 -396
  297. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h +0 -441
  298. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h +0 -569
  299. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h +0 -373
  300. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h +0 -705
  301. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h +0 -368
  302. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/StemFunction.h +0 -117
  303. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MoreVectorization/MathFunctions.h +0 -95
  304. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h +0 -601
  305. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h +0 -657
  306. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/chkder.h +0 -66
  307. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/covar.h +0 -70
  308. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/dogleg.h +0 -107
  309. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h +0 -79
  310. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/lmpar.h +0 -298
  311. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h +0 -91
  312. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h +0 -30
  313. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/r1updt.h +0 -99
  314. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h +0 -49
  315. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h +0 -130
  316. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Polynomials/Companion.h +0 -280
  317. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Polynomials/PolynomialSolver.h +0 -428
  318. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Polynomials/PolynomialUtils.h +0 -143
  319. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h +0 -352
  320. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineMatrix.h +0 -862
  321. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h +0 -212
  322. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineProduct.h +0 -295
  323. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineStorage.h +0 -259
  324. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineUtil.h +0 -89
  325. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h +0 -122
  326. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h +0 -1079
  327. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h +0 -404
  328. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/MarketIO.h +0 -282
  329. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h +0 -247
  330. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/RandomSetter.h +0 -349
  331. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsArrayAPI.h +0 -286
  332. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsBFloat16.h +0 -68
  333. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsFunctors.h +0 -357
  334. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsHalf.h +0 -66
  335. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsImpl.h +0 -1959
  336. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsPacketMath.h +0 -118
  337. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/HipVectorCompatibility.h +0 -67
  338. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h +0 -167
  339. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsBFloat16.h +0 -58
  340. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h +0 -330
  341. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h +0 -58
  342. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h +0 -2045
  343. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h +0 -79
  344. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/AVX/BesselFunctions.h +0 -46
  345. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/AVX/SpecialFunctions.h +0 -16
  346. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/BesselFunctions.h +0 -46
  347. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/SpecialFunctions.h +0 -16
  348. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/GPU/SpecialFunctions.h +0 -369
  349. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/NEON/BesselFunctions.h +0 -54
  350. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/NEON/SpecialFunctions.h +0 -34
  351. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Splines/Spline.h +0 -507
  352. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Splines/SplineFitting.h +0 -431
  353. sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Splines/SplineFwd.h +0 -93
  354. sequenzo-0.1.18.dist-info/RECORD +0 -544
  355. {sequenzo-0.1.18.dist-info → sequenzo-0.1.19.dist-info}/WHEEL +0 -0
  356. {sequenzo-0.1.18.dist-info → sequenzo-0.1.19.dist-info}/licenses/LICENSE +0 -0
  357. {sequenzo-0.1.18.dist-info → sequenzo-0.1.19.dist-info}/top_level.txt +0 -0
@@ -412,7 +412,6 @@ def compute_cat_distance_matrix(channels: List[SequenceData],
412
412
  with contextlib.redirect_stdout(io.StringIO()):
413
413
  newseqdata_seq = SequenceData(newseqdata_df,
414
414
  time=md_cnames,
415
- time_type=channels[0].time_type,
416
415
  states=states_space,
417
416
  labels=md_labels,
418
417
  id_col=channels[0].id_col)
@@ -430,55 +429,3 @@ def compute_cat_distance_matrix(channels: List[SequenceData],
430
429
 
431
430
  diss_matrix = pd.DataFrame(diss_matrix, index=channels[0].ids, columns=channels[0].ids)
432
431
  return diss_matrix
433
-
434
-
435
- if __name__ == '__main__':
436
- # from sequenzo import *
437
- #
438
- # # df = pd.read_csv("D:/college/research/QiQi/sequenzo/files/sampled_data_sets/broad_data/sampled_30000_data.csv")
439
- # # df = pd.read_csv("D:/college/research/QiQi/sequenzo/files/orignal data/detailed_sequence_10_work_years_df.csv")
440
- # # df = pd.read_csv("D:/college/research/QiQi/sequenzo/seqdef/sampled_data_1000.csv")
441
- # df = pd.read_csv("D:/college/research/QiQi/sequenzo/files/sampled_data_sets/detailed_data/sampled_1000_data.csv")
442
- #
443
- # # df = pd.read_csv("D:/country_co2_emissions_missing.csv")
444
- #
445
- # time = list(df.columns)[4:]
446
- # # time = list(df.columns)[1:]
447
- #
448
- # # states = ['Very Low', 'Low', 'Middle', 'High', 'Very High']
449
- # states = ['data', 'data & intensive math', 'hardware', 'research', 'software', 'software & hardware', 'support & test']
450
- # # states = ['Non-computing', 'Non-technical computing', 'Technical computing']
451
- #
452
- # sequence_data = SequenceData(df[['worker_id', 'C1', 'C2', 'C3', 'C4', 'C5', 'C6', 'C7', 'C8', 'C9', 'C10']],
453
- # time_type="age", time=time, id_col="worker_id", states=states)
454
- # # sequence_data = SequenceData(df, time_type="age", time=time, id_col="country", states=states)
455
- #
456
- # sequence_data = [sequence_data, sequence_data]
457
- #
458
- # MD = seqMD(sequence_data, method="OM", sm=["TRATE"], indel="auto", what="diss", link="mean")
459
- # print(MD)
460
- #
461
- # print("================")
462
-
463
- from sequenzo import *
464
-
465
- left_df = load_dataset('biofam_left_domain')
466
- children_df = load_dataset('biofam_child_domain')
467
- married_df = load_dataset('biofam_married_domain')
468
-
469
- time_cols = [col for col in children_df.columns if col.startswith("age_")]
470
-
471
- seq_left = SequenceData(data=left_df, time_type="age", time=time_cols, states=[0, 1],
472
- labels=["At home", "Left home"])
473
- seq_child = SequenceData(data=children_df, time_type="age", time=time_cols, states=[0, 1],
474
- labels=["No child", "Child"])
475
- seq_marr = SequenceData(data=married_df, time_type="age", time=time_cols, states=[0, 1],
476
- labels=["Not married", "Married"])
477
-
478
- sequence_data = [seq_left, seq_child, seq_marr]
479
-
480
- cat_distance_matrix = compute_cat_distance_matrix(sequence_data, method="OM", sm=["TRATE"], indel=[2, 1, 1], what="diss", link="sum")
481
-
482
- print(cat_distance_matrix)
483
-
484
- print("================")
@@ -130,7 +130,6 @@ def create_idcd_sequence_from_csvs(
130
130
 
131
131
  return SequenceData(
132
132
  data=combined_df,
133
- time_type=time_type,
134
133
  time=time_cols,
135
134
  states=observed_states.index.tolist(),
136
135
  labels=pretty_labels,
@@ -0,0 +1,233 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ @Author : Yuqi Liang 梁彧祺
4
+ @File : openmp_setup.py
5
+ @Time : 07/10/2025 10:42
6
+ @Desc :
7
+
8
+ OpenMP Setup for Apple Silicon Macs
9
+
10
+ This module provides automatic OpenMP dependency management for Apple Silicon Macs.
11
+ It ensures that libomp is available for parallel computation without requiring
12
+ manual user intervention.
13
+ """
14
+
15
+ import sys
16
+ import os
17
+ import subprocess
18
+ import platform
19
+ import ctypes
20
+ from pathlib import Path
21
+
22
+
23
+ def check_libomp_availability():
24
+ """
25
+ Check if libomp is available on the system.
26
+
27
+ Returns:
28
+ bool: True if libomp is available, False otherwise
29
+ """
30
+ try:
31
+ # Try to load libomp directly
32
+ ctypes.CDLL('libomp.dylib')
33
+ return True
34
+ except OSError:
35
+ pass
36
+
37
+ # Try common Homebrew paths
38
+ homebrew_paths = [
39
+ '/opt/homebrew/lib/libomp.dylib', # Apple Silicon
40
+ '/usr/local/lib/libomp.dylib', # Intel Mac
41
+ ]
42
+
43
+ for path in homebrew_paths:
44
+ if os.path.exists(path):
45
+ try:
46
+ ctypes.CDLL(path)
47
+ return True
48
+ except OSError:
49
+ continue
50
+
51
+ return False
52
+
53
+
54
+ def check_homebrew_available():
55
+ """
56
+ Check if Homebrew is available on the system.
57
+
58
+ Returns:
59
+ bool: True if Homebrew is available, False otherwise
60
+ """
61
+ try:
62
+ subprocess.run(['brew', '--version'],
63
+ stdout=subprocess.DEVNULL,
64
+ stderr=subprocess.DEVNULL,
65
+ check=True)
66
+ return True
67
+ except (subprocess.CalledProcessError, FileNotFoundError):
68
+ return False
69
+
70
+
71
+ def install_libomp_via_homebrew():
72
+ """
73
+ Install libomp via Homebrew.
74
+
75
+ Returns:
76
+ bool: True if installation successful, False otherwise
77
+ """
78
+ try:
79
+ print("🔧 Installing libomp via Homebrew...")
80
+ result = subprocess.run(['brew', 'install', 'libomp'],
81
+ check=True,
82
+ stdout=subprocess.PIPE,
83
+ stderr=subprocess.PIPE)
84
+ print("[>] libomp installed successfully!")
85
+ return True
86
+ except subprocess.CalledProcessError as e:
87
+ print(f"[>] libomp installation failed: {e}")
88
+ return False
89
+ except Exception as e:
90
+ print(f"[>] Error during installation: {e}")
91
+ return False
92
+
93
+
94
+ def setup_openmp_environment():
95
+ """
96
+ Set up OpenMP environment variables for Apple Silicon.
97
+
98
+ Returns:
99
+ bool: True if setup successful, False otherwise
100
+ """
101
+ try:
102
+ # Get Homebrew prefix
103
+ result = subprocess.run(['brew', '--prefix'],
104
+ capture_output=True, text=True, check=True)
105
+ homebrew_prefix = result.stdout.strip()
106
+
107
+ # Set environment variables
108
+ lib_path = f"{homebrew_prefix}/lib"
109
+ include_path = f"{homebrew_prefix}/include"
110
+
111
+ os.environ['DYLD_LIBRARY_PATH'] = f"{lib_path}:{os.environ.get('DYLD_LIBRARY_PATH', '')}"
112
+ os.environ['LDFLAGS'] = f"-L{lib_path} {os.environ.get('LDFLAGS', '')}"
113
+ os.environ['CPPFLAGS'] = f"-I{include_path} {os.environ.get('CPPFLAGS', '')}"
114
+
115
+ print(f"[>] OpenMP environment variables set")
116
+ print(f" - Library path: {lib_path}")
117
+ print(f" - Include path: {include_path}")
118
+ return True
119
+
120
+ except Exception as e:
121
+ print(f"[>] Failed to set environment variables: {e}")
122
+ return False
123
+
124
+
125
+ def ensure_openmp_support():
126
+ """
127
+ Ensure OpenMP support is available on Apple Silicon Macs.
128
+ This function handles the complete setup process.
129
+
130
+ Returns:
131
+ bool: True if OpenMP is available, False otherwise
132
+ """
133
+ # Only run on macOS
134
+ if sys.platform != 'darwin':
135
+ return True
136
+
137
+ # Only run on Apple Silicon
138
+ if platform.machine() != 'arm64':
139
+ return True
140
+
141
+ # Check if we're in a conda environment (don't interfere)
142
+ if os.environ.get('CONDA_DEFAULT_ENV'):
143
+ print("[>] Detected Conda environment, skipping OpenMP auto-setup")
144
+ return True
145
+
146
+ print("[>] Detected Apple Silicon Mac, checking OpenMP support...")
147
+
148
+ # Check if libomp is already available
149
+ if check_libomp_availability():
150
+ print("[>] OpenMP support is available")
151
+ return True
152
+
153
+ # Check if Homebrew is available
154
+ if not check_homebrew_available():
155
+ print("""
156
+ [>] OpenMP Dependency Detection
157
+
158
+ On Apple Silicon Mac, Sequenzo requires OpenMP support for parallel computation.
159
+
160
+ Please run the following command to install OpenMP support:
161
+ brew install libomp
162
+
163
+ If you don't have Homebrew installed, please visit https://brew.sh to install Homebrew first.
164
+ """)
165
+ return False
166
+
167
+ # Check if libomp is already installed via Homebrew
168
+ try:
169
+ subprocess.run(['brew', 'list', 'libomp'],
170
+ stdout=subprocess.DEVNULL,
171
+ stderr=subprocess.DEVNULL,
172
+ check=True)
173
+ print("[>] libomp is already installed via Homebrew")
174
+
175
+ # Set up environment variables
176
+ setup_openmp_environment()
177
+ return True
178
+ except subprocess.CalledProcessError:
179
+ pass # libomp not installed, continue with installation
180
+
181
+ # Attempt to install libomp automatically
182
+ if install_libomp_via_homebrew():
183
+ # Set up environment variables after installation
184
+ setup_openmp_environment()
185
+ return True
186
+ else:
187
+ print("""
188
+ [>] Automatic OpenMP installation failed
189
+
190
+ Please manually run the following command:
191
+ brew install libomp
192
+
193
+ After installation, please restart Python or re-import sequenzo.
194
+ """)
195
+ return False
196
+
197
+
198
+ def get_openmp_status():
199
+ """
200
+ Get the current OpenMP status and provide helpful information.
201
+
202
+ Returns:
203
+ dict: Status information about OpenMP support
204
+ """
205
+ status = {
206
+ 'platform': sys.platform,
207
+ 'architecture': platform.machine(),
208
+ 'is_apple_silicon': sys.platform == 'darwin' and platform.machine() == 'arm64',
209
+ 'libomp_available': check_libomp_availability(),
210
+ 'homebrew_available': check_homebrew_available(),
211
+ 'conda_environment': bool(os.environ.get('CONDA_DEFAULT_ENV')),
212
+ }
213
+
214
+ return status
215
+
216
+
217
+ if __name__ == "__main__":
218
+ # Run the setup when called directly
219
+ success = ensure_openmp_support()
220
+ if success:
221
+ print("[>] OpenMP support is ready!")
222
+ else:
223
+ print("[>] OpenMP support unavailable, will use serial computation")
224
+
225
+ # Print status information
226
+ status = get_openmp_status()
227
+ print(f"\n[>] System Status:")
228
+ print(f" - Platform: {status['platform']}")
229
+ print(f" - Architecture: {status['architecture']}")
230
+ print(f" - Apple Silicon: {status['is_apple_silicon']}")
231
+ print(f" - libomp available: {status['libomp_available']}")
232
+ print(f" - Homebrew available: {status['homebrew_available']}")
233
+ print(f" - Conda environment: {status['conda_environment']}")
@@ -1,5 +1,5 @@
1
1
  """
2
- @Author : Yuqi Liang 梁彧祺
2
+ @Author : Yuqi Liang 梁彧祺, Sebastian Daza
3
3
  @File : plot_transition_matrix.py
4
4
  @Time : 13/02/2025 12:39
5
5
  @Desc :
@@ -32,12 +32,12 @@ def compute_transition_matrix(seqdata: SequenceData, with_missing: bool = False,
32
32
  # Process weights
33
33
  if isinstance(weights, str) and weights == "auto":
34
34
  weights = getattr(seqdata, "weights", None)
35
-
35
+
36
36
  if weights is not None:
37
37
  weights = np.asarray(weights, dtype=float).reshape(-1)
38
38
  if len(weights) != len(seqdata.values):
39
39
  raise ValueError("Length of weights must equal number of sequences.")
40
-
40
+
41
41
  num_states = len(seqdata.states)
42
42
  A = seqdata.to_dataframe().to_numpy()
43
43
  n, T = A.shape
@@ -52,19 +52,19 @@ def compute_transition_matrix(seqdata: SequenceData, with_missing: bool = False,
52
52
  nxt = A[:, 1:].flatten()
53
53
  w_pair = np.repeat(w, T-1) # Each sequence weight replicated (T-1) times
54
54
 
55
- # Filter valid transitions
56
- valid = (current >= 0) & (current < num_states) & (nxt >= 0) & (nxt < num_states)
55
+ # Filter valid transitions (states are encoded as 1, 2, 3, ..., num_states)
56
+ valid = (current >= 1) & (current <= num_states) & (nxt >= 1) & (nxt <= num_states)
57
57
  current, nxt, w_pair = current[valid], nxt[valid], w_pair[valid]
58
58
 
59
59
  # Compute weighted transition counts
60
60
  # Create mapping from state codes to matrix indices
61
61
  state_codes = sorted(set(current) | set(nxt))
62
62
  code_to_idx = {code: idx for idx, code in enumerate(state_codes)}
63
-
63
+
64
64
  # Use only the actual number of unique states for matrix size
65
65
  actual_num_states = len(state_codes)
66
66
  trans = np.zeros((actual_num_states, actual_num_states), dtype=float)
67
-
67
+
68
68
  for c, n2, ww in zip(current, nxt, w_pair):
69
69
  trans[code_to_idx[int(c)], code_to_idx[int(n2)]] += ww
70
70
 
@@ -75,7 +75,7 @@ def compute_transition_matrix(seqdata: SequenceData, with_missing: bool = False,
75
75
 
76
76
  # Create a properly sized matrix with correct mapping to original states
77
77
  final_matrix = np.zeros((num_states, num_states), dtype=float)
78
-
78
+
79
79
  # Map back to the original state positions
80
80
  for i, from_code in enumerate(state_codes):
81
81
  for j, to_code in enumerate(state_codes):
@@ -92,7 +92,7 @@ def print_transition_matrix(seqdata: SequenceData, transition_rates: np.ndarray)
92
92
  :param seqdata: SequenceData object containing state information
93
93
  :param transition_rates: numpy array containing transition rates
94
94
  """
95
- state_labels = seqdata.states
95
+ state_labels = seqdata.labels
96
96
 
97
97
  # Calculate max width needed for state labels
98
98
  max_label_width = max(len(s) for s in state_labels) + 3 # +3 for arrow
@@ -127,45 +127,45 @@ def print_transition_matrix(seqdata: SequenceData, transition_rates: np.ndarray)
127
127
 
128
128
  def plot_transition_matrix(seqdata: SequenceData,
129
129
  weights="auto",
130
- title: Optional[str] = None,
130
+ title: str = "State Transition Rate Matrix",
131
131
  fontsize: int = 12,
132
132
  save_as: Optional[str] = None,
133
- dpi: int = 200) -> None:
133
+ dpi: int = 200,
134
+ format: str = "%.2f") -> None:
134
135
  """
135
136
  Plot state transition rate matrix as a heatmap.
136
137
 
137
138
  :param seqdata: SequenceData object containing sequence information
138
139
  :param weights: (np.ndarray or "auto") Weights for sequences. If "auto", uses seqdata.weights if available
139
140
  :param title: optional title for the plot
141
+ :param fontsize: base font size for labels
140
142
  :param save_as: optional file path to save the plot
141
143
  :param dpi: resolution of the saved plot
144
+ :param format: format string for annotations (default "%.2f")
142
145
  """
146
+
143
147
  # Compute transition matrix with weights
144
148
  transition_matrix = compute_transition_matrix(seqdata, weights=weights)
145
149
  transition_matrix = np.array(transition_matrix)
146
150
 
147
- # Create upper triangle mask (show diagonal)
148
- mask = np.triu(np.ones(transition_matrix.shape, dtype=bool), k=1)
149
-
150
151
  # Set figure size
151
152
  plt.figure(figsize=(12, 10))
152
153
 
153
154
  # Use fresh color scheme
154
155
  cmap = sns.color_palette("light:#5A9", as_cmap=True)
155
156
 
156
- # Generate heatmap
157
+ # Generate heatmap using pre-formatted annotation strings
157
158
  ax = sns.heatmap(
158
159
  transition_matrix,
159
- mask=mask,
160
- annot=True,
161
- fmt=".2f",
160
+ fmt=format,
162
161
  cmap=cmap,
163
162
  xticklabels=seqdata.labels,
164
163
  yticklabels=seqdata.labels,
165
164
  linewidths=0.5,
166
165
  linecolor="gray",
167
166
  cbar_kws={"shrink": 0.8},
168
- square=True
167
+ square=True,
168
+ annot_kws={"fontsize": fontsize - 2}
169
169
  )
170
170
 
171
171
  # Show all the borderlines
@@ -175,7 +175,7 @@ def plot_transition_matrix(seqdata: SequenceData,
175
175
  # Adjust format
176
176
  if title:
177
177
  show_plot_title(plt.gca(), title, show=True, fontsize=fontsize+2, fontweight='bold', pad=20)
178
- # plt.title("State Transition Rate Matrix", fontsize=14, fontweight='bold', pad=20)
178
+
179
179
  plt.xlabel("State at t + 1", fontsize=fontsize, labelpad=10)
180
180
  plt.ylabel("State at t", fontsize=fontsize, labelpad=10)
181
181
 
@@ -186,5 +186,4 @@ def plot_transition_matrix(seqdata: SequenceData,
186
186
  # Adjust layout
187
187
  plt.tight_layout()
188
188
 
189
- save_and_show_results(save_as, dpi=200)
190
-
189
+ save_and_show_results(save_as, dpi=dpi)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sequenzo
3
- Version: 0.1.18
3
+ Version: 0.1.19
4
4
  Summary: A fast, scalable and intuitive Python package for social sequence analysis.
5
5
  Author-email: Yuqi Liang <yuqi.liang.1900@gmail.com>, Xinyi Li <1836724126@qq.com>, Jan Heinrich Ernst Meyerhoff-Liang <jan.meyerhoff1@gmail.com>
6
6
  License: BSD 3-Clause License
@@ -54,11 +54,15 @@ Requires-Dist: cython>=0.29.21
54
54
  Requires-Dist: scipy>=1.6.3
55
55
  Requires-Dist: scikit-learn>=0.24.2
56
56
  Requires-Dist: fastcluster>=1.2.6
57
+ Requires-Dist: rpy2>=3.5.12; python_version >= "3.12"
58
+ Requires-Dist: rpy2>=3.5.6; python_version == "3.11"
59
+ Requires-Dist: rpy2>=3.5.6; python_version == "3.10"
60
+ Requires-Dist: rpy2>=3.5.6; python_version == "3.9"
57
61
  Requires-Dist: joblib>=1.0.1
58
62
  Requires-Dist: docutils>=0.17
59
63
  Requires-Dist: tqdm<5.0.0,>=4.62.3
60
64
  Requires-Dist: missingno<0.6.0,>=0.5.2
61
- Requires-Dist: rpy2
65
+ Requires-Dist: cffi>=1.15.0
62
66
  Provides-Extra: dev
63
67
  Requires-Dist: pytest>=6.2.5; extra == "dev"
64
68
  Requires-Dist: flake8>=3.9.2; extra == "dev"
@@ -97,6 +101,11 @@ Sequenzo outperforms traditional R-based tools in social sequence analysis, deli
97
101
  >
98
102
  > 📖 Available in **English and Chinese**, our docs are written to be approachable, practical, and easy to follow.
99
103
 
104
+ ## ✨ Be part of the Sequenzo community
105
+ Join our Discord channel to iscuss ideas, get help, and hear about upcoming Sequenzo versions, tutorials, and workshops first.
106
+
107
+ ➡️ https://discord.gg/3bMDKRHW
108
+
100
109
  ## Target Users
101
110
 
102
111
  Sequenzo is designed for:
@@ -172,6 +181,22 @@ If you have some issues with the installation, it might because you have both Py
172
181
  pip3 install sequenzo
173
182
  ```
174
183
 
184
+ ### Optional R Integration
185
+
186
+ Sequenzo now checks the system environment variables before running ward.D hierarchical clustering.
187
+
188
+ If R is missing, a relevant prompt will be displayed along with specific installation instructions. If `fastcluster` is missing, Sequenzo will automatically download `fastcluster`.
189
+
190
+ Before automatically downloading `fastcluster`, Sequenzo checks whether R is available; if R is not installed, sequenzo will not automatically download fastcluster.
191
+
192
+ Sequenzo supports advanced Ward clustering methods that require R integration. If you need to use the `ward_d` clustering method, install with R support:
193
+
194
+ ```
195
+ pip install sequenzo[r]
196
+ ```
197
+
198
+ This will install the optional `rpy2` dependency, which provides Python-R interoperability. Note that R must also be installed on your system for `rpy2` to work.
199
+
175
200
  For more information about the latest stable release and required dependencies, please refer to [PyPI](https://pypi.org/project/sequenzo/).
176
201
 
177
202
  ## Documentation
@@ -209,7 +234,7 @@ Check out our [contribution guide]() for more details (work in progress).
209
234
  If you're contributing or debugging, use:
210
235
 
211
236
  ```bash
212
- pip install -r requirements-3.10.txt # Or matching your Python version
237
+ pip install -r requirements/requirements-3.10.txt # Or matching your Python version
213
238
  ```
214
239
 
215
240
  For standard installation, use:
@@ -222,23 +247,31 @@ pip install . # Uses pyproject.toml
222
247
 
223
248
  **Paper Authors**
224
249
  * [Yuqi Liang, University of Oxford](https://www.yuqi-liang.tech/)
225
- * [Xinyi Li, Heilongjiang University](https://github.com/Fantasy201)
250
+ * [Xinyi Li, Northeastern University](https://github.com/Fantasy201)
226
251
  * [Jan Heinrich Ernst Meyerhoff-Liang, Institute for New Economic Thinking Oxford](https://www.inet.ox.ac.uk/people/jan-meyerhoff-liang)
227
252
 
228
253
  **Package Contributors**
229
- * [Liangxingyun He, Stockholm School of Economics (Sweden)](https://www.linkedin.com/in/liangxingyun-he-6aa128304/)
230
- * [Yukun Ming, Universidad Carlos III de Madrid (Spain)](www.linkedin.com/in/yukun)
231
- * [Ziting Yang, Rochester Wniversity (US)](www.linkedin.com/in/ziting-yang-7b33832bb)
254
+
255
+ Coding contributors:
256
+ * [Sebastian Daza](https://sdaza.com/)
257
+ * [Cheng Deng](https://github.com/de-de-de-de-de)
258
+ * [Liangxingyun He, Stockholm School of Economics, Sweden](https://www.linkedin.com/in/liangxingyun-he-6aa128304/)
259
+
260
+ Documentation contributors:
261
+ * [Liangxingyun He, Stockholm School of Economics, Sweden](https://www.linkedin.com/in/liangxingyun-he-6aa128304/)
262
+ * [Yukun Ming, Universidad Carlos III de Madrid (Spain)](https://www.linkedin.com/in/yukun)
232
263
  * [Sizhu Qu, Northeastern University (US)](https://www.linkedin.com/in/sizhuq)
264
+ * [Ziting Yang, Rochester Wniversity (US)](https://www.linkedin.com/in/ziting-yang-7b33832bb)
265
+
266
+ Others
233
267
  * With special thanks to our initial testers (alphabetically ordered): [Joji Chia](https://sociology.illinois.edu/directory/profile/jbchia2), [Kass Gonzalez](https://www.linkedin.com/in/kass-gonzalez-72a778276/), [Sinyee Lu](https://sociology.illinois.edu/directory/profile/qianyil4), [Sohee Shin](https://sociology.illinois.edu/directory/profile/sohees2)
234
268
  * Website and related technical support: [Mactavish](https://github.com/mactavishz)
235
- * PAM clustering algorithm implementation: Cheng Deng
236
269
  * Sequence data sources compilation - History: Jingrui Chen
237
270
  * Visual design consultant: Changyu Yi
238
271
 
239
272
  **Acknowledgements**
240
273
 
241
- * Methodological advisor in sequence analysis: [Professor Tim Liao, University of Illinois Urbana-Champaign](https://sociology.illinois.edu/directory/profile/tfliao)
242
- * Yuqi's PhD advisor: [Professor Ridhi Kashyap, University of Oxford](https://www.nuffield.ox.ac.uk/people/profiles/ridhi-kashyap/)
274
+ * Methodological advisor in sequence analysis: [Professor Tim Liao (University of Illinois Urbana-Champaign)](https://sociology.illinois.edu/directory/profile/tfliao)
275
+ * Yuqi's PhD advisor [Professor Ridhi Kashyap (University of Oxford)](https://www.nuffield.ox.ac.uk/people/profiles/ridhi-kashyap/), and mentor [Charles Rahal (University of Oxford)](https://crahal.com/)
243
276
  * Yuqi's original programming mentor: [JiangHuShiNian](https://github.com/jianghushinian)
244
277