Skip to content

Commit c21349b

Browse files
committed
Made the iterations arg actually change the number of iterations
1 parent 4c72ffc commit c21349b

File tree

4 files changed

+17
-10
lines changed

4 files changed

+17
-10
lines changed

bin/concoct

+2-2
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,12 @@ def main(args):
6161

6262
logging.info('PCA transformed data.')
6363

64-
logging.info('Will call vbgmm with parameters: %s, %s, %s, %s' % (Output.CONCOCT_PATH, args.clusters, args.length_threshold, args.threads))
64+
logging.info('Will call vbgmm with parameters: %s, %s, %s, %s, %s' % (Output.CONCOCT_PATH, args.clusters, args.length_threshold, args.threads,args.iterations))
6565

6666
N_contigs = transform_filter.shape[0]
6767
assign = np.zeros(N_contigs, dtype=np.int32)
6868

69-
assign = vbgmm.fit(np.copy(transform_filter,order='C'), int(args.clusters), int(args.seed), int(args.threads))
69+
assign = vbgmm.fit(np.copy(transform_filter,order='C'), int(args.clusters), int(args.seed), int(args.threads),int(args.iterations))
7070

7171

7272
Output.write_assign(

c-concoct/c_vbgmm_fit.c

+7-2
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,16 @@
3434
/*User includes*/
3535
#include "c_vbgmm_fit.h"
3636

37-
void c_vbgmm_fit (double* adX, int nN, int nD, int nK, int seed, int* anAssign, int nThreads)
37+
void c_vbgmm_fit (double* adX, int nN, int nD, int nK, int seed, int* anAssign, int nThreads, int nIter)
3838
{
3939
int debug = 0;
4040
int bAssign = 0;
41-
driverMP(adX, nN, nD, anAssign, nK, seed, DEF_MAX_ITER, DEF_EPSILON, debug, bAssign, nThreads);
41+
42+
if (nIter < 1){
43+
nIter = DEF_MAX_ITER;
44+
}
45+
46+
driverMP(adX, nN, nD, anAssign, nK, seed, nIter, DEF_EPSILON, debug, bAssign, nThreads);
4247

4348
return;
4449
}

c-concoct/c_vbgmm_fit.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ typedef struct s_Cluster
121121

122122
/*user defines*/
123123

124-
void c_vbgmm_fit (double* adX, int nN, int nD, int nK, int seed, int* anAssign, int nThreads);
124+
void c_vbgmm_fit (double* adX, int nN, int nD, int nK, int seed, int* anAssign, int nThreads, int nIter);
125125

126126
int driverMP(double *adX, int nN, int nD, int *anAssign, int nKStart, unsigned long lSeed,
127127
int nMaxIter, double dEpsilon, int debug, int bAssign, int nThreads);

c-concoct/vbgmm.pyx

+7-5
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ import numpy as np
1212
cimport numpy as np
1313

1414
# declare the interface to the C code
15-
cdef extern void c_vbgmm_fit (double* adX, int nN, int nD, int nK, int seed, int* anAssign, int nThreads)
15+
cdef extern void c_vbgmm_fit (double* adX, int nN, int nD, int nK, int seed, int* anAssign, int nThreads, int nIter)
1616
@cython.boundscheck(False)
1717
@cython.wraparound(False)
1818

19-
def fit(np.ndarray[double, ndim=2, mode="c"] xarray not None, nClusters, seed, threads):
19+
def fit(np.ndarray[double, ndim=2, mode="c"] xarray not None, nClusters, seed, threads, piter):
2020
"""
2121
fit (xarray, nClusters, seed, threads)
2222
@@ -26,18 +26,20 @@ def fit(np.ndarray[double, ndim=2, mode="c"] xarray not None, nClusters, seed, t
2626
param: nClusters -- an int, number of start clusters
2727
param: seed -- an int, the random seed
2828
param: threads -- int, the number of threads to use
29-
29+
param: piter -- int, the number of VB iterations to use
3030
"""
31-
cdef int nN, nD, nK, nThreads
31+
cdef int nN, nD, nK, nThreads, nIter
3232

3333
nN, nD = xarray.shape[0], xarray.shape[1]
3434

3535
nK = nClusters
3636

37+
nIter = piter
38+
3739
nThreads = threads
3840

3941
cdef np.ndarray[int, ndim=1,mode="c"] assign = np.zeros((nN), dtype=np.intc)
4042

41-
c_vbgmm_fit (&xarray[0,0], nN, nD, nK, seed, &assign[0], nThreads)
43+
c_vbgmm_fit (&xarray[0,0], nN, nD, nK, seed, &assign[0], nThreads, nIter)
4244

4345
return assign

0 commit comments

Comments
 (0)