servalcat 0.4.88__tar.gz → 0.4.99__tar.gz
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 servalcat might be problematic. Click here for more details.
- {servalcat-0.4.88 → servalcat-0.4.99}/CMakeLists.txt +36 -16
- {servalcat-0.4.88 → servalcat-0.4.99}/PKG-INFO +4 -4
- {servalcat-0.4.88 → servalcat-0.4.99}/README.md +1 -1
- {servalcat-0.4.88 → servalcat-0.4.99}/pyproject.toml +11 -9
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/__init__.py +2 -2
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/refine/refine.py +125 -42
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/refine/refine_geom.py +24 -11
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/refine/refine_spa.py +51 -30
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/refine/refine_xtal.py +20 -7
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/refine/spa.py +12 -4
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/refine/xtal.py +11 -8
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/refmac/refmac_wrapper.py +3 -11
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/spa/fofc.py +9 -3
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/spa/fsc.py +8 -10
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/spa/run_refmac.py +16 -11
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/spa/translate.py +2 -2
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/utils/commands.py +154 -4
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/utils/fileio.py +15 -8
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/utils/hkl.py +24 -22
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/utils/logger.py +25 -1
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/utils/maps.py +2 -2
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/utils/model.py +10 -10
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/utils/refmac.py +1 -1
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/utils/restraints.py +27 -28
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/utils/symmetry.py +5 -5
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/xtal/french_wilson.py +7 -5
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/xtal/sigmaa.py +52 -30
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/xtal/twin.py +12 -6
- {servalcat-0.4.88 → servalcat-0.4.99}/src/amplitude.cpp +40 -22
- servalcat-0.4.99/src/array.h +18 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/src/ext.cpp +10 -8
- {servalcat-0.4.88 → servalcat-0.4.99}/src/intensity.cpp +112 -65
- {servalcat-0.4.88 → servalcat-0.4.99}/src/math.hpp +14 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/src/refine/cgsolve.hpp +16 -25
- {servalcat-0.4.88 → servalcat-0.4.99}/src/refine/geom.hpp +116 -38
- {servalcat-0.4.88 → servalcat-0.4.99}/src/refine/ll.hpp +79 -14
- {servalcat-0.4.88 → servalcat-0.4.99}/src/refine/ncsr.hpp +4 -1
- {servalcat-0.4.88 → servalcat-0.4.99}/src/refine.cpp +400 -307
- {servalcat-0.4.88 → servalcat-0.4.99}/src/twin.cpp +127 -125
- servalcat-0.4.99/tests/biotin/biotin_talos.cif +1328 -0
- servalcat-0.4.99/tests/biotin/biotin_talos.hkl +960 -0
- servalcat-0.4.99/tests/biotin/biotin_talos.ins +38 -0
- servalcat-0.4.99/tests/test_refine.py +92 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/tests/test_spa.py +2 -2
- servalcat-0.4.88/tests/test_refine.py +0 -55
- {servalcat-0.4.88 → servalcat-0.4.99}/LICENSE +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/commit.sh +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/docs/Makefile +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/docs/commands.rst +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/docs/conf.py +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/docs/help/fofc.txt +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/docs/help/refine_spa.txt +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/docs/help/trim.txt +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/docs/index.rst +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/docs/overview.rst +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/docs/requirements.txt +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/docs/spa.rst +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/docs/spa_examples/ab42.rst +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/docs/spa_examples/chrmine.rst +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/docs/spa_examples/chrmine_figs/ccpem_input-fs8.png +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/docs/spa_examples/chrmine_figs/coot_113-fs8.png +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/docs/spa_examples/chrmine_figs/refined_fsc_1.png +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/docs/spa_examples/chrmine_figs/refined_fsc_2.png +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/docs/spa_examples/index.rst +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/docs/spa_examples/omitmap.rst +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/docs/spa_examples/p4_figs/coot_fofc_omit_4sigma.png +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/docs/spa_examples/p4_figs/pymol_fofc_omit_4sigma.png +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/COPYING.APACHE +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/COPYING.BSD +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/COPYING.GPL +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/COPYING.LGPL +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/COPYING.MINPACK +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/COPYING.MPL2 +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/COPYING.README +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/Cholesky +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/CholmodSupport +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/Core +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/Dense +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/Eigen +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/Eigenvalues +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/Geometry +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/Householder +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/IterativeLinearSolvers +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/Jacobi +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/KLUSupport +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/LU +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/MetisSupport +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/OrderingMethods +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/PaStiXSupport +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/PardisoSupport +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/QR +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/QtAlignedMalloc +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/SPQRSupport +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/SVD +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/Sparse +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/SparseCholesky +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/SparseCore +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/SparseLU +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/SparseQR +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/StdDeque +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/StdList +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/StdVector +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/SuperLUSupport +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/UmfPackSupport +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Cholesky/LDLT.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Cholesky/LLT.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/ArithmeticSequence.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/Array.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/ArrayBase.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/ArrayWrapper.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/Assign.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/AssignEvaluator.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/Assign_MKL.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/BandMatrix.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/Block.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/BooleanRedux.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/CommaInitializer.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/ConditionEstimator.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/CoreEvaluators.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/CoreIterators.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/CwiseBinaryOp.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/CwiseNullaryOp.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/CwiseTernaryOp.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/CwiseUnaryOp.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/CwiseUnaryView.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/DenseBase.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/DenseCoeffsBase.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/DenseStorage.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/Diagonal.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/DiagonalMatrix.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/DiagonalProduct.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/Dot.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/EigenBase.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/ForceAlignedAccess.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/Fuzzy.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/GeneralProduct.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/GenericPacketMath.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/GlobalFunctions.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/IO.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/IndexedView.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/Inverse.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/Map.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/MapBase.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/MathFunctions.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/MathFunctionsImpl.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/Matrix.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/MatrixBase.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/NestByValue.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/NoAlias.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/NumTraits.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/PartialReduxEvaluator.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/PermutationMatrix.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/PlainObjectBase.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/Product.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/ProductEvaluators.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/Random.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/Redux.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/Ref.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/Replicate.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/Reshaped.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/ReturnByValue.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/Reverse.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/Select.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/SelfAdjointView.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/Solve.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/SolveTriangular.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/SolverBase.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/StableNorm.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/StlIterators.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/Stride.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/Swap.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/Transpose.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/Transpositions.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/TriangularMatrix.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/VectorBlock.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/VectorwiseOp.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/Visitor.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/AVX/Complex.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/AVX512/Complex.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/AVX512/TypeCasting.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/CUDA/Complex.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/Default/BFloat16.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/Default/Half.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/Default/Settings.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/Default/TypeCasting.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/GPU/MathFunctions.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/MSA/Complex.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/NEON/Complex.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/SSE/Complex.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/ZVector/Complex.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/functors/BinaryFunctors.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/functors/NullaryFunctors.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/functors/StlFunctors.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/functors/TernaryFunctors.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/functors/UnaryFunctors.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/products/Parallelizer.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/products/SelfadjointProduct.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/products/TriangularMatrixVector.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/products/TriangularSolverVector.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/util/BlasUtil.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/util/ConfigureVectorization.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/util/Constants.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/util/ForwardDeclarations.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/util/IndexedViewHelper.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/util/IntegralConstant.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/util/MKL_support.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/util/Macros.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/util/Memory.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/util/Meta.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/util/NonMPL2.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/util/ReshapedHelper.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/util/StaticAssert.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/util/SymbolicIndex.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Core/util/XprHelper.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Eigenvalues/EigenSolver.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Eigenvalues/RealQZ.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Eigenvalues/RealSchur.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Geometry/AlignedBox.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Geometry/AngleAxis.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Geometry/EulerAngles.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Geometry/Homogeneous.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Geometry/Hyperplane.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Geometry/OrthoMethods.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Geometry/ParametrizedLine.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Geometry/Quaternion.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Geometry/Rotation2D.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Geometry/RotationBase.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Geometry/Scaling.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Geometry/Transform.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Geometry/Translation.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Geometry/Umeyama.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Householder/BlockHouseholder.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Householder/Householder.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Householder/HouseholderSequence.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/Jacobi/Jacobi.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/KLUSupport/KLUSupport.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/LU/Determinant.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/LU/FullPivLU.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/LU/InverseImpl.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/LU/PartialPivLU.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/LU/arch/InverseSize4.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/MetisSupport/MetisSupport.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/OrderingMethods/Amd.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/OrderingMethods/Ordering.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/QR/ColPivHouseholderQR.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/QR/FullPivHouseholderQR.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/QR/HouseholderQR.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SVD/BDCSVD.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SVD/JacobiSVD.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SVD/SVDBase.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SVD/UpperBidiagonalization.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/AmbiVector.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/CompressedStorage.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparseAssign.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparseBlock.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparseColEtree.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparseDot.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparseFuzzy.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparseMap.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparseMatrix.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparsePermutation.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparseProduct.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparseRedux.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparseRef.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparseSolverBase.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparseTranspose.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparseTriangularView.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparseUtil.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparseVector.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/SparseView.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseCore/TriangularSolver.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseLU/SparseLU.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseLU/SparseLUImpl.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseLU/SparseLU_Structs.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseLU/SparseLU_Utils.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SparseQR/SparseQR.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/StlSupport/StdDeque.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/StlSupport/StdList.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/StlSupport/StdVector.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/StlSupport/details.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/misc/Image.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/misc/Kernel.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/misc/RealSvd2x2.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/misc/blas.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/misc/lapack.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/misc/lapacke.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/misc/lapacke_mangling.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/plugins/BlockMethods.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/plugins/IndexedViewMethods.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/Eigen/src/plugins/ReshapedMethods.h +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/eigen/README.md +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/__main__.py +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/refine/__init__.py +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/refine/cgsolve.py +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/refmac/__init__.py +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/refmac/exte.py +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/refmac/refmac_keywords.py +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/spa/__init__.py +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/spa/localcc.py +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/spa/realspcc_from_var.py +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/spa/shift_maps.py +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/spa/shiftback.py +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/utils/__init__.py +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/utils/generate_operators.py +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/xtal/__init__.py +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/servalcat/xtal/run_refmac_small.py +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/src/lambertw.hpp +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/tests/5e5z/5e5z.mtz.gz +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/tests/5e5z/5e5z.pdb.gz +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/tests/biotin/biotin_talos.mtz +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/tests/biotin/biotin_talos.pdb +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/tests/dict/acedrg_link_4D4-MS6.cif +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/tests/dict/acedrg_link_MS6-GLY.cif +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/tests/test_for_ci.py +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/tests/test_misc.py +0 -0
- {servalcat-0.4.88 → servalcat-0.4.99}/tests/test_xtal.py +0 -0
|
@@ -8,11 +8,14 @@ string(REGEX REPLACE "__version__ = '(.+)'" "\\1" serval_version_str ${serval_ve
|
|
|
8
8
|
project(servalcat LANGUAGES C CXX VERSION ${serval_version_str})
|
|
9
9
|
message(STATUS "Servalcat version ${PROJECT_VERSION}")
|
|
10
10
|
|
|
11
|
+
option(SEARCH_INSTALLED_GEMMI "Search for gemmi-config.cmake and use it if found" ON)
|
|
12
|
+
option(INSTALL_GEMMI_IF_BUILT "Install also Python module gemmi, if it was built" OFF)
|
|
13
|
+
|
|
11
14
|
include(GNUInstallDirs)
|
|
12
15
|
|
|
13
16
|
if (DEFINED SKBUILD) # building with scikit-build-core (pip install)
|
|
14
17
|
set(PYTHON_INSTALL_DIR "${SKBUILD_PLATLIB_DIR}")
|
|
15
|
-
set(CMAKE_INSTALL_BINDIR "${SKBUILD_SCRIPTS_DIR}")
|
|
18
|
+
#set(CMAKE_INSTALL_BINDIR "${SKBUILD_SCRIPTS_DIR}")
|
|
16
19
|
endif()
|
|
17
20
|
|
|
18
21
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
@@ -28,6 +31,7 @@ if (NOT CMAKE_BUILD_TYPE AND NOT USING_ENV_CXXFLAGS)
|
|
|
28
31
|
FORCE)
|
|
29
32
|
endif()
|
|
30
33
|
|
|
34
|
+
|
|
31
35
|
# CMake >=3.18 has subcomponent Development.Module, scikit-build-core also has it
|
|
32
36
|
if (${CMAKE_VERSION} VERSION_LESS 3.18 AND NOT SKBUILD)
|
|
33
37
|
find_package(Python ${PYTHON_VERSION} REQUIRED COMPONENTS Interpreter Development)
|
|
@@ -35,13 +39,14 @@ else()
|
|
|
35
39
|
find_package(Python ${PYTHON_VERSION} REQUIRED COMPONENTS Interpreter Development.Module)
|
|
36
40
|
endif()
|
|
37
41
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
execute_process(
|
|
43
|
+
COMMAND "${Python_EXECUTABLE}" -m nanobind --cmake_dir
|
|
44
|
+
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE NB_DIR)
|
|
45
|
+
list(APPEND CMAKE_PREFIX_PATH "${NB_DIR}")
|
|
46
|
+
find_package(nanobind 2.2.0 CONFIG REQUIRED)
|
|
47
|
+
message(STATUS "Found nanobind ${nanobind_VERSION}: ${NB_DIR}")
|
|
43
48
|
|
|
44
|
-
|
|
49
|
+
nanobind_add_module(ext src/ext.cpp src/intensity.cpp src/amplitude.cpp src/refine.cpp src/twin.cpp)
|
|
45
50
|
|
|
46
51
|
if (EXISTS "${CMAKE_HOME_DIRECTORY}/eigen/Eigen")
|
|
47
52
|
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/eigen")
|
|
@@ -52,31 +57,46 @@ else()
|
|
|
52
57
|
target_link_libraries(ext PRIVATE Eigen3::Eigen)
|
|
53
58
|
endif()
|
|
54
59
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
+
# We need either gemmi C++ development files (headers, library, cmake config)
|
|
61
|
+
# or gemmi sources. If we have the former with a shared library, it may require
|
|
62
|
+
# extra effort to make sure that the shared library is found at runtime.
|
|
63
|
+
if (SEARCH_INSTALLED_GEMMI)
|
|
64
|
+
find_package(gemmi 0.7.0 CONFIG)
|
|
65
|
+
endif()
|
|
66
|
+
if (gemmi_FOUND)
|
|
67
|
+
message(STATUS " based on config from ${gemmi_DIR}")
|
|
68
|
+
get_target_property(gemmi_TYPE gemmi::gemmi_cpp TYPE)
|
|
69
|
+
if (${gemmi_TYPE} STREQUAL "SHARED_LIBRARY")
|
|
70
|
+
message(STATUS "** Servalcat Python module will be linked with gemmi shared library. **")
|
|
71
|
+
message(STATUS "** The module may require 'repairing' to find the library at runtime. **")
|
|
60
72
|
endif()
|
|
61
|
-
find_package(gemmi 0.6.7 CONFIG REQUIRED)
|
|
62
73
|
else()
|
|
63
74
|
set(USE_PYTHON ON CACHE BOOL "" FORCE)
|
|
75
|
+
set(BUILD_GEMMI_PROGRAM OFF CACHE BOOL "" FORCE)
|
|
76
|
+
set(INSTALL_DEV_FILES OFF CACHE BOOL "" FORCE)
|
|
77
|
+
set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
|
|
64
78
|
message(STATUS "")
|
|
65
79
|
message(STATUS "Configuring GEMMI...")
|
|
80
|
+
if (INSTALL_GEMMI_IF_BUILT AND NOT gemmi_FOUND)
|
|
81
|
+
set(exclude_or_not)
|
|
82
|
+
else()
|
|
83
|
+
set(exclude_or_not EXCLUDE_FROM_ALL)
|
|
84
|
+
endif()
|
|
66
85
|
if (EXISTS "${CMAKE_HOME_DIRECTORY}/gemmi/include/gemmi")
|
|
67
86
|
message(STATUS "Using ${CMAKE_HOME_DIRECTORY}/gemmi (internal copy).")
|
|
68
|
-
add_subdirectory(gemmi
|
|
87
|
+
add_subdirectory(gemmi ${exclude_or_not})
|
|
69
88
|
else()
|
|
89
|
+
message(STATUS "Using FetchContent...")
|
|
70
90
|
include(FetchContent)
|
|
71
91
|
FetchContent_Declare(
|
|
72
92
|
gemmi
|
|
73
93
|
GIT_REPOSITORY https://github.com/project-gemmi/gemmi.git
|
|
74
|
-
GIT_TAG v0.
|
|
94
|
+
GIT_TAG v0.7.0
|
|
75
95
|
)
|
|
76
96
|
FetchContent_GetProperties(gemmi)
|
|
77
97
|
if (NOT gemmi_POPULATED)
|
|
78
98
|
FetchContent_Populate(gemmi)
|
|
79
|
-
add_subdirectory(${gemmi_SOURCE_DIR} ${gemmi_BINARY_DIR}
|
|
99
|
+
add_subdirectory(${gemmi_SOURCE_DIR} ${gemmi_BINARY_DIR} ${exclude_or_not})
|
|
80
100
|
endif()
|
|
81
101
|
endif()
|
|
82
102
|
add_dependencies(ext gemmi_py)
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: servalcat
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.99
|
|
4
4
|
Summary: Structure refinement and validation for crystallography and single particle analysis
|
|
5
5
|
Author: Keitaro Yamashita, Garib N. Murshudov
|
|
6
6
|
License: MPL-2.0
|
|
7
7
|
Project-URL: Repository, https://github.com/keitaroyam/servalcat
|
|
8
|
-
Requires-Python: >=3.
|
|
8
|
+
Requires-Python: >=3.8
|
|
9
9
|
Requires-Dist: packaging
|
|
10
10
|
Requires-Dist: numpy>=1.15
|
|
11
11
|
Requires-Dist: scipy
|
|
12
12
|
Requires-Dist: pandas>=1.1.0
|
|
13
|
-
Requires-Dist: gemmi==0.
|
|
13
|
+
Requires-Dist: gemmi==0.7.0
|
|
14
14
|
Description-Content-Type: text/markdown
|
|
15
15
|
|
|
16
16
|
# Servalcat
|
|
@@ -40,7 +40,7 @@ pip install servalcat
|
|
|
40
40
|
```
|
|
41
41
|
will install the stable version.
|
|
42
42
|
|
|
43
|
-
The required GEMMI version is now [v0.
|
|
43
|
+
The required GEMMI version is now [v0.7.0](https://github.com/project-gemmi/gemmi/releases/tag/v0.7.0). It may not work with the latest gemmi code from the github. The policy is in the main branch I only push the code that works with the latest package of GEMMI.
|
|
44
44
|
|
|
45
45
|
To use the Refmac5 related commands, you also need to install [CCP4](https://www.ccp4.ac.uk/). For "No Refmac5" commands, you may just need [the monomer library](https://github.com/MonomerLibrary/monomers) if CCP4 is not installed.
|
|
46
46
|
|
|
@@ -25,7 +25,7 @@ pip install servalcat
|
|
|
25
25
|
```
|
|
26
26
|
will install the stable version.
|
|
27
27
|
|
|
28
|
-
The required GEMMI version is now [v0.
|
|
28
|
+
The required GEMMI version is now [v0.7.0](https://github.com/project-gemmi/gemmi/releases/tag/v0.7.0). It may not work with the latest gemmi code from the github. The policy is in the main branch I only push the code that works with the latest package of GEMMI.
|
|
29
29
|
|
|
30
30
|
To use the Refmac5 related commands, you also need to install [CCP4](https://www.ccp4.ac.uk/). For "No Refmac5" commands, you may just need [the monomer library](https://github.com/MonomerLibrary/monomers) if CCP4 is not installed.
|
|
31
31
|
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
[build-system]
|
|
2
|
-
requires = ["scikit-build-core~=0.10.
|
|
3
|
-
"pybind11-stubgen~=2.5.1",
|
|
4
|
-
"gemmi @ git+https://github.com/project-gemmi/gemmi.git@v0.6.7",
|
|
5
|
-
]
|
|
2
|
+
requires = ["scikit-build-core~=0.10.7", "nanobind >=2.2"]
|
|
6
3
|
build-backend = "scikit_build_core.build"
|
|
7
4
|
|
|
8
5
|
# https://packaging.python.org/en/latest/specifications/declaring-project-metadata/
|
|
9
6
|
[project]
|
|
10
7
|
name = "servalcat"
|
|
11
8
|
dynamic = ["version"]
|
|
12
|
-
requires-python = ">=3.
|
|
13
|
-
dependencies = ['packaging', 'numpy>=1.15', 'scipy', 'pandas>=1.1.0', 'gemmi==0.
|
|
9
|
+
requires-python = ">=3.8"
|
|
10
|
+
dependencies = ['packaging', 'numpy>=1.15', 'scipy', 'pandas>=1.1.0', 'gemmi==0.7.0']
|
|
14
11
|
description="Structure refinement and validation for crystallography and single particle analysis"
|
|
15
12
|
readme = "README.md"
|
|
16
13
|
authors = [
|
|
@@ -28,7 +25,7 @@ refmacat = "servalcat.refmac.refmac_wrapper:command_line"
|
|
|
28
25
|
#build-dir = "/tmp/gemmi_build2/{wheel_tag}"
|
|
29
26
|
wheel.expand-macos-universal-tags = true # not sure if this is useful
|
|
30
27
|
cmake.build-type = "Release"
|
|
31
|
-
|
|
28
|
+
build.verbose = true
|
|
32
29
|
sdist.include = ["eigen/Eigen", "eigen/README.md", "eigen/COPYING*"]
|
|
33
30
|
sdist.exclude = [".*", "eigen/", "scripts/"]
|
|
34
31
|
|
|
@@ -39,9 +36,14 @@ input = "servalcat/__init__.py"
|
|
|
39
36
|
[tool.cibuildwheel]
|
|
40
37
|
# increase pip debugging output
|
|
41
38
|
build-verbosity = 2
|
|
42
|
-
test-command = "python {project}/tests/test_for_ci.py"
|
|
39
|
+
test-command = "python {project}/tests/test_for_ci.py" # comment out to test with gemmi build
|
|
43
40
|
[tool.cibuildwheel.environment]
|
|
44
|
-
SKBUILD_CMAKE_ARGS = '-
|
|
41
|
+
SKBUILD_CMAKE_ARGS = '-DGENERATE_STUBS=OFF' # -DINSTALL_GEMMI_IF_BUILT=1 to test with gemmi build
|
|
42
|
+
|
|
43
|
+
# Needed for full C++17 support on macOS
|
|
44
|
+
[tool.cibuildwheel.macos.environment]
|
|
45
|
+
MACOSX_DEPLOYMENT_TARGET = "10.14"
|
|
46
|
+
SKBUILD_CMAKE_ARGS = '-DGENERATE_STUBS=OFF' # -DINSTALL_GEMMI_IF_BUILT=1 to test with gemmi build
|
|
45
47
|
|
|
46
48
|
[tool.codespell]
|
|
47
49
|
skip = './eigen,./gemmi,*.pdb,*.crd,*.cif,*.mmcif,*.ent,*.log*,*.dic,tags,*.bak,*build*,*~'
|
|
@@ -28,7 +28,7 @@ b_to_u = utils.model.b_to_u
|
|
|
28
28
|
#atexit.register(profile.print_stats)
|
|
29
29
|
|
|
30
30
|
class Geom:
|
|
31
|
-
def __init__(self, st, topo, monlib, adpr_w=1, shake_rms=0,
|
|
31
|
+
def __init__(self, st, topo, monlib, adpr_w=1, occr_w=1, shake_rms=0,
|
|
32
32
|
params=None, unrestrained=False, use_nucleus=False,
|
|
33
33
|
ncslist=None, atom_pos=None):
|
|
34
34
|
self.st = st
|
|
@@ -53,7 +53,7 @@ class Geom:
|
|
|
53
53
|
n_sym = len(images) + 1
|
|
54
54
|
self.geom.specials.append(ext.Geometry.Special(atom, matp, mata, n_sym))
|
|
55
55
|
self.adpr_w = adpr_w
|
|
56
|
-
self.occr_w =
|
|
56
|
+
self.occr_w = occr_w
|
|
57
57
|
self.unrestrained = unrestrained
|
|
58
58
|
if shake_rms > 0:
|
|
59
59
|
numpy.random.seed(0)
|
|
@@ -225,6 +225,26 @@ def write_stats_json_safe(stats, json_out):
|
|
|
225
225
|
logger.writeln(f"Refinement statistics saved: {json_out}")
|
|
226
226
|
# write_stats_json_safe()
|
|
227
227
|
|
|
228
|
+
def print_h_options(h_change, h_present, refine_h, hout, geom_only):
|
|
229
|
+
if not h_present:
|
|
230
|
+
h_change = gemmi.HydrogenChange.Remove
|
|
231
|
+
logger.writeln("Hydrogen related options")
|
|
232
|
+
logger.write(" use in refinement{}: hydrogen atoms ".format("" if geom_only else "/map calculation"))
|
|
233
|
+
logger.writeln({gemmi.HydrogenChange.ReAddButWater: "have been (re)generated",
|
|
234
|
+
gemmi.HydrogenChange.ReAdd: "(including water) have been (re)generated",
|
|
235
|
+
gemmi.HydrogenChange.ReAddKnown: "(except for rotatable) have been (re) generated",
|
|
236
|
+
gemmi.HydrogenChange.NoChange: "from the input model have been retained",
|
|
237
|
+
gemmi.HydrogenChange.Remove: "have either been removed or were not present"}[h_change])
|
|
238
|
+
if h_present:
|
|
239
|
+
logger.write(" target: hydrogen atoms will be ")
|
|
240
|
+
if geom_only or not refine_h:
|
|
241
|
+
logger.writeln("just optimized according to geometric restraints")
|
|
242
|
+
else:
|
|
243
|
+
logger.writeln("refined against experimental data")
|
|
244
|
+
logger.writeln(" in output model: " + ("written" if hout and h_present else "not written"))
|
|
245
|
+
logger.writeln("")
|
|
246
|
+
# print_hydrogen_options()
|
|
247
|
+
|
|
228
248
|
class GroupOccupancy:
|
|
229
249
|
# TODO max may not be one. should check multiplicity
|
|
230
250
|
def __init__(self, st, params):
|
|
@@ -293,6 +313,7 @@ class GroupOccupancy:
|
|
|
293
313
|
vals = []
|
|
294
314
|
for _, atoms in self.groups:
|
|
295
315
|
occ = numpy.mean([a.occ for a in atoms])
|
|
316
|
+
occ = min(1, max(1e-3, occ))
|
|
296
317
|
vals.append(occ)
|
|
297
318
|
for is_comp, idxes in self.consts:
|
|
298
319
|
sum_occ = sum(vals[i] for i in idxes)
|
|
@@ -311,6 +332,7 @@ class GroupOccupancy:
|
|
|
311
332
|
for p, (_, atoms) in zip(x, self.groups):
|
|
312
333
|
for a in atoms:
|
|
313
334
|
a.occ = p
|
|
335
|
+
#a.occ = max(1, min(1e-3, p))
|
|
314
336
|
|
|
315
337
|
def target(self, x, ll, ls, u):
|
|
316
338
|
self.set_x(x)
|
|
@@ -425,7 +447,7 @@ class Refine:
|
|
|
425
447
|
self.geom.set_h_parents()
|
|
426
448
|
if params and params.get("write_trajectory"):
|
|
427
449
|
self.st_traj = self.st.clone()
|
|
428
|
-
self.st_traj[-1].
|
|
450
|
+
self.st_traj[-1].num = 0
|
|
429
451
|
assert self.geom.group_occ.groups or self.n_params() > 0
|
|
430
452
|
# __init__()
|
|
431
453
|
|
|
@@ -442,6 +464,9 @@ class Refine:
|
|
|
442
464
|
logger.writeln(" sigmas: {}".format(" ".join("{:.2f}".format(x) for x in g.adpr_kl_sigs)))
|
|
443
465
|
else:
|
|
444
466
|
raise LookupError("unknown adpr_mode")
|
|
467
|
+
if self.refine_occ:
|
|
468
|
+
logger.writeln(" Occupancy restraints")
|
|
469
|
+
logger.writeln(" weight: {}".format(self.geom.occr_w))
|
|
445
470
|
|
|
446
471
|
def scale_shifts(self, dx, scale):
|
|
447
472
|
n_atoms = self.geom.n_refine_atoms
|
|
@@ -525,7 +550,7 @@ class Refine:
|
|
|
525
550
|
elif self.adp_mode == 2:
|
|
526
551
|
a = x[offset_b + 6 * j: offset_b + 6 * (j+1)]
|
|
527
552
|
a = gemmi.SMat33d(*a)
|
|
528
|
-
M =
|
|
553
|
+
M = a.as_mat33().array
|
|
529
554
|
v, Q = numpy.linalg.eigh(M) # eig() may return complex due to numerical precision?
|
|
530
555
|
v = numpy.maximum(v, 0.5) # avoid NPD with minimum B = 0.5
|
|
531
556
|
M2 = Q.dot(numpy.diag(v)).dot(Q.T)
|
|
@@ -736,7 +761,7 @@ class Refine:
|
|
|
736
761
|
weight /= 1.1
|
|
737
762
|
if self.st_traj is not None:
|
|
738
763
|
self.st_traj.add_model(self.st[0])
|
|
739
|
-
self.st_traj[-1].
|
|
764
|
+
self.st_traj[-1].num = len(self.st_traj)
|
|
740
765
|
if stats_json_out:
|
|
741
766
|
write_stats_json_safe(stats, stats_json_out)
|
|
742
767
|
|
|
@@ -781,43 +806,101 @@ class Refine:
|
|
|
781
806
|
lstr = utils.make_loggraph_str(df, "stats vs cycle", forplot,
|
|
782
807
|
float_format="{:.4f}".format)
|
|
783
808
|
logger.writeln(lstr)
|
|
784
|
-
self.update_meta(stats[-1])
|
|
785
809
|
return stats
|
|
786
810
|
|
|
787
|
-
def update_meta(self, stats):
|
|
788
|
-
# TODO write stats. probably geom.reporting.get_summary_table should return with _refine_ls_restr.type names
|
|
789
|
-
# should remove st.mod_residues?
|
|
790
|
-
self.st.helices.clear()
|
|
791
|
-
self.st.sheets.clear()
|
|
792
|
-
raw_remarks = [f'REMARK 3',
|
|
793
|
-
f'REMARK 3 REFINEMENT.',
|
|
794
|
-
f'REMARK 3 PROGRAM : SERVALCAT {servalcat.__version__}',
|
|
795
|
-
f'REMARK 3 AUTHORS : YAMASHITA,MURSHUDOV',
|
|
796
|
-
f'REMARK 3',
|
|
797
|
-
]
|
|
798
|
-
si = gemmi.SoftwareItem()
|
|
799
|
-
si.classification = gemmi.SoftwareItem.Classification.Refinement
|
|
800
|
-
si.name = "Servalcat"
|
|
801
|
-
si.version = servalcat.__version__
|
|
802
|
-
si.date = servalcat.__date__
|
|
803
|
-
self.st.meta.software = [si]
|
|
804
|
-
|
|
805
|
-
ri = gemmi.RefinementInfo()
|
|
806
|
-
if "geom" in stats:
|
|
807
|
-
restr_stats = []
|
|
808
|
-
raw_remarks.append("REMARK 3 RMS DEVIATIONS FROM IDEAL VALUES COUNT RMS WEIGHT")
|
|
809
|
-
for k, n, l, pl in (("r.m.s.d.", "Bond distances, non H", "s_bond_nonh_d", "BOND LENGTHS REFINED ATOMS (A)"),
|
|
810
|
-
("r.m.s.d.", "Bond angles, non H", "s_angle_nonh_d", "BOND ANGLES REFINED ATOMS (DEGREES)")):
|
|
811
|
-
if k in stats["geom"]["summary"] and n in stats["geom"]["summary"][k]:
|
|
812
|
-
rr = gemmi.RefinementInfo.Restr(l)
|
|
813
|
-
rr.dev_ideal = stats["geom"]["summary"][k].get(n)
|
|
814
|
-
rr.count = stats["geom"]["summary"]["N restraints"].get(n)
|
|
815
|
-
rr.weight = stats["geom"]["summary"]["Mn(sigma)"].get(n)
|
|
816
|
-
restr_stats.append(rr)
|
|
817
|
-
raw_remarks.append(f"REMARK 3 {pl}:{rr.count:6d} ;{rr.dev_ideal:6.3f} ;{rr.weight:6.3f}")
|
|
818
|
-
ri.restr_stats = restr_stats
|
|
819
|
-
raw_remarks.append("REMARK 3")
|
|
820
|
-
self.st.meta.refinement = [ri]
|
|
821
|
-
self.st.raw_remarks = raw_remarks
|
|
822
|
-
|
|
823
811
|
# class Refine
|
|
812
|
+
|
|
813
|
+
def update_meta(st, stats, ll=None):
|
|
814
|
+
# TODO write stats. probably geom.reporting.get_summary_table should return with _refine_ls_restr.type names
|
|
815
|
+
# should remove st.mod_residues?
|
|
816
|
+
st.helices.clear()
|
|
817
|
+
st.sheets.clear()
|
|
818
|
+
raw_remarks = [f'REMARK 3',
|
|
819
|
+
f'REMARK 3 REFINEMENT.',
|
|
820
|
+
f'REMARK 3 PROGRAM : SERVALCAT {servalcat.__version__}',
|
|
821
|
+
f'REMARK 3 AUTHORS : YAMASHITA,MURSHUDOV',
|
|
822
|
+
f'REMARK 3',
|
|
823
|
+
]
|
|
824
|
+
si = gemmi.SoftwareItem()
|
|
825
|
+
si.classification = gemmi.SoftwareItem.Classification.Refinement
|
|
826
|
+
si.name = "Servalcat"
|
|
827
|
+
si.version = servalcat.__version__
|
|
828
|
+
si.date = servalcat.__date__
|
|
829
|
+
st.meta.software = [si]
|
|
830
|
+
|
|
831
|
+
ri = gemmi.RefinementInfo()
|
|
832
|
+
if "geom" in stats:
|
|
833
|
+
restr_stats = []
|
|
834
|
+
raw_remarks.append("REMARK 3 RMS DEVIATIONS FROM IDEAL VALUES COUNT RMS WEIGHT")
|
|
835
|
+
for k, n, l, pl in (("r.m.s.d.", "Bond distances, non H", "s_bond_nonh_d", "BOND LENGTHS REFINED ATOMS (A)"),
|
|
836
|
+
("r.m.s.d.", "Bond angles, non H", "s_angle_nonh_deg", "BOND ANGLES REFINED ATOMS (DEGREES)"),
|
|
837
|
+
("r.m.s.d.", "Torsion angles, period 1", "s_dihedral_angle_1_deg", "TORSION ANGLES, PERIOD 1 (DEGREES)"),
|
|
838
|
+
("r.m.s.d.", "Torsion angles, period 2", "s_dihedral_angle_2_deg", "TORSION ANGLES, PERIOD 2 (DEGREES)"),
|
|
839
|
+
("r.m.s.d.", "Torsion angles, period 3", "s_dihedral_angle_3_deg", "TORSION ANGLES, PERIOD 3 (DEGREES)"),
|
|
840
|
+
("r.m.s.d.", "Torsion angles, period 6", "s_dihedral_angle_6_deg", "TORSION ANGLES, PERIOD 6 (DEGREES)"),
|
|
841
|
+
("r.m.s.d.", "Chiral centres", "s_chiral_restr", "CHIRAL-CENTER RESTRAINTS (A**3)"),
|
|
842
|
+
("r.m.s.d.", "Planar groups", "s_planes", "GENERAL PLANES REFINED ATOMS (A)"),
|
|
843
|
+
("r.m.s.d.", "VDW nonbonded", "s_nbd", ""),
|
|
844
|
+
("r.m.s.d.", "VDW torsion", "s_nbtor", ""),
|
|
845
|
+
("r.m.s.d.", "VDW hbond", "s_hbond_nbd", ""),
|
|
846
|
+
("r.m.s.d.", "VDW metal", "s_metal_ion", ""),
|
|
847
|
+
("r.m.s.d.", "VDW dummy", "s_dummy_nbd", ""),
|
|
848
|
+
("r.m.s.d.", "VDW nonbonded, symmetry", "s_symmetry_nbd", ""),
|
|
849
|
+
("r.m.s.d.", "VDW torsion, symmetry", "s_symmetry_nbtor", ""),
|
|
850
|
+
("r.m.s.d.", "VDW hbond, symmetry", "s_symmetry_hbond_nbd", ""),
|
|
851
|
+
("r.m.s.d.", "VDW metal, symmetry", "s_symmetry_metal_ion", ""),
|
|
852
|
+
("r.m.s.d.", "VDW dummy, symmetry", "s_symmetry_dummy_nbd", "")):
|
|
853
|
+
if k in stats["geom"]["summary"] and n in stats["geom"]["summary"][k]:
|
|
854
|
+
rr = gemmi.RefinementInfo.Restr(l)
|
|
855
|
+
rr.dev_ideal = round(stats["geom"]["summary"][k].get(n), 4)
|
|
856
|
+
rr.count = stats["geom"]["summary"]["N restraints"].get(n)
|
|
857
|
+
rr.weight = round(stats["geom"]["summary"]["Mn(sigma)"].get(n), 4)
|
|
858
|
+
restr_stats.append(rr)
|
|
859
|
+
if pl:
|
|
860
|
+
raw_remarks.append(f"REMARK 3 {pl}:{rr.count:6d} ;{rr.dev_ideal:6.3f} ;{rr.weight:6.3f}")
|
|
861
|
+
ri.restr_stats = restr_stats
|
|
862
|
+
raw_remarks.append("REMARK 3")
|
|
863
|
+
if ll is not None:
|
|
864
|
+
ri.id = ll.refine_id()
|
|
865
|
+
ri.mean_b = round(numpy.mean([cra.atom.b_iso for cra in st[0].all()]), 2)
|
|
866
|
+
if ll.b_aniso is not None:
|
|
867
|
+
ri.aniso_b = ll.b_aniso
|
|
868
|
+
for k, kd, nd in (("Rwork", "r_work", 4), ("Rfree", "r_free", 4), ("R", "r_all", 4),
|
|
869
|
+
("FSCaverage", "fsc_work", 4),
|
|
870
|
+
("FSCaverage_half1", "fsc_work", 4), ("FSCaverage_half2", "fsc_free", 4)):
|
|
871
|
+
if k in stats["data"]["summary"]:
|
|
872
|
+
setattr(ri, kd, round(stats["data"]["summary"][k], nd))
|
|
873
|
+
bins = []
|
|
874
|
+
n_all = 0
|
|
875
|
+
for b in stats["data"]["binned"]:
|
|
876
|
+
bri = gemmi.BasicRefinementInfo()
|
|
877
|
+
bri.resolution_high = round(b["d_min"], 3)
|
|
878
|
+
bri.resolution_low = round(b["d_max"], 3)
|
|
879
|
+
for k, kd, nd in (("Rwork", "r_work", 4), ("Rfree", "r_free", 4),
|
|
880
|
+
("R1work", "r_work", 4), ("R1free", "r_free", 4),
|
|
881
|
+
("R", "r_all", 4), ("R1", "r_all", 4),
|
|
882
|
+
("CCI", "cc_intensity_work", 4), ("CCF", "cc_fo_fc_work", 4),
|
|
883
|
+
("CCIwork", "cc_intensity_work", 4), ("CCIfree", "cc_intensity_free", 4),
|
|
884
|
+
("CCFwork", "cc_fo_fc_work", 4), ("CCFfree", "cc_fo_fc_free", 4),
|
|
885
|
+
("fsc_FC_full", "fsc_work", 4), ("fsc_model", "fsc_work", 4),
|
|
886
|
+
("fsc_model_half1", "fsc_work", 4), ("fsc_model_half2", "fsc_free", 4),
|
|
887
|
+
("n_work", "work_set_count", 0), ("n_free", "rfree_set_count", 0),
|
|
888
|
+
("n_obs", "reflection_count", 0), ("ncoeffs", "reflection_count", 0)):
|
|
889
|
+
if k in b: setattr(bri, kd, round(b[k], nd))
|
|
890
|
+
if "n_all" in b and "n_obs" in b:
|
|
891
|
+
bri.completeness = round(b["n_obs"] / b["n_all"] * 100, 2)
|
|
892
|
+
n_all += b["n_all"]
|
|
893
|
+
bins.append(bri)
|
|
894
|
+
ri.rfree_set_count = max(-1, sum(b.rfree_set_count for b in bins))
|
|
895
|
+
ri.work_set_count = max(-1, sum(b.work_set_count for b in bins))
|
|
896
|
+
ri.reflection_count = max(-1, sum(b.reflection_count for b in bins))
|
|
897
|
+
ri.resolution_high = round(min(b.resolution_high for b in bins), 3)
|
|
898
|
+
ri.resolution_low = round(max(b.resolution_low for b in bins), 3)
|
|
899
|
+
if ri.reflection_count > 0 and n_all > 0:
|
|
900
|
+
ri.completeness = round(ri.reflection_count / n_all * 100, 2)
|
|
901
|
+
ri.bins = bins
|
|
902
|
+
if ri.rfree_set_count > 0:
|
|
903
|
+
ri.cross_validation_method = "THROUGHOUT"
|
|
904
|
+
st.meta.refinement = [ri]
|
|
905
|
+
st.raw_remarks = raw_remarks
|
|
906
|
+
# update_meta()
|
|
@@ -14,7 +14,7 @@ import json
|
|
|
14
14
|
import servalcat # for version
|
|
15
15
|
from servalcat.utils import logger
|
|
16
16
|
from servalcat import utils
|
|
17
|
-
from servalcat.refine.refine import Geom, Refine, convert_stats_to_dicts
|
|
17
|
+
from servalcat.refine.refine import Geom, Refine, convert_stats_to_dicts, update_meta, print_h_options
|
|
18
18
|
from servalcat.refmac import refmac_keywords
|
|
19
19
|
|
|
20
20
|
def add_arguments(parser):
|
|
@@ -93,9 +93,14 @@ def refine_and_update_dictionary(cif_in, monomer_dir, output_prefix, randomize=0
|
|
|
93
93
|
if len(st) > 0: break
|
|
94
94
|
else:
|
|
95
95
|
raise SystemExit("No model in the cif file")
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
for i in range(len(st)-1):
|
|
97
|
+
del st[1]
|
|
98
|
+
try:
|
|
99
|
+
monlib = utils.restraints.load_monomer_library(st, monomer_dir=monomer_dir, # monlib is needed for ener_lib
|
|
100
|
+
cif_files=[cif_in],
|
|
101
|
+
stop_for_unknowns=True)
|
|
102
|
+
except RuntimeError as e:
|
|
103
|
+
raise SystemExit("Error: {}".format(e))
|
|
99
104
|
all_stats = []
|
|
100
105
|
for i_macro in 0, 1:
|
|
101
106
|
try:
|
|
@@ -121,16 +126,19 @@ def refine_and_update_dictionary(cif_in, monomer_dir, output_prefix, randomize=0
|
|
|
121
126
|
for row in block.find("_chem_comp_atom.", ["atom_id", "?x", "?y", "?z",
|
|
122
127
|
"?pdbx_model_Cartn_x_ideal",
|
|
123
128
|
"?pdbx_model_Cartn_y_ideal",
|
|
124
|
-
"?pdbx_model_Cartn_z_ideal"
|
|
129
|
+
"?pdbx_model_Cartn_z_ideal",
|
|
130
|
+
"?model_Cartn_x", "?model_Cartn_y", "?model_Cartn_z"]):
|
|
125
131
|
p = pos[row.str(0)]
|
|
126
132
|
for i in range(3):
|
|
127
133
|
if row.has(i+1):
|
|
128
134
|
row[i+1] = "{:.3f}".format(p[i])
|
|
129
135
|
if row.has(i+4):
|
|
130
136
|
row[i+4] = "{:.3f}".format(p[i])
|
|
137
|
+
if row.has(i+7):
|
|
138
|
+
row[i+7] = "{:.3f}".format(p[i])
|
|
131
139
|
# add description
|
|
132
140
|
add_program_info_to_dictionary(block, st[0][0][0].name)
|
|
133
|
-
doc.write_file(output_prefix + "_updated.cif",
|
|
141
|
+
doc.write_file(output_prefix + "_updated.cif", options=gemmi.cif.Style.Aligned)
|
|
134
142
|
logger.writeln("Updated dictionary saved: {}".format(output_prefix + "_updated.cif"))
|
|
135
143
|
with open(output_prefix + "_stats.json", "w") as ofs:
|
|
136
144
|
json.dump([convert_stats_to_dicts(x) for x in all_stats],
|
|
@@ -147,11 +155,13 @@ def refine_geom(model_in, monomer_dir, cif_files, h_change, ncycle, output_prefi
|
|
|
147
155
|
logger.writeln("Take NCS constraints into account.")
|
|
148
156
|
st2.expand_ncs(gemmi.HowToNameCopiedChain.Dup, merge_dist=0)
|
|
149
157
|
utils.fileio.write_model(st2, file_name="input_expanded.pdb")
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
158
|
+
try:
|
|
159
|
+
monlib = utils.restraints.load_monomer_library(st, monomer_dir=monomer_dir,
|
|
160
|
+
cif_files=cif_files,
|
|
161
|
+
stop_for_unknowns=True,
|
|
162
|
+
params=params)
|
|
163
|
+
except RuntimeError as e:
|
|
164
|
+
raise SystemExit("Error: {}".format(e))
|
|
155
165
|
utils.restraints.find_and_fix_links(st, monlib, find_metal_links=find_links,
|
|
156
166
|
add_found=find_links) # should remove unknown id here?
|
|
157
167
|
try:
|
|
@@ -161,6 +171,8 @@ def refine_geom(model_in, monomer_dir, cif_files, h_change, ncycle, output_prefi
|
|
|
161
171
|
except RuntimeError as e:
|
|
162
172
|
raise SystemExit("Error: {}".format(e))
|
|
163
173
|
|
|
174
|
+
print_h_options(h_change, st[0].has_hydrogen(), refine_h=True, hout=True, geom_only=True)
|
|
175
|
+
|
|
164
176
|
if use_ncsr:
|
|
165
177
|
ncslist = utils.restraints.prepare_ncs_restraints(st)
|
|
166
178
|
else:
|
|
@@ -169,6 +181,7 @@ def refine_geom(model_in, monomer_dir, cif_files, h_change, ncycle, output_prefi
|
|
|
169
181
|
refiner = Refine(st, geom, params=params)
|
|
170
182
|
stats = refiner.run_cycles(ncycle,
|
|
171
183
|
stats_json_out=output_prefix + "_stats.json")
|
|
184
|
+
update_meta(st, stats[-1])
|
|
172
185
|
refiner.st.name = output_prefix
|
|
173
186
|
utils.fileio.write_model(refiner.st, output_prefix, pdb=True, cif=True)
|
|
174
187
|
if params["write_trajectory"]:
|