sequenzo 0.1.17__cp39-cp39-win_amd64.whl → 0.1.19__cp39-cp39-win_amd64.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.
- sequenzo/__init__.py +64 -8
- sequenzo/big_data/clara/clara.py +1 -1
- sequenzo/big_data/clara/utils/get_weighted_diss.c +156 -156
- sequenzo/big_data/clara/utils/get_weighted_diss.cp39-win_amd64.pyd +0 -0
- sequenzo/clustering/KMedoids.py +39 -0
- sequenzo/clustering/clustering_c_code.cp39-win_amd64.pyd +0 -0
- sequenzo/clustering/hierarchical_clustering.py +304 -8
- sequenzo/define_sequence_data.py +44 -3
- sequenzo/dissimilarity_measures/c_code.cp39-win_amd64.pyd +0 -0
- sequenzo/dissimilarity_measures/get_distance_matrix.py +1 -2
- sequenzo/dissimilarity_measures/get_substitution_cost_matrix.py +1 -1
- sequenzo/dissimilarity_measures/src/DHDdistance.cpp +13 -37
- sequenzo/dissimilarity_measures/src/LCPdistance.cpp +13 -37
- sequenzo/dissimilarity_measures/src/OMdistance.cpp +12 -47
- sequenzo/dissimilarity_measures/src/OMspellDistance.cpp +103 -67
- sequenzo/dissimilarity_measures/src/dp_utils.h +160 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_arithmetic.hpp +41 -16
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_complex.hpp +4 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_details.hpp +7 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_logical.hpp +10 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_math.hpp +127 -43
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_memory.hpp +30 -2
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_swizzle.hpp +174 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_trigo.hpp +14 -5
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx.hpp +111 -54
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx2.hpp +131 -9
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512bw.hpp +11 -113
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512dq.hpp +39 -7
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512f.hpp +336 -30
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512vbmi.hpp +9 -37
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512vbmi2.hpp +58 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_common.hpp +1 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_common_fwd.hpp +35 -2
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_constants.hpp +3 -1
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_emulated.hpp +17 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_fma3_avx.hpp +13 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_fma3_sse.hpp +18 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_fma4.hpp +13 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_isa.hpp +8 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_neon.hpp +363 -34
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_neon64.hpp +7 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_rvv.hpp +13 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_scalar.hpp +41 -4
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_sse2.hpp +252 -16
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_sse3.hpp +9 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_ssse3.hpp +12 -1
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_sve.hpp +7 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_vsx.hpp +892 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_wasm.hpp +78 -1
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/config/xsimd_arch.hpp +3 -1
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/config/xsimd_config.hpp +13 -2
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/config/xsimd_cpuid.hpp +5 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/config/xsimd_inline.hpp +5 -1
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_all_registers.hpp +2 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_api.hpp +64 -1
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_batch.hpp +36 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_rvv_register.hpp +40 -31
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_traits.hpp +8 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_vsx_register.hpp +77 -0
- sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/xsimd.hpp +6 -0
- sequenzo/dissimilarity_measures/src/xsimd/test/test_basic_math.cpp +6 -0
- sequenzo/dissimilarity_measures/src/xsimd/test/test_batch.cpp +54 -2
- sequenzo/dissimilarity_measures/src/xsimd/test/test_batch_bool.cpp +8 -0
- sequenzo/dissimilarity_measures/src/xsimd/test/test_batch_cast.cpp +11 -4
- sequenzo/dissimilarity_measures/src/xsimd/test/test_batch_complex.cpp +18 -0
- sequenzo/dissimilarity_measures/src/xsimd/test/test_batch_int.cpp +8 -14
- sequenzo/dissimilarity_measures/src/xsimd/test/test_batch_manip.cpp +216 -173
- sequenzo/dissimilarity_measures/src/xsimd/test/test_load_store.cpp +6 -0
- sequenzo/dissimilarity_measures/src/xsimd/test/test_memory.cpp +1 -1
- sequenzo/dissimilarity_measures/src/xsimd/test/test_power.cpp +7 -4
- sequenzo/dissimilarity_measures/src/xsimd/test/test_select.cpp +6 -2
- sequenzo/dissimilarity_measures/src/xsimd/test/test_shuffle.cpp +32 -18
- sequenzo/dissimilarity_measures/src/xsimd/test/test_utils.hpp +21 -24
- sequenzo/dissimilarity_measures/src/xsimd/test/test_xsimd_api.cpp +69 -9
- sequenzo/dissimilarity_measures/utils/get_sm_trate_substitution_cost_matrix.c +156 -156
- sequenzo/dissimilarity_measures/utils/get_sm_trate_substitution_cost_matrix.cp39-win_amd64.pyd +0 -0
- sequenzo/dissimilarity_measures/utils/seqconc.c +156 -156
- sequenzo/dissimilarity_measures/utils/seqconc.cp39-win_amd64.pyd +0 -0
- sequenzo/dissimilarity_measures/utils/seqdss.c +156 -156
- sequenzo/dissimilarity_measures/utils/seqdss.cp39-win_amd64.pyd +0 -0
- sequenzo/dissimilarity_measures/utils/seqdur.c +156 -156
- sequenzo/dissimilarity_measures/utils/seqdur.cp39-win_amd64.pyd +0 -0
- sequenzo/dissimilarity_measures/utils/seqlength.c +156 -156
- sequenzo/dissimilarity_measures/utils/seqlength.cp39-win_amd64.pyd +0 -0
- sequenzo/multidomain/cat.py +0 -53
- sequenzo/multidomain/idcd.py +0 -1
- sequenzo/openmp_setup.py +233 -0
- sequenzo/sequence_characteristics/__init__.py +4 -0
- sequenzo/sequence_characteristics/complexity_index.py +17 -57
- sequenzo/sequence_characteristics/overall_cross_sectional_entropy.py +177 -111
- sequenzo/sequence_characteristics/plot_characteristics.py +30 -11
- sequenzo/sequence_characteristics/simple_characteristics.py +1 -0
- sequenzo/sequence_characteristics/state_frequencies_and_entropy_per_sequence.py +9 -3
- sequenzo/sequence_characteristics/turbulence.py +47 -67
- sequenzo/sequence_characteristics/variance_of_spell_durations.py +19 -9
- sequenzo/sequence_characteristics/within_sequence_entropy.py +5 -58
- sequenzo/visualization/plot_sequence_index.py +58 -35
- sequenzo/visualization/plot_state_distribution.py +57 -36
- sequenzo/visualization/plot_transition_matrix.py +21 -22
- sequenzo/with_event_history_analysis/__init__.py +35 -0
- sequenzo/with_event_history_analysis/sequence_analysis_multi_state_model.py +850 -0
- sequenzo/with_event_history_analysis/sequence_history_analysis.py +283 -0
- {sequenzo-0.1.17.dist-info → sequenzo-0.1.19.dist-info}/METADATA +48 -14
- sequenzo-0.1.19.dist-info/RECORD +272 -0
- sequenzo/dissimilarity_measures/setup.py +0 -35
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Cholesky/LDLT.h +0 -688
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Cholesky/LLT.h +0 -558
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +0 -99
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +0 -682
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +0 -346
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +0 -462
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +0 -91
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/EigenSolver.h +0 -622
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +0 -418
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +0 -226
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +0 -374
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +0 -158
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/RealQZ.h +0 -657
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/RealSchur.h +0 -558
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +0 -77
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +0 -904
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +0 -87
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +0 -561
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/AlignedBox.h +0 -486
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/AngleAxis.h +0 -247
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/EulerAngles.h +0 -114
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Homogeneous.h +0 -501
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Hyperplane.h +0 -282
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/OrthoMethods.h +0 -235
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/ParametrizedLine.h +0 -232
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Quaternion.h +0 -870
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Rotation2D.h +0 -199
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/RotationBase.h +0 -206
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Scaling.h +0 -188
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Transform.h +0 -1563
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Translation.h +0 -202
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/Umeyama.h +0 -166
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +0 -168
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Householder/BlockHouseholder.h +0 -110
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Householder/Householder.h +0 -176
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Householder/HouseholderSequence.h +0 -545
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +0 -226
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +0 -212
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +0 -229
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +0 -394
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +0 -453
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +0 -444
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +0 -198
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +0 -117
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/Jacobi/Jacobi.h +0 -483
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/KLUSupport/KLUSupport.h +0 -358
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/Determinant.h +0 -117
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/FullPivLU.h +0 -877
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/InverseImpl.h +0 -432
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/PartialPivLU.h +0 -624
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +0 -83
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/LU/arch/InverseSize4.h +0 -351
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/MetisSupport/MetisSupport.h +0 -137
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/OrderingMethods/Amd.h +0 -435
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +0 -1863
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/OrderingMethods/Ordering.h +0 -153
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +0 -678
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +0 -545
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/ColPivHouseholderQR.h +0 -674
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +0 -97
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +0 -635
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/FullPivHouseholderQR.h +0 -713
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/HouseholderQR.h +0 -434
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h +0 -68
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +0 -335
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/BDCSVD.h +0 -1366
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/JacobiSVD.h +0 -812
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +0 -91
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/SVDBase.h +0 -376
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SVD/UpperBidiagonalization.h +0 -414
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +0 -697
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +0 -174
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/AmbiVector.h +0 -378
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/CompressedStorage.h +0 -274
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +0 -352
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h +0 -67
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseAssign.h +0 -270
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseBlock.h +0 -571
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseColEtree.h +0 -206
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +0 -370
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +0 -722
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +0 -150
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +0 -342
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h +0 -138
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseDot.h +0 -98
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseFuzzy.h +0 -29
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseMap.h +0 -305
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseMatrix.h +0 -1518
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +0 -398
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparsePermutation.h +0 -178
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseProduct.h +0 -181
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseRedux.h +0 -49
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseRef.h +0 -397
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +0 -659
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseSolverBase.h +0 -124
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +0 -198
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseTranspose.h +0 -92
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseTriangularView.h +0 -189
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseUtil.h +0 -186
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseVector.h +0 -478
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/SparseView.h +0 -254
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseCore/TriangularSolver.h +0 -315
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU.h +0 -923
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLUImpl.h +0 -66
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +0 -226
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_Structs.h +0 -110
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +0 -375
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_Utils.h +0 -80
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h +0 -181
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +0 -179
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +0 -107
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +0 -280
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +0 -126
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +0 -130
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +0 -223
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h +0 -258
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h +0 -137
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h +0 -136
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h +0 -83
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SparseQR/SparseQR.h +0 -758
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/StlSupport/StdDeque.h +0 -116
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/StlSupport/StdList.h +0 -106
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/StlSupport/StdVector.h +0 -131
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/StlSupport/details.h +0 -84
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +0 -1025
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +0 -642
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/Image.h +0 -82
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/Kernel.h +0 -79
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/RealSvd2x2.h +0 -55
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/blas.h +0 -440
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/lapack.h +0 -152
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/lapacke.h +0 -16292
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/misc/lapacke_mangling.h +0 -17
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +0 -358
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +0 -696
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/BlockMethods.h +0 -1442
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h +0 -115
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h +0 -177
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/IndexedViewMethods.h +0 -262
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +0 -152
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +0 -95
- sequenzo/dissimilarity_measures/src/eigen/Eigen/src/plugins/ReshapedMethods.h +0 -149
- sequenzo/dissimilarity_measures/src/eigen/bench/BenchSparseUtil.h +0 -149
- sequenzo/dissimilarity_measures/src/eigen/bench/BenchTimer.h +0 -199
- sequenzo/dissimilarity_measures/src/eigen/bench/BenchUtil.h +0 -92
- sequenzo/dissimilarity_measures/src/eigen/bench/basicbenchmark.h +0 -63
- sequenzo/dissimilarity_measures/src/eigen/bench/btl/generic_bench/utils/utilities.h +0 -90
- sequenzo/dissimilarity_measures/src/eigen/bench/btl/libs/BLAS/blas.h +0 -675
- sequenzo/dissimilarity_measures/src/eigen/bench/btl/libs/BLAS/c_interface_base.h +0 -73
- sequenzo/dissimilarity_measures/src/eigen/bench/perf_monitoring/gemm_common.h +0 -67
- sequenzo/dissimilarity_measures/src/eigen/bench/perf_monitoring/gemv_common.h +0 -69
- sequenzo/dissimilarity_measures/src/eigen/bench/spbench/spbenchsolver.h +0 -573
- sequenzo/dissimilarity_measures/src/eigen/bench/spbench/spbenchstyle.h +0 -95
- sequenzo/dissimilarity_measures/src/eigen/bench/tensors/benchmark.h +0 -49
- sequenzo/dissimilarity_measures/src/eigen/bench/tensors/tensor_benchmarks.h +0 -597
- sequenzo/dissimilarity_measures/src/eigen/blas/BandTriangularSolver.h +0 -97
- sequenzo/dissimilarity_measures/src/eigen/blas/GeneralRank1Update.h +0 -44
- sequenzo/dissimilarity_measures/src/eigen/blas/PackedSelfadjointProduct.h +0 -53
- sequenzo/dissimilarity_measures/src/eigen/blas/PackedTriangularMatrixVector.h +0 -79
- sequenzo/dissimilarity_measures/src/eigen/blas/PackedTriangularSolverVector.h +0 -88
- sequenzo/dissimilarity_measures/src/eigen/blas/Rank2Update.h +0 -57
- sequenzo/dissimilarity_measures/src/eigen/blas/common.h +0 -175
- sequenzo/dissimilarity_measures/src/eigen/blas/f2c/datatypes.h +0 -24
- sequenzo/dissimilarity_measures/src/eigen/blas/level1_cplx_impl.h +0 -155
- sequenzo/dissimilarity_measures/src/eigen/blas/level1_impl.h +0 -144
- sequenzo/dissimilarity_measures/src/eigen/blas/level1_real_impl.h +0 -122
- sequenzo/dissimilarity_measures/src/eigen/blas/level2_cplx_impl.h +0 -360
- sequenzo/dissimilarity_measures/src/eigen/blas/level2_impl.h +0 -553
- sequenzo/dissimilarity_measures/src/eigen/blas/level2_real_impl.h +0 -306
- sequenzo/dissimilarity_measures/src/eigen/blas/level3_impl.h +0 -702
- sequenzo/dissimilarity_measures/src/eigen/debug/gdb/__init__.py +0 -1
- sequenzo/dissimilarity_measures/src/eigen/debug/gdb/printers.py +0 -314
- sequenzo/dissimilarity_measures/src/eigen/demos/mandelbrot/mandelbrot.h +0 -71
- sequenzo/dissimilarity_measures/src/eigen/demos/mix_eigen_and_c/binary_library.h +0 -71
- sequenzo/dissimilarity_measures/src/eigen/demos/opengl/camera.h +0 -118
- sequenzo/dissimilarity_measures/src/eigen/demos/opengl/gpuhelper.h +0 -207
- sequenzo/dissimilarity_measures/src/eigen/demos/opengl/icosphere.h +0 -30
- sequenzo/dissimilarity_measures/src/eigen/demos/opengl/quaternion_demo.h +0 -114
- sequenzo/dissimilarity_measures/src/eigen/demos/opengl/trackball.h +0 -42
- sequenzo/dissimilarity_measures/src/eigen/lapack/lapack_common.h +0 -29
- sequenzo/dissimilarity_measures/src/eigen/scripts/relicense.py +0 -69
- sequenzo/dissimilarity_measures/src/eigen/test/AnnoyingScalar.h +0 -165
- sequenzo/dissimilarity_measures/src/eigen/test/MovableScalar.h +0 -35
- sequenzo/dissimilarity_measures/src/eigen/test/SafeScalar.h +0 -30
- sequenzo/dissimilarity_measures/src/eigen/test/bug1213.h +0 -8
- sequenzo/dissimilarity_measures/src/eigen/test/evaluator_common.h +0 -0
- sequenzo/dissimilarity_measures/src/eigen/test/gpu_common.h +0 -176
- sequenzo/dissimilarity_measures/src/eigen/test/main.h +0 -857
- sequenzo/dissimilarity_measures/src/eigen/test/packetmath_test_shared.h +0 -275
- sequenzo/dissimilarity_measures/src/eigen/test/product.h +0 -259
- sequenzo/dissimilarity_measures/src/eigen/test/random_without_cast_overflow.h +0 -152
- sequenzo/dissimilarity_measures/src/eigen/test/solverbase.h +0 -36
- sequenzo/dissimilarity_measures/src/eigen/test/sparse.h +0 -204
- sequenzo/dissimilarity_measures/src/eigen/test/sparse_solver.h +0 -699
- sequenzo/dissimilarity_measures/src/eigen/test/split_test_helper.h +0 -5994
- sequenzo/dissimilarity_measures/src/eigen/test/svd_common.h +0 -521
- sequenzo/dissimilarity_measures/src/eigen/test/svd_fill.h +0 -118
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/Tensor.h +0 -554
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h +0 -329
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h +0 -247
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h +0 -1176
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h +0 -1559
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h +0 -1093
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h +0 -518
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h +0 -377
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h +0 -1023
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h +0 -73
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h +0 -6
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionGpu.h +0 -1413
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h +0 -575
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h +0 -1650
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h +0 -1679
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h +0 -456
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h +0 -1132
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h +0 -544
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h +0 -214
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h +0 -347
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h +0 -137
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h +0 -6
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h +0 -104
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceGpu.h +0 -389
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h +0 -1048
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h +0 -409
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h +0 -236
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h +0 -490
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h +0 -236
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h +0 -983
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h +0 -703
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h +0 -388
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h +0 -669
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h +0 -379
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h +0 -237
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h +0 -191
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h +0 -488
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h +0 -302
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h +0 -33
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaDefines.h +0 -99
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaUndefines.h +0 -44
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h +0 -79
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h +0 -603
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h +0 -738
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h +0 -247
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h +0 -82
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h +0 -263
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h +0 -216
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h +0 -98
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h +0 -327
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h +0 -311
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h +0 -1102
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h +0 -708
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h +0 -291
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h +0 -322
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h +0 -998
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h +0 -6
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReductionGpu.h +0 -966
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h +0 -582
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h +0 -454
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h +0 -465
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h +0 -528
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorScanSycl.h +0 -513
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h +0 -471
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h +0 -161
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h +0 -346
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorTrace.h +0 -303
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h +0 -264
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h +0 -249
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h +0 -629
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h +0 -293
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h +0 -236
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h +0 -338
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h +0 -669
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/Barrier.h +0 -67
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h +0 -249
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h +0 -486
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h +0 -236
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadCancel.h +0 -23
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h +0 -40
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h +0 -301
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h +0 -48
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h +0 -20
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/util/CXX11Meta.h +0 -537
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h +0 -88
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/util/EmulateArray.h +0 -261
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h +0 -158
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h +0 -108
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h +0 -730
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h +0 -220
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/BVH/BVAlgorithms.h +0 -293
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/BVH/KdBVH.h +0 -223
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h +0 -790
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/EulerAngles/EulerAngles.h +0 -355
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/EulerAngles/EulerSystem.h +0 -305
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/FFT/ei_fftw_impl.h +0 -261
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/FFT/ei_kissfft_impl.h +0 -449
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h +0 -187
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/DGMRES.h +0 -511
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/GMRES.h +0 -335
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/IDRS.h +0 -436
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h +0 -90
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/IterationController.h +0 -154
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/MINRES.h +0 -267
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/IterativeSolvers/Scaling.h +0 -193
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h +0 -305
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h +0 -84
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h +0 -202
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h +0 -160
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h +0 -188
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h +0 -396
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h +0 -441
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h +0 -569
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h +0 -373
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h +0 -705
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h +0 -368
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MatrixFunctions/StemFunction.h +0 -117
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/MoreVectorization/MathFunctions.h +0 -95
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h +0 -601
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h +0 -657
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/chkder.h +0 -66
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/covar.h +0 -70
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/dogleg.h +0 -107
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h +0 -79
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/lmpar.h +0 -298
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h +0 -91
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h +0 -30
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/r1updt.h +0 -99
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h +0 -49
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h +0 -130
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Polynomials/Companion.h +0 -280
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Polynomials/PolynomialSolver.h +0 -428
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Polynomials/PolynomialUtils.h +0 -143
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h +0 -352
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineMatrix.h +0 -862
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h +0 -212
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineProduct.h +0 -295
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineStorage.h +0 -259
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Skyline/SkylineUtil.h +0 -89
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h +0 -122
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h +0 -1079
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h +0 -404
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/MarketIO.h +0 -282
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h +0 -247
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SparseExtra/RandomSetter.h +0 -349
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsArrayAPI.h +0 -286
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsBFloat16.h +0 -68
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsFunctors.h +0 -357
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsHalf.h +0 -66
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsImpl.h +0 -1959
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsPacketMath.h +0 -118
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/HipVectorCompatibility.h +0 -67
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h +0 -167
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsBFloat16.h +0 -58
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h +0 -330
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h +0 -58
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h +0 -2045
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h +0 -79
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/AVX/BesselFunctions.h +0 -46
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/AVX/SpecialFunctions.h +0 -16
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/BesselFunctions.h +0 -46
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/SpecialFunctions.h +0 -16
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/GPU/SpecialFunctions.h +0 -369
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/NEON/BesselFunctions.h +0 -54
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/SpecialFunctions/arch/NEON/SpecialFunctions.h +0 -34
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Splines/Spline.h +0 -507
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Splines/SplineFitting.h +0 -431
- sequenzo/dissimilarity_measures/src/eigen/unsupported/Eigen/src/Splines/SplineFwd.h +0 -93
- sequenzo/dissimilarity_measures/src/eigen/unsupported/test/matrix_functions.h +0 -67
- sequenzo-0.1.17.dist-info/RECORD +0 -631
- {sequenzo-0.1.17.dist-info → sequenzo-0.1.19.dist-info}/WHEEL +0 -0
- {sequenzo-0.1.17.dist-info → sequenzo-0.1.19.dist-info}/licenses/LICENSE +0 -0
- {sequenzo-0.1.17.dist-info → sequenzo-0.1.19.dist-info}/top_level.txt +0 -0
|
Binary file
|
sequenzo/clustering/KMedoids.py
CHANGED
|
@@ -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
|
|
Binary file
|
|
@@ -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
|
|
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
|
-
|
|
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
|
-
|
|
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("&", "&").replace('<', '<').replace('>', '>').replace('"', '"')
|
|
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)
|
sequenzo/define_sequence_data.py
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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=
|
|
475
|
+
ax.legend(handles=legend_handles, loc='center', title="States", fontsize=10)
|
|
435
476
|
ax.axis('off')
|
|
436
477
|
|
|
437
478
|
if save_as:
|
|
Binary file
|
|
@@ -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
|
|
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
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
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;
|