From 8ff627109af7c3e041720ee391e8d0ef06a803f6 Mon Sep 17 00:00:00 2001 From: Jinzhe Zeng Date: Tue, 20 Jul 2021 16:26:03 -0400 Subject: [PATCH] fix: fix the breaking change in hmmlearn (#1239) --- reacnetgenerator/_detect.py | 2 +- reacnetgenerator/_hmmfilter.py | 3 ++- reacnetgenerator/_matrix.py | 4 ++-- reacnetgenerator/utils_np.pyx | 4 ++-- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/reacnetgenerator/_detect.py b/reacnetgenerator/_detect.py index d2a4db5e8..88dc50935 100644 --- a/reacnetgenerator/_detect.py +++ b/reacnetgenerator/_detect.py @@ -165,7 +165,7 @@ def _readNfunc(self, f): iscompleted = True stepaindex = index N = [int(s) for s in line.split() if s.isdigit()][0] - atomtype = np.zeros(N, dtype=np.int) + atomtype = np.zeros(N, dtype=int) else: s = line.split() atomtype[int(s[0])-1] = int(s[1])-1 diff --git a/reacnetgenerator/_hmmfilter.py b/reacnetgenerator/_hmmfilter.py index 7fb41ef85..641d51096 100644 --- a/reacnetgenerator/_hmmfilter.py +++ b/reacnetgenerator/_hmmfilter.py @@ -21,6 +21,7 @@ import tempfile from contextlib import ExitStack +import numpy as np from hmmlearn import hmm from .utils import WriteBuffer, appendIfNotNone, bytestolist, listtobytes, run_mp, SharedRNGData @@ -60,7 +61,7 @@ def _getoriginandhmm(self, item): origin) if self.getoriginfile else None hmmbytes = None if self.runHMM: - hmmsignal = self._model.predict(origin) + hmmsignal = self._model.predict(origin).astype(np.int8) if check_zero_signal(hmmsignal) or self.printfiltersignal: hmmbytes = listtobytes(hmmsignal) return originbytes, hmmbytes, line_c diff --git a/reacnetgenerator/_matrix.py b/reacnetgenerator/_matrix.py index 7a1b7e69a..33b5c7291 100644 --- a/reacnetgenerator/_matrix.py +++ b/reacnetgenerator/_matrix.py @@ -71,8 +71,8 @@ def _printtable(self, allroute, timeaxis=None): newreactions.append(reac) sortedreactions = newreactions - table = np.zeros((maxsize, maxsize), dtype=np.int) - reactionnumber = np.zeros((2), dtype=np.int) + table = np.zeros((maxsize, maxsize), dtype=int) + reactionnumber = np.zeros((2), dtype=int) with open(self.reactionfilename if timeaxis is None else f"{self.reactionfilename}.{timeaxis}", 'w') as f: for reaction, n_reaction in sortedreactions: f.write(f"{n_reaction} {'->'.join(reaction)}\n") diff --git a/reacnetgenerator/utils_np.pyx b/reacnetgenerator/utils_np.pyx index bad4d0034..4bfc41b23 100644 --- a/reacnetgenerator/utils_np.pyx +++ b/reacnetgenerator/utils_np.pyx @@ -7,7 +7,7 @@ import numpy as np cimport numpy as np cimport cython -DTYPE = np.int +DTYPE = int ctypedef np.int_t DTYPE_t DTYPE8 = np.int8 ctypedef np.int8_t DTYPE8_t @@ -31,7 +31,7 @@ cpdef idx_to_signal(DTYPE_t[:] idx, int step): @cython.boundscheck(False) @cython.wraparound(False) -cpdef check_zero_signal(DTYPE_t[:] signal): +cpdef check_zero_signal(DTYPE8_t[:] signal): """Benchmark for 1,000,000 loops (1000/2000): Cython: 1.45 s Python: 3.67 s