Git Product home page Git Product logo

dp_gp_cluster's Introduction

Build Status

DP_GP_cluster

DP_GP_cluster clusters genes by expression over a time course using a Dirichlet process Gaussian process model.

Motivation

Genes that follow similar expression trajectories in response to stress or stimulus tend to share biological functions. Thus, it is reasonable and common to cluster genes by expression trajectories. Two important considerations in this problem are (1) selecting the "correct" or "optimal" number of clusters and (2) modeling the trajectory and time-dependency of gene expression. A Dirichlet process can determine the number of clusters in a nonparametric manner, while a Gaussian process can model the trajectory and time-dependency of gene expression in a nonparametric manner.

Installation and Dependencies

DP_GP_cluster requires the following Python packages:

GPy, pandas, numpy, scipy (>= 0.14), matplotlib.pyplot

It has been tested in linux with Python 2.7 and with Anaconda distributions of the latter four above packages.

Download source code and uncompress, then:

python setup.py install

Tests

cd DP_GP_cluster
DP_GP_cluster.py -i test/test.txt -o test/test -p png -n 20 --plot

Code Examples

To cluster genes by expression over time course and create gene-by-gene posterior similarity matrix:

DP_GP_cluster.py -i /path/to/expression.txt -o /path/to/output_prefix [ optional args, e.g. -n 2000 --true_times --criterion MAP --plot ... ]

Above, expression.txt is of the format:

gene    1     2    3    ...    time_t
gene_1  10    20   5    ...    8
gene_2  3     2    50   ...    8
gene_3  18    100  10   ...    22
...
gene_n  45    22   15   ...    60

where the first row is a header containing the time points and the first column is an index containing all gene names. Entries are delimited by tabs.

DP_GP_cluster can handle missing data so if an expression value for a given gene at a given time point leave blank or represent with "NA".

We recommend clustering only differentially expressed genes to save runtime. If genes can further be separated by up- and down-regulated beforehand, this will also substantially decrease runtime.

To cluster thousands of genes, use option --fast, although in this mode, no missing data allowed.

From the above command, the optimal clustering will be saved at /path/to/output_path_prefix_optimal_clustering.txt in a simple tab-delimited format:

cluster	gene
1	gene_1
1	gene_23
2	gene_7
...
k	gene_30

Because the optimal clustering is chosen after the entirety of Gibbs sampling, the script can be rerun with alternative clustering optimality criteria to yield different sets of clusters. Also, if --plot flag was not indicated when the above script is called, plots can be generated after sampling:

DP_GP_cluster.py \
-i /path/to/expression.txt \
--sim_mat /path/to/output_prefix_posterior_similarity_matrix.txt \
--clusterings /path/to/output_prefix_clusterings.txt \
--criterion MPEAR \
--post_process \
--plot --plot_types png,pdf \
--output /path/to/output_prefix_MPEAR_optimal_clustering.txt \
--output_path_prefix /path/to/output_prefix_MPEAR

When the --plot flag is indicated, the script plots (1) gene expression trajectories by cluster along with the Gaussian Process parameters of each cluster and (2) the posterior similarity matrix in the form of a heatmap with dendrogram. For example:

Gene expression trajectories by cluster*

expression

*from McDowell et al. 2017, A549 dexamethasone exposure RNA-seq data

Posterior similarity matrix**

PSM

**from McDowell et al. 2017, H. salinarum hydrogen peroxide exposure microarray data

For more details on particular parameters, see detailed help message in script.

Using DP_GP functions without wrapper script

Users have the option of directly importing DP_GP for direct access to functions. For example,

from DP_GP import core
import GPy
from DP_GP import cluster_tools
import numpy as np
from collections import defaultdict

expression = "/path/to/expression.txt"
optimal_clusters_out = "/path/to/optimal_clusters.txt"

# read in gene expression matrix
gene_expression_matrix, gene_names, t, t_labels = core.read_gene_expression_matrices([expression])

# run Gibbs Sampler
GS = core.gibbs_sampler(gene_expression_matrix, t, 
                        max_num_iterations=200, 
                        burnIn_phaseI=50, burnIn_phaseII=100)
sim_mat, all_clusterings, sampled_clusterings, log_likelihoods, iter_num = GS.sampler()

sampled_clusterings.columns = gene_names
all_clusterings.columns = gene_names

# select best clustering by maximum a posteriori estimate
optimal_clusters = cluster_tools.best_clustering_by_log_likelihood(np.array(sampled_clusterings), 
                                                                   log_likelihoods)

# combine gene_names and optimal_cluster info
optimal_cluster_labels = defaultdict(list)
optimal_cluster_labels_original_gene_names = defaultdict(list)
for gene, (gene_name, cluster) in enumerate(zip(gene_names, optimal_clusters)):
    optimal_cluster_labels[cluster].append(gene)
    optimal_cluster_labels_original_gene_names[cluster].append(gene_name)

# save optimal clusters
cluster_tools.save_cluster_membership_information(optimal_cluster_labels_original_gene_names, 
                                                  optimal_clusters_out)

With this approach, the user will have access to the GP models parameterized to each cluster. With this, the user could, e.g., draw samples from a cluster GP or predict a new expression value at a new time point along with the associated uncertainty.

# [continued from above]
# optimize GP model for best clustering
optimal_clusters_GP = {}
for cluster, genes in optimal_cluster_labels.iteritems():
    optimal_clusters_GP[cluster] = core.dp_cluster(members=genes, 
                                                   X=np.vstack(t), 
                                                   Y=np.array(np.mat(gene_expression_matrix[genes,:])).T)
    optimal_clusters_GP[cluster] = optimal_clusters_GP[cluster].update_cluster_attributes(gene_expression_matrix)

def draw_samples_from_cluster_GP(cluster_GP, n_samples=1):
    samples = np.random.multivariate_normal(cluster_GP.mean, cluster_GP.covK, n_samples)    
    return samples

def predict_new_y_from_cluster_GP(cluster_GP, new_x):
    next_time_point = np.vstack([cluster_GP.t, new_x])
    mean, var = cluster_GP.model._raw_predict(next_time_point)
    y, y_var = float(mean[-1]), float(var[-1])
    return y, y_var

draw_samples_from_cluster_GP(optimal_clusters_GP[1])
predict_new_y_from_cluster_GP(optimal_clusters_GP[2], new_x=7.2)

Citation

I. C. McDowell, D. Manandhar, C. M. Vockley, A. Schmid, T. E. Reddy, B. Engelhardt, Clustering gene expression time series data using an infinite Gaussian process mixture model. bioRxiv (2017).

I. C. McDowell, D. Manandhar, C. M. Vockley, A. Schmid, T. E. Reddy, B. Engelhardt, Clustering gene expression time series data using an infinite Gaussian process mixture model. PLOS Computational Biology (In revision).

License

BSD 3-clause

dp_gp_cluster's People

Contributors

ianmcdowell avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dp_gp_cluster's Issues

How does Replicates being Treated in this Program

Hi devs,

I have been executing the code with our RNA-Seq time-series results with three replicates. It produced a pretty promising clustering results for me. Before moving forward with my results, I would love to know how does the replicates being treated in the program.

Thanks,
Gao

Normalizing data

Do you have any recommendations on how we should normalize the data prior to clustering? What approach did you take?

Size of input file

Hello Ian,

Is there a size limitation for the input data, I am using a matrix of 100000 *1300.
After running for a long time, I am not getting an error or output ?
any solution ?

ImportError: cannot import name core

While running the test on Mac with python 2.7
DP_GP_cluster.py -i test/test.txt -o test/test -p png -n 20 --plot

I am getting the following error

    from DP_GP import core
ImportError: cannot import name core

Can you provide some assistance to fix this?

Unable to install and test DP_GP

Hello team,

I am trying to use DP_GP but having difficult to use it.
The recent error that I got is after trying to install
python2.7 setup.py install
Traceback (most recent call last):
File "setup.py", line 2, in
from Cython.Distutils import build_ext
ImportError: No module named Cython.Distutils

I also tried to run the test plot directly from the bin
python2.7 bin/DP_GP_cluster.py -i test/test.txt -o test/test -p png -n 20 --plot
Traceback (most recent call last):
File "bin/DP_GP_cluster.py", line 24, in
from DP_GP import plot
ImportError: No module named DP_GP

Can you kindly look into this?

ValueError: need at least one array to concatenate

Hi,

I'm running DP_GP_cluster with 19 samples and ~ 8000 genes. This has worked in the past, although it took a long time. However, this time I get the following error:

screen shot 2018-06-04 at 09 48 25

Any ideas of what I may be doing wrong?

Problem regarding Clustering on DEG's

Sir,
I want to create clusters on some found DEG'S. But there are more than one number of files stating DEG's from a RNaSeq raw count data taken in various length 10min, 20min,... Also in triplicates. What values should I pass to the dpgp script, so that it can cluster efficiently. One of the error I got was: can't convert float64 to int64.
Please help me.
Waiting for an early reply.

Job killed

Hi I've been trying to run your program on my data set using a few different conditions, and every time it dies with the error "Killed: 9" after the Gibbs sampling. I am able to successfully run the test data, and my data is very similar, except larger. Does "Killed: 9" refer to a specific error? I couldn't find it in the DP_GP_cluster.py code, so I assume it's from some module that your code imports, but I wanted to check if you knew what it meant?
Thank you.

Fail to create gene-by-gene posterior similarity matrix

Traceback (most recent call last):
File "/private/software/bin/DP_GP_cluster.py", line 475, in
args.do_not_mean_center)
File "DP_GP/core.pyx", line 90, in DP_GP.core.read_gene_expression_matrices (DP_GP/core.c:4266)
TypeError: Cannot cast ufunc subtract output from dtype('float64') to dtype('int64') with casting rule 'same_kind'

Input requirments query

Hi @IanMcDowell

please could you advise on what the input table should contain?

  1. are these counts? log2(counts), TPM? etc,
  2. should the data be scaled and centred for each gene in the input table, it seems to suggest this in your paper but in the example for the documentation these look like raw counts? Any clarification would be much appreciated

Many thanks for your help

Installation problem

hello,
I try to install your tool and i have this message in my terminal:
running install
running build
running build_py
running build_ext
skipping 'DP_GP/core.c' Cython extension (up-to-date)
building 'DP_GP.core' extension
gcc -pthread -B /home/fournel/miniconda3/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/fournel/miniconda3/lib/python3.7/site-packages/numpy/core/include -I/home/fournel/miniconda3/include/python3.7m -c DP_GP/core.c -o build/temp.linux-x86_64-3.7/DP_GP/core.o
In file included from /home/fournel/miniconda3/lib/python3.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1822:0,
from /home/fournel/miniconda3/lib/python3.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,
from /home/fournel/miniconda3/lib/python3.7/site-packages/numpy/core/include/numpy/arrayobject.h:4,
from DP_GP/core.c:407:
/home/fournel/miniconda3/lib/python3.7/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
#warning "Using deprecated NumPy API, disable it with "
^~~~~~~
DP_GP/core.c: In function ‘__pyx_pf_5DP_GP_4core_squared_dist_two_matrices’:
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:3199:7: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:3248:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘__pyx_pf_5DP_GP_4core_2read_gene_expression_matrices’:
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:3641:13: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:3694:13: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:3764:13: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:3935:11: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:4027:11: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:4133:11: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:4245:11: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:4327:11: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:4458:11: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:4549:11: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘__pyx_pf_5DP_GP_4core_8save_log_likelihoods’:
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:5180:17: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘__pyx_pf_5DP_GP_4core_10save_posterior_similarity_matrix_key’:
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:5498:17: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘pyx_pf_5DP_GP_4core_10dp_cluster___init’:
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:6013:15: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:6134:13: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:6351:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:6449:11: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:6495:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:6570:11: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:6740:15: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:6861:13: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:6954:7: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:7126:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:7190:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘__pyx_pf_5DP_GP_4core_10dp_cluster_2update_rank_U_and_log_pdet’:
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:7502:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:7687:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:7729:7: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:7797:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:7842:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘__pyx_pf_5DP_GP_4core_10dp_cluster_8update_cluster_attributes’:
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:8529:13: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:8621:15: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:8667:15: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:8806:17: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:8927:15: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:9072:17: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:9193:15: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:9283:15: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:9329:15: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:9490:15: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:9566:11: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:9655:11: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:9744:11: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:9864:13: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:10053:15: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:10223:15: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:10352:11: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:10427:11: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘pyx_pf_5DP_GP_4core_13gibbs_sampler___init’:
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:11398:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:11489:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:11575:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:11714:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:11780:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘__pyx_pf_5DP_GP_4core_13gibbs_sampler_2get_log_posterior’:
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:11957:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:12044:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:12172:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:12236:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘__pyx_pf_5DP_GP_4core_13gibbs_sampler_4calculate_prior’:
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:12395:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:12856:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘__pyx_pf_5DP_GP_4core_13gibbs_sampler_6calculate_likelihood_MVN_by_dict’:
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:13036:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:13246:13: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:13312:13: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:13425:11: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_20)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:13476:13: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:13522:13: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:13629:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:13682:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:13741:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘__pyx_pf_5DP_GP_4core_13gibbs_sampler_10update_S_matrix’:
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:14061:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:14300:7: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘__pyx_pf_5DP_GP_4core_13gibbs_sampler_16sampler’:
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:14804:11: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:14850:11: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:15264:13: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:15324:13: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:15661:13: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:15897:17: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:15943:17: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:16055:15: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:16124:13: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:16515:15: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:16561:15: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:16692:13: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:16737:13: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:17021:13: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:17075:13: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:17260:15: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:17436:13: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:17490:13: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:18247:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_24)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:18297:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘__pyx_memoryview_convert_item_to_object’:
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:24613:11: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘__pyx_memoryview_assign_item_from_object’:
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:24915:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘__pyx_memoryview_err_dim’:
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:31301:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘__pyx_memoryview_err’:
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:31419:11: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘PyInit_core’:
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:34916:9: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘__Pyx_PyCFunction_FastCall’:
DP_GP/core.c:35592:13: error: too many arguments to function ‘(PyObject * ()(PyObject , PyObject * const, Py_ssize_t))meth’
return (
((__Pyx_PyCFunctionFast)meth)) (self, args, nargs, NULL);
~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:35583:9: warning: unused variable ‘flags’ [-Wunused-variable]
int flags;
^~~~~
DP_GP/core.c:35582:15: warning: unused variable ‘result’ [-Wunused-variable]
PyObject result;
^~~~~~
DP_GP/core.c: In function ‘__Pyx__ExceptionSave’:
DP_GP/core.c:35913:21: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_type’; did you mean ‘curexc_type’?
type = tstate->exc_type;
^~~~~~~~
curexc_type
DP_GP/core.c:35914:22: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_value’; did you mean ‘curexc_value’?
value = tstate->exc_value;
^~~~~~~~~
curexc_value
DP_GP/core.c:35915:19: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
tb = tstate->exc_traceback;
^~~~~~~~~~~~~
curexc_traceback
DP_GP/core.c: In function ‘__Pyx__ExceptionReset’:
DP_GP/core.c:35922:24: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_type’; did you mean ‘curexc_type’?
tmp_type = tstate->exc_type;
^~~~~~~~
curexc_type
DP_GP/core.c:35923:25: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_value’; did you mean ‘curexc_value’?
tmp_value = tstate->exc_value;
^~~~~~~~~
curexc_value
DP_GP/core.c:35924:22: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
tmp_tb = tstate->exc_traceback;
^~~~~~~~~~~~~
curexc_traceback
DP_GP/core.c:35925:13: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_type’; did you mean ‘curexc_type’?
tstate->exc_type = type;
^~~~~~~~
curexc_type
DP_GP/core.c:35926:13: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_value’; did you mean ‘curexc_value’?
tstate->exc_value = value;
^~~~~~~~~
curexc_value
DP_GP/core.c:35927:13: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
tstate->exc_traceback = tb;
^~~~~~~~~~~~~
curexc_traceback
DP_GP/core.c: In function ‘__Pyx__GetException’:
DP_GP/core.c:35972:24: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_type’; did you mean ‘curexc_type’?
tmp_type = tstate->exc_type;
^~~~~~~~
curexc_type
DP_GP/core.c:35973:25: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_value’; did you mean ‘curexc_value’?
tmp_value = tstate->exc_value;
^~~~~~~~~
curexc_value
DP_GP/core.c:35974:22: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
tmp_tb = tstate->exc_traceback;
^~~~~~~~~~~~~
curexc_traceback
DP_GP/core.c:35975:13: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_type’; did you mean ‘curexc_type’?
tstate->exc_type = local_type;
^~~~~~~~
curexc_type
DP_GP/core.c:35976:13: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_value’; did you mean ‘curexc_value’?
tstate->exc_value = local_value;
^~~~~~~~~
curexc_value
DP_GP/core.c:35977:13: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
tstate->exc_traceback = local_tb;
^~~~~~~~~~~~~
curexc_traceback
DP_GP/core.c: In function ‘__Pyx_PyObject_CallMethod1’:
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:36299:17: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
if (__Pyx_PyFastCFunction_Check(function)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘__Pyx_PyDict_Values’:
DP_GP/core.c:1668:83: error: too many arguments to function ‘(PyObject * (
)(PyObject , PyObject * const, Py_ssize_t))__pyx_umethod_PyDict_Type_values.func’
(PY_VERSION_HEX >= 0x030600B1 && (cfunc)->flag == METH_FASTCALL ? (
(__Pyx_PyCFunctionFast)(cfunc)->func)(self, &PyTuple_GET_ITEM(__pyx_empty_tuple, 0), 0, NULL) :
~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:37483:16: note: in expansion of macro ‘__Pyx_CallUnboundCMethod0’
return __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyDict_Type_values, d);
^~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘__Pyx_PyDict_Keys’:
DP_GP/core.c:1668:83: error: too many arguments to function ‘(PyObject * (
)(PyObject , PyObject * const, Py_ssize_t))__pyx_umethod_PyDict_Type_keys.func’
(PY_VERSION_HEX >= 0x030600B1 && (cfunc)->flag == METH_FASTCALL ? (
(__Pyx_PyCFunctionFast)(cfunc)->func)(self, &PyTuple_GET_ITEM(__pyx_empty_tuple, 0), 0, NULL) :
~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:37491:16: note: in expansion of macro ‘__Pyx_CallUnboundCMethod0’
return __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyDict_Type_keys, d);
^~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘__Pyx__ExceptionSwap’:
DP_GP/core.c:37959:24: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_type’; did you mean ‘curexc_type’?
tmp_type = tstate->exc_type;
^~~~~~~~
curexc_type
DP_GP/core.c:37960:25: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_value’; did you mean ‘curexc_value’?
tmp_value = tstate->exc_value;
^~~~~~~~~
curexc_value
DP_GP/core.c:37961:22: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
tmp_tb = tstate->exc_traceback;
^~~~~~~~~~~~~
curexc_traceback
DP_GP/core.c:37962:13: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_type’; did you mean ‘curexc_type’?
tstate->exc_type = *type;
^~~~~~~~
curexc_type
DP_GP/core.c:37963:13: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_value’; did you mean ‘curexc_value’?
tstate->exc_value = *value;
^~~~~~~~~
curexc_value
DP_GP/core.c:37964:13: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
tstate->exc_traceback = *tb;
^~~~~~~~~~~~~
curexc_traceback
error: command 'gcc' failed with exit status 1

And when I try the test, python says "missing parenthesis" in the print messages

Any idea what might be going on ?

Plotting failed for big data set

Hi,

processing a big data set with DP_GP_cluster (memory foot print of about 200GB), we obtain the text output files as expected. However, plotting fails with an error message

WARNING: skipping heatmap plot generation, too many dendrogram recursions for scipy to handle
Traceback (most recent call last):
  File "~/.local/bin/DP_GP_cluster.py", line 684, in <module>
    core.save_posterior_similarity_matrix_key([gene_names[idx] for idx in sim_mat_key], args.output_path_prefix)

With input filtered to 10% plotting succeeds but results are not significant anymore. We have tried a couple of measures to get plots from the full data set as well, without success:

Adding plt.switch_backend('agg') after import matplotlib.pyplot as plt as recommended in some posts does not show any effect.

Postprocessing the text output files by option --post_process hangs in transposing a matrix according to trace output.

Looking into the sources, the abort is probably caused by a scipy call
Z = sch.dendrogram(Y, orientation='left', link_color_func=lambda x: 'black' )
failed in ~/.local/lib/python2.7/site-packages/DP_GP/plot.py. Adding options truncate_mode='level',p=30 to limit the tree processed does not show any effect either.

Is there any way to work around this? We use Python 2.7.16 with scipy 1.2.1 as required. Thank you!

apply on data other than expression

Hello, thank you for your great software. I would like to use it on two datasets, one has 4 time points, the other only 3 time points. I have a list (unfiltered) of "highly dynamic genes" with respective Log2FoldChange and pvalue between each two consecutive time points (DESeq2). I have 3 biological replicates for each time point. My question is:

  • a) do I have to use exclusively expression data (TPM for example, with merged replicates) ? or
  • b ) can I use Log2FoldChange values in the form of a matrix ? , for example for my 3 time-points experiment i've got 2 log2foldChange values by gene, so the matrix will have genes in rows and column names 1, 2 will be the contrasts 1vs2 and 2vs3 (note that Log2FoldChange will contain positive and negative float values).
    Thank you in advance.

MemoryError

Hello, I'm running very large samples with lots of genes (> 30,000) and before it gave me "Job killed" but then I moved to a bigger cluster and it gives me:
Maximum number of Gibbs sampling iterations: 1000; terminating Gibbs sampling now.
Optimizing parameters for optimal clusters.
Cluster 1, 3557 genes
Traceback (most recent call last):
File "DP_GP_cluster.py", line 623, in
iter_num_at_birth=iter_num)
File "DP_GP/core.pyx", line 233, in DP_GP.core.dp_cluster.init (DP_GP/core.c:6979)
File "/py27/lib/python2.7/site-packages/GPy/core/parameterization/parameterized.py", line 27, in call
self.parameters_changed()
File "/py27/lib/python2.7/site-packages/GPy/core/gp.py", line 188, in parameters_changed
self.posterior, self._log_marginal_likelihood, self.grad_dict = self.inference_method.inference(self.kern, self.X, self.likelihood, self.Y_normalized, self.mean_function, self.Y_metadata)
File "/.conda/envs/py27/lib/python2.7/site-packages/GPy/inference/latent_function_inference/exact_gaussian_inference.py", line 52, in inference
K = kern.K(X)
File "/.conda/envs/py27/lib/python2.7/site-packages/GPy/kern/_src/kernel_slice_operations.py", line 79, in wrap
ret = f(self, s.X, s.X2, *a, **kw)
File "/.conda/envs/py27/lib/python2.7/site-packages/GPy/util/caching.py", line 184, in call
return cacher(*args, **kwargs)
File "/.conda/envs/py27/lib/python2.7/site-packages/GPy/util/caching.py", line 120, in call
self.add_to_cache(cache_id, inputs, self.operation(*args, **kw))
File "/.conda/envs/py27/lib/python2.7/site-packages/GPy/kern/_src/add.py", line 39, in K
return reduce(np.add, (p.K(X, X2) for p in which_parts))
MemoryError

Do I need more CPUs or something? Or is it really not possible to cluster samples with so many genes?
Thanks!

Issue when using conda and numpy

Documenting an issue I had when attempting to install with conda 4.9.2 on Ubuntu 20.04. It is required that you specify a numpy version which is at least 1.16. (For me it automatically installed a 1.15 version when using a python 2.7 environment). This is due to how numpy interacts with pandas. You will get this error:

Traceback (most recent call last):
  File "/home/user/anaconda3/envs/DP_GP/bin/DP_GP_cluster.py", line 26, in <module>
    from DP_GP import core
  File "__init__.pxd", line 861, in init DP_GP.core (DP_GP/core.c:34688)
ValueError: numpy.ufunc has the wrong size, try recompiling. Expected 192, got 216

Forcing an upgrade to 1.16 will solve this:

conda install numpy=1.16

Hope that this may save some time for someone.

installation Mac Monterey

Im trying to install this package and get the following error:

copying DP_GP/plot.py -> build/lib.macosx-10.6-x86_64-2.7/DP_GP
copying DP_GP/init.py -> build/lib.macosx-10.6-x86_64-2.7/DP_GP
copying DP_GP/utils.py -> build/lib.macosx-10.6-x86_64-2.7/DP_GP
running build_ext
skipping 'DP_GP/core.c' Cython extension (up-to-date)
skipping 'DP_GP/cluster_tools.c' Cython extension (up-to-date)
building 'DP_GP.core' extension
creating build/temp.macosx-10.6-x86_64-2.7
creating build/temp.macosx-10.6-x86_64-2.7/DP_GP
gcc -fno-strict-aliasing -I/Users/xx/miniconda3/envs/dpgp/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Users/xx/miniconda3/envs/dpgp/lib/python2.7/site-packages/numpy/core/include -I/Users/ankeking/miniconda3/envs/dpgp/include/python2.7 -c DP_GP/core.c -o build/temp.macosx-10.6-x86_64-2.7/DP_GP/core.o
In file included from /Users/xx/miniconda3/envs/dpgp/lib/gcc/x86_64-apple-darwin11.4.2/4.8.5/include-fixed/syslimits.h:7:0,
from /Users/xx/miniconda3/envs/dpgp/lib/gcc/x86_64-apple-darwin11.4.2/4.8.5/include-fixed/limits.h:34,
from /Users/xx/miniconda3/envs/dpgp/include/python2.7/Python.h:19,
from DP_GP/core.c:4:
/Users/ankeking/miniconda3/envs/dpgp/lib/gcc/x86_64-apple-darwin11.4.2/4.8.5/include-fixed/limits.h:168:61: fatal error: limits.h: No such file or directory
#include_next <limits.h> /* recurse down to the real one */

if anyone has a similar problem I would be so grateful for any advice on how to fix this!!
thanks!!

Plot data after getting results

Hello!
I want to know how can i generate the cluster expression levels, cluster size progression and the posterior matrix dendrogram graphics after getting the results, using the .txt result files as input. The thing is i ran dpgp on a high performance cluster but it did not generate the graphics that i get when running it on my pc, and it would be difficult for me tu run it again. Thank you and i am looking forward to your input on this topic.

Installing on Mac OS X Big Sur

Hi everyone! I'm very excited to try out this package, but I'm having trouble installing it on Mac OS X. Specifically, when I run python setup.py install, I get a error very long series of errors, culminating in

fatal error: too many errors emitted, stopping now [-ferror-limit=]
108 warnings and 20 errors generated.
error: command '/usr/bin/clang' failed with exit code 1

I am running this in a conda environment with the following packages:

ca-certificates           2021.7.5             hecd8cb5_1  
certifi                   2021.5.30        py39h6e9494a_0    conda-forge
cycler                    0.10.0                     py_2    conda-forge
cython                    0.29.24          py39h9fcab8e_0    conda-forge
decorator                 5.0.9              pyhd8ed1ab_0    conda-forge
freetype                  2.10.4               h4cff582_1    conda-forge
gpy                       1.10.0           py39hc89836e_1    conda-forge
jbig                      2.1               h0d85af4_2003    conda-forge
jpeg                      9d                   hbcb3906_0    conda-forge
kiwisolver                1.3.1            py39hf018cea_1    conda-forge
lcms2                     2.12                 h577c468_0    conda-forge
lerc                      2.2.1                h046ec9c_0    conda-forge
libblas                   3.9.0               10_openblas    conda-forge
libcblas                  3.9.0               10_openblas    conda-forge
libcxx                    12.0.1               habf9029_0    conda-forge
libdeflate                1.7                  h35c211d_5    conda-forge
libffi                    3.3                  h046ec9c_2    conda-forge
libgfortran               5.0.0           9_3_0_h6c81a4c_23    conda-forge
libgfortran5              9.3.0               h6c81a4c_23    conda-forge
liblapack                 3.9.0               10_openblas    conda-forge
libopenblas               0.3.17          openmp_h3351f45_1    conda-forge
libpng                    1.6.37               hb0a8c7a_2    conda-forge
libtiff                   4.3.0                h1167814_1    conda-forge
libwebp-base              1.2.0                h0d85af4_2    conda-forge
llvm-openmp               12.0.1               hda6cdc1_1    conda-forge
lz4-c                     1.9.3                he49afe7_1    conda-forge
matplotlib                3.4.2            py39h6e9494a_0    conda-forge
matplotlib-base           3.4.2            py39hb07454d_0    conda-forge
ncurses                   6.2                  h2e338ed_4    conda-forge
numpy                     1.21.1           py39h7eed0ac_0    conda-forge
olefile                   0.46               pyh9f0ad1d_1    conda-forge
openjpeg                  2.4.0                h6e7aa92_1    conda-forge
openssl                   1.1.1k               h0d85af4_0    conda-forge
pandas                    1.3.1            py39h4d6be9b_0    conda-forge
paramz                    0.9.5                      py_0    conda-forge
pillow                    8.3.1            py39he9bb72f_0    conda-forge
pip                       21.2.2             pyhd8ed1ab_0    conda-forge
pyparsing                 2.4.7              pyh9f0ad1d_0    conda-forge
python                    3.9.6           hd187cdc_1_cpython    conda-forge
python-dateutil           2.8.2              pyhd8ed1ab_0    conda-forge
python_abi                3.9                      2_cp39    conda-forge
pytz                      2021.1             pyhd8ed1ab_0    conda-forge
readline                  8.1                  h05e3726_0    conda-forge
scipy                     1.7.0            py39h056f1c0_1    conda-forge
setuptools                52.0.0           py39hecd8cb5_0  
six                       1.16.0             pyh6c4a22f_0    conda-forge
sqlite                    3.36.0               h23a322b_0    conda-forge
tk                        8.6.10               hb0a8c7a_1    conda-forge
tornado                   6.1              py39hcbf5805_1    conda-forge
tzdata                    2021a                he74cb21_1    conda-forge
wheel                     0.36.2             pyhd3deb0d_0    conda-forge
xz                        5.2.5                haf1e3a3_1    conda-forge
zlib                      1.2.11            h7795811_1010    conda-forge
zstd                      1.5.0                h582d3a0_0    conda-forge

I confirmed, and I do in fact have clang in /usr/bin. Does anyone happen to have any advice? Am I missing something obvious?

Thanks!

NameError: name 'sim_mat_key' is not defined

Hi Ian,

Thanks for creating this package! I was able to install and run the test example on my Mac but when I tried on our cluster, installation seemed to proceed ok but when I try the test command:

DP_GP_cluster.py -i test/test.txt -o test/test -p png -n 20 --plot

I get the following error and, no plots are generated. Do you have an idea on to how to fix this?

Optimizing parameters for optimal clusters.
Cluster 1, 20 genes
Cluster 2, 20 genes
Cluster 3, 20 genes
Cluster 4, 20 genes
Cluster 5, 20 genes
Cluster 6, 20 genes
Saving sampling results.
Plotting expression and sampling results.
WARNING: skipping heatmap plot generation, too many dendrogram recursions for scipy to handle
Traceback (most recent call last):
File "/srv/gsfs0/projects/curtis/jcharalel/dev/packages/anaconda/envs/dpgp/bin/DP_GP_cluster.py", line 683, in
core.save_posterior_similarity_matrix_key([gene_names[idx] for idx in sim_mat_key], args.output_path_prefix)
NameError: name 'sim_mat_key' is not defined

Looking back at the installation of the dependency GPy, I did receive error messages but it looked like it salvaged. I'm including it here in case its informative:
Collecting GPy
Using cached GPy-1.9.2.tar.gz
Requirement already satisfied: numpy>=1.7 in /home/jcharale/miniconda3/envs/dpgp_mini/lib/python2.7/site-packages (from GPy)
Requirement already satisfied: scipy>=0.16 in /home/jcharale/miniconda3/envs/dpgp_mini/lib/python2.7/site-packages (from GPy)
Requirement already satisfied: six in /home/jcharale/miniconda3/envs/dpgp_mini/lib/python2.7/site-packages (from GPy)
Collecting paramz>=0.9.0 (from GPy)
Using cached paramz-0.9.1.tar.gz
Collecting decorator>=4.0.10 (from paramz>=0.9.0->GPy)
Using cached decorator-4.2.1-py2.py3-none-any.whl
Building wheels for collected packages: GPy, paramz
Running setup.py bdist_wheel for GPy ... error
Complete output from command /home/jcharale/miniconda3/envs/dpgp_mini/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-build-D7lSgG/GPy/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" bdist_wheel -d /tmp/tmpm3Ld83pip-wheel- --python-tag cp27:
usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: -c --help [cmd1 cmd2 ...]
or: -c --help-commands
or: -c cmd --help

error: invalid command 'bdist_wheel'


Failed building wheel for GPy
Running setup.py clean for GPy
Running setup.py bdist_wheel for paramz ... error
Complete output from command /home/jcharale/miniconda3/envs/dpgp_mini/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-build-D7lSgG/paramz/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" bdist_wheel -d /tmp/tmpYFM_GEpip-wheel- --python-tag cp27:
usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: -c --help [cmd1 cmd2 ...]
or: -c --help-commands
or: -c cmd --help

error: invalid command 'bdist_wheel'


Failed building wheel for paramz
Running setup.py clean for paramz
Failed to build GPy paramz
Installing collected packages: decorator, paramz, GPy
Running setup.py install for paramz ... done
Running setup.py install for GPy ... done
Successfully installed GPy-1.9.2 decorator-4.2.1 paramz-0.9.1

Thank you!

failed with NA in input file

--Hi,

i have tried with this input file below with \t as field separator and it failed.

gene 10 20
gene_1 NA 0.93
gene_2 NA 0.39
gene_3 NA -0.45
gene_4 NA 0.33
gene_5 NA 0.39
gene_6 NA 0.45
gene_7 NA 0.69
gene_8 NA -0.87
gene_9 NA -0.30
gene_10 NA -0.62
gene_11 1.04 NA
gene_12 3.38 2.15
gene_13 1.40 NA
gene_14 NA 0.39
gene_15 NA 1.16
gene_16 1.21 1.03
gene_17 NA -0.94
gene_18 NA 0.85
gene_19 NA 0.66
gene_20 NA 0.90
gene_21 0.84 0.58
gene_22 1.19 NA
gene_23 NA -1.10
gene_24 NA -0.90
gene_25 0.70 0.64
gene_26 NA -0.99
gene_27 -0.85 NA
gene_28 NA 0.37
gene_29 1.19 NA
gene_30 NA 0.35
gene_31 0.54 0.62
gene_32 NA 0.82
gene_33 NA -1.18
gene_34 NA -0.76
gene_35 NA -0.38
gene_36 NA 0.34
gene_37 NA 0.88
gene_38 NA -1.27
gene_39 NA 0.55
gene_40 NA 0.57
gene_41 NA 0.91
gene_42 NA -0.55
gene_43 NA 0.73
gene_44 NA -0.41
gene_45 NA -0.26
gene_46 NA -0.39
gene_47 NA -0.26
gene_48 NA 0.45
gene_49 NA -0.55
gene_50 0.70 0.39

/home/dpgp/bin/DP_GP_cluster.py:475: RuntimeWarning:invalid value encountered in divide
Begin sampling
Initializing one-gene clusters...
Traceback (most recent call last):
File "/home/dpgp/bin/DP_GP_cluster.py", line 517, in
sim_mat, all_clusterings, sampled_clusterings, log_likelihoods, iter_num = GS.sampler()
File "DP_GP/core.pyx", line 753, in DP_GP.core.gibbs_sampler.sampler (DP_GP/core.c:14905)
self.clusters[self.m + i] = dp_cluster(members=[i], sigma_n=self.sigma_n_init,
File "DP_GP/core.pyx", line 212, in DP_GP.core.dp_cluster.init (DP_GP/core.c:6120)
self.X = np.vstack([x for j in range(Y.shape[1]) for x in self.t[~np.isnan(Y[:,j])].flatten()])
File "/home/dpgp/dpgp/lib/python2.7/site-packages/numpy/core/shape_base.py", line 283, in vstack
return _nx.concatenate([atleast_2d(_m) for _m in tup], 0)
ValueError: need at least one array to concatenate

TypeError: super() argument 1 must be type, not classobj

@IanMcDowell Hi!
I'm getting following troubles although I installed successfully.

(DPGP)  [ymwang @ ~/linqin/SourceCode/DP_GP_cluster]$ pip install numpy
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Collecting numpy
  Using cached numpy-1.16.6-cp27-cp27mu-manylinux1_x86_64.whl (17.0 MB)
Installing collected packages: numpy
Successfully installed numpy-1.16.6
(DPGP)  [ymwang @ ~/linqin/SourceCode/DP_GP_cluster]$ pip install -r requirements2.txt
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Collecting cython
  Using cached Cython-0.29.23-cp27-cp27mu-manylinux1_x86_64.whl (1.9 MB)
Collecting matplotlib
  Using cached matplotlib-2.2.5-cp27-cp27mu-manylinux1_x86_64.whl (12.8 MB)
Requirement already satisfied: numpy in /home2/ymwang/miniconda3/envs/DPGP/lib/python2.7/site-packages (from -r requirements2.txt (line 3)) (1.16.6)
Collecting pandas
  Using cached pandas-0.24.2-cp27-cp27mu-manylinux1_x86_64.whl (10.1 MB)
Collecting scipy==0.16
  Using cached scipy-0.16.0-cp27-cp27mu-manylinux1_x86_64.whl (38.2 MB)
Processing /home2/ymwang/.cache/pip/wheels/92/41/c1/46aa0ff43ae6274c41ffea0abc81426980f263d53d30fbc7b9/sklearn-0.0-py2.py3-none-any.whl
Collecting GPy==0.8.8
  Using cached GPy-0.8.8.tar.gz (1.2 MB)
Collecting cycler>=0.10
  Using cached cycler-0.10.0-py2.py3-none-any.whl (6.5 kB)
Collecting kiwisolver>=1.0.1
  Using cached kiwisolver-1.1.0-cp27-cp27mu-manylinux1_x86_64.whl (93 kB)
Collecting six>=1.10
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting subprocess32
  Using cached subprocess32-3.5.4-cp27-cp27mu-manylinux2014_x86_64.whl (69 kB)
Collecting backports.functools-lru-cache
  Using cached backports.functools_lru_cache-1.6.4-py2.py3-none-any.whl (5.9 kB)
Collecting pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1
  Using cached pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
Collecting pytz
  Using cached pytz-2021.1-py2.py3-none-any.whl (510 kB)
Collecting python-dateutil>=2.1
  Using cached python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB)
Collecting scikit-learn
  Using cached scikit_learn-0.20.4-cp27-cp27mu-manylinux1_x86_64.whl (5.5 MB)
Requirement already satisfied: setuptools in /home2/ymwang/miniconda3/envs/DPGP/lib/python2.7/site-packages (from kiwisolver>=1.0.1->matplotlib->-r requirements2.txt (line 2)) (44.0.0.post20200102)
Building wheels for collected packages: GPy
  Building wheel for GPy (setup.py) ... done
  Created wheel for GPy: filename=GPy-0.8.8-cp27-cp27mu-linux_x86_64.whl size=1335378 sha256=3215bb0afa3a527a8d3488f20a1baad7fcb7985be9e98c84a2dcc5fbfb8c8f45
  Stored in directory: /home2/ymwang/.cache/pip/wheels/11/de/81/f13efc040e28a215fbd4157afff5b0b812c2dde7f9d88c3d3b
Successfully built GPy
Installing collected packages: cython, six, cycler, kiwisolver, subprocess32, backports.functools-lru-cache, pyparsing, pytz, python-dateutil, matplotlib, pandas, scipy, scikit-learn, sklearn, GPy
Successfully installed GPy-0.8.8 backports.functools-lru-cache-1.6.4 cycler-0.10.0 cython-0.29.23 kiwisolver-1.1.0 matplotlib-2.2.5 pandas-0.24.2 pyparsing-2.4.7 python-dateutil-2.8.1 pytz-2021.1 scikit-learn-0.20.4 scipy-0.16.0 six-1.16.0 sklearn-0.0 subprocess32-3.5.4
(DPGP)  [ymwang @ ~/linqin/SourceCode/DP_GP_cluster]$ python setup.py install
running install
running build
running build_py
running build_ext
skipping 'DP_GP/core.c' Cython extension (up-to-date)
skipping 'DP_GP/cluster_tools.c' Cython extension (up-to-date)
running build_scripts
running install_lib
creating /home2/ymwang/miniconda3/envs/DPGP/lib/python2.7/site-packages/DP_GP
copying build/lib.linux-x86_64-2.7/DP_GP/__init__.py -> /home2/ymwang/miniconda3/envs/DPGP/lib/python2.7/site-packages/DP_GP
copying build/lib.linux-x86_64-2.7/DP_GP/plot.py -> /home2/ymwang/miniconda3/envs/DPGP/lib/python2.7/site-packages/DP_GP
copying build/lib.linux-x86_64-2.7/DP_GP/utils.py -> /home2/ymwang/miniconda3/envs/DPGP/lib/python2.7/site-packages/DP_GP
copying build/lib.linux-x86_64-2.7/DP_GP/core.so -> /home2/ymwang/miniconda3/envs/DPGP/lib/python2.7/site-packages/DP_GP
copying build/lib.linux-x86_64-2.7/DP_GP/cluster_tools.so -> /home2/ymwang/miniconda3/envs/DPGP/lib/python2.7/site-packages/DP_GP
byte-compiling /home2/ymwang/miniconda3/envs/DPGP/lib/python2.7/site-packages/DP_GP/__init__.py to __init__.pyc
byte-compiling /home2/ymwang/miniconda3/envs/DPGP/lib/python2.7/site-packages/DP_GP/plot.py to plot.pyc
byte-compiling /home2/ymwang/miniconda3/envs/DPGP/lib/python2.7/site-packages/DP_GP/utils.py to utils.pyc
running install_scripts
copying build/scripts-2.7/DP_GP_cluster.py -> /home2/ymwang/miniconda3/envs/DPGP/bin
changing mode of /home2/ymwang/miniconda3/envs/DPGP/bin/DP_GP_cluster.py to 775
running install_egg_info
Writing /home2/ymwang/miniconda3/envs/DPGP/lib/python2.7/site-packages/DP_GP_cluster-0.1-py2.7.egg-info
(DPGP)  [ymwang @ ~/linqin/SourceCode/DP_GP_cluster]$ DP_GP_cluster.py -i test/test.txt -o test/test -p png -n 20 --plot
Traceback (most recent call last):
  File "/home2/ymwang/miniconda3/envs/DPGP/bin/DP_GP_cluster.py", line 24, in <module>
    from DP_GP import plot
  File "/home2/ymwang/miniconda3/envs/DP_GP_cluster/lib/python2.7/site-packages/DP_GP/plot.py", line 15, in <module>
    import GPy
  File "/home2/ymwang/miniconda3/envs/DP_GP_cluster/lib/python2.7/site-packages/GPy/__init__.py", line 6, in <module>
    from . import core
  File "/home2/ymwang/miniconda3/envs/DP_GP_cluster/lib/python2.7/site-packages/GPy/core/__init__.py", line 49, in <module>
    from .gp import GP
  File "/home2/ymwang/miniconda3/envs/DP_GP_cluster/lib/python2.7/site-packages/GPy/core/gp.py", line 8, in <module>
    from .. import likelihoods
  File "/home2/ymwang/miniconda3/envs/DP_GP_cluster/lib/python2.7/site-packages/GPy/likelihoods/__init__.py", line 25, in <module>
    from .bernoulli import Bernoulli
  File "/home2/ymwang/miniconda3/envs/DP_GP_cluster/lib/python2.7/site-packages/GPy/likelihoods/bernoulli.py", line 5, in <module>
    from ..util.univariate_Gaussian import std_norm_pdf, std_norm_cdf, derivLogCdfNormal, logCdfNormal
  File "/home2/ymwang/miniconda3/envs/DP_GP_cluster/lib/python2.7/site-packages/GPy/util/__init__.py", line 15, in <module>
    from . import mocap
  File "/home2/ymwang/miniconda3/envs/DP_GP_cluster/lib/python2.7/site-packages/GPy/util/mocap.py", line 718, in <module>
    skel = acclaim_skeleton()
  File "/home2/ymwang/miniconda3/envs/DP_GP_cluster/lib/python2.7/site-packages/GPy/util/mocap.py", line 206, in __init__
    super(acclaim_skeleton, self).__init__()
TypeError: super() argument 1 must be type, not classobj
(DPGP)  [ymwang @ ~/linqin/SourceCode/DP_GP_cluster]$ 
(DPGP)  [ymwang @ ~/linqin/SourceCode/DP_GP_cluster]$ cat requirements2.txt
cython
matplotlib
numpy
pandas
scipy==0.16
sklearn
GPy==0.8.8(DPGP)  [ymwang @ ~/linqin/SourceCode/DP_GP_cluster]$

Best,
Ci

Job killed

Hi,
I ran the script on our cluster using with and without the --fast option as follows:
python DPGP_cluster.py -i expression.txt -o $date --plot --plot_types pdf

The program gets killed when run directly in the console or when submitted to job scheduler and I get the following message:
job_scripts/119534: line 21: 26827 Killed

I think when running it in console it successfully finishes the Gibbs sampling stage.

Any advise on how I can fix this? Also, let me know if you need more information.

Would love to run this program on my data!

Add Input Value Requirements to Documentation

The documentation doesn't explain what the input values need to be. An example is shown of what appear to be read counts, but there's no advice regarding the usability other measurement units, such as FPKM and TPM.

Script stalling with --check-convergence option

HI,

I have been using DP_GP to cluster RNAseq data across 6 time points for ~1800 genes.

I have been using the --true_times and --check_convergence options.

While trying to run the program I noticed that the script would frequently stall part way through the run. The process would continue to run on 100% of one CPU but with no further output (the maximum time I left it to see if it would recover was 12h). Killing the job and rerunning it meant I could eventually get a result for 1000 and 2000 max iterations, without reaching convergence, but I could not get a clean run at 3000 iterations. Removing the --check-convergence option seems to have resolved the problem.

This may be a bug with the --check-convergence option itself, I'm not sure.

Is there an inbuilt method to check convergence after running the program that could be used as a work around?

Thanks in advance,
Andrew

Multi cores support

Hi everyone. I'm new to this package. While I'm using this in HPC, it doesn't seem to use multiple cores I allocated. Even I use 40 cores, the processing speed for same task doesn't seem to be faster than only 1 core.

I'm wondering how I can run it faster with multi cores. @IanMcDowell

Thank you!

"no display name..." error when plotting (in Windows Susystem for Linux)

When running the test with the --plot option I recieved an error: "_tkinter.TclError: no display name and no $DISPLAY environment variable". I am using the ubuntu application in Windows Subsystem for Linux (WSL) which by deafult has no graphical interface. I'm not familiar with configuring graphical setups for non-graphical environments like WSL or ssh but a quick google found that adding "matplotlib.use('Agg')" to a script should fix the general issue. See https://stackoverflow.com/questions/37604289/tkinter-tclerror-no-display-name-and-no-display-environment-variable.

So after finding the DG_GP_cluster.py file with "which DG_GP_cluster.py" all I had to do was uncomment the lines

import matplotlib
matplotlib.use('Agg')

and the test data ran smoothly, producing the necessary pngs. I thought this might be helpful for other users :).

gcc error

Hi,

While installing, I am getting stuck with following error:
""error: command 'gcc' failed with exit status 1".

Please see the attached file for details of error.

DP-GP install error

Kindly reply ASAP.

Unable to install setup.py file

Hi,

I am trying to install this in ubuntu using python 3.8 and cython 0.29.30. However, the errors showed up although I tried updating setuptools, cython, and related packages.

The error codes are following;

DP_GP/core.c: In function ‘__Pyx_PyCFunction_FastCall’:
DP_GP/core.c:35592:13: error: too many arguments to function ‘(PyObject * (*)(PyObject *, PyObject * const*, Py_ssize_t))meth’
35592 |     return (*((__Pyx_PyCFunctionFast)meth)) (self, args, nargs, NULL);
      |            ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘__Pyx__ExceptionSave’:
DP_GP/core.c:35913:21: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
35913 |     *type = tstate->exc_type;
      |                     ^~~~~~~~
      |                     curexc_type
DP_GP/core.c:35914:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
35914 |     *value = tstate->exc_value;
      |                      ^~~~~~~~~
      |                      curexc_value
DP_GP/core.c:35915:19: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
35915 |     *tb = tstate->exc_traceback;
      |                   ^~~~~~~~~~~~~
      |                   curexc_traceback
DP_GP/core.c: In function ‘__Pyx__ExceptionReset’:
DP_GP/core.c:35922:24: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
35922 |     tmp_type = tstate->exc_type;
      |                        ^~~~~~~~
      |                        curexc_type
DP_GP/core.c:35923:25: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
35923 |     tmp_value = tstate->exc_value;
      |                         ^~~~~~~~~
      |                         curexc_value
DP_GP/core.c:35924:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
35924 |     tmp_tb = tstate->exc_traceback;
      |                      ^~~~~~~~~~~~~
      |                      curexc_traceback
DP_GP/core.c:35925:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
35925 |     tstate->exc_type = type;
      |             ^~~~~~~~
      |             curexc_type
DP_GP/core.c:35926:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
35926 |     tstate->exc_value = value;
      |             ^~~~~~~~~
      |             curexc_value
DP_GP/core.c:35927:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
35927 |     tstate->exc_traceback = tb;
      |             ^~~~~~~~~~~~~
      |             curexc_traceback
DP_GP/core.c: In function ‘__Pyx__GetException’:
DP_GP/core.c:35972:24: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
35972 |     tmp_type = tstate->exc_type;
      |                        ^~~~~~~~
      |                        curexc_type
DP_GP/core.c:35973:25: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
35973 |     tmp_value = tstate->exc_value;
      |                         ^~~~~~~~~
      |                         curexc_value
DP_GP/core.c:35974:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
35974 |     tmp_tb = tstate->exc_traceback;
      |                      ^~~~~~~~~~~~~
      |                      curexc_traceback
DP_GP/core.c:35975:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
35975 |     tstate->exc_type = local_type;
      |             ^~~~~~~~
      |             curexc_type
DP_GP/core.c:35976:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
35976 |     tstate->exc_value = local_value;
      |             ^~~~~~~~~
      |             curexc_value
DP_GP/core.c:35977:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
35977 |     tstate->exc_traceback = local_tb;
      |             ^~~~~~~~~~~~~
      |             curexc_traceback
DP_GP/core.c: In function ‘__Pyx_PyObject_CallMethod1’:
DP_GP/core.c:193:48: warning: suggest parentheses around comparison in operand of ‘&’ [-Wparentheses]
  193 |     ((PyCFunction_Check(func) && METH_FASTCALL == PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST)))
DP_GP/core.c:36299:17: note: in expansion of macro ‘__Pyx_PyFastCFunction_Check’
36299 |             if (__Pyx_PyFastCFunction_Check(function)) {
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘__Pyx_PyDict_Values’:
DP_GP/core.c:1668:83: error: too many arguments to function ‘(PyObject * (*)(PyObject *, PyObject * const*, Py_ssize_t))__pyx_umethod_PyDict_Type_values.func’
 1668 |               (PY_VERSION_HEX >= 0x030600B1 && (cfunc)->flag == METH_FASTCALL ?  (*(__Pyx_PyCFunctionFast)(cfunc)->func)(self, &PyTuple_GET_ITEM(__pyx_empty_tuple, 0), 0, NULL) :\
      |                                                                                  ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:37483:16: note: in expansion of macro ‘__Pyx_CallUnboundCMethod0’
37483 |         return __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyDict_Type_values, d);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘__Pyx_PyDict_Keys’:
DP_GP/core.c:1668:83: error: too many arguments to function ‘(PyObject * (*)(PyObject *, PyObject * const*, Py_ssize_t))__pyx_umethod_PyDict_Type_keys.func’
 1668 |               (PY_VERSION_HEX >= 0x030600B1 && (cfunc)->flag == METH_FASTCALL ?  (*(__Pyx_PyCFunctionFast)(cfunc)->func)(self, &PyTuple_GET_ITEM(__pyx_empty_tuple, 0), 0, NULL) :\
      |                                                                                  ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c:37491:16: note: in expansion of macro ‘__Pyx_CallUnboundCMethod0’
37491 |         return __Pyx_CallUnboundCMethod0(&__pyx_umethod_PyDict_Type_keys, d);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
DP_GP/core.c: In function ‘__Pyx__ExceptionSwap’:
DP_GP/core.c:37959:24: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
37959 |     tmp_type = tstate->exc_type;
      |                        ^~~~~~~~
      |                        curexc_type
DP_GP/core.c:37960:25: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
37960 |     tmp_value = tstate->exc_value;
      |                         ^~~~~~~~~
      |                         curexc_value
DP_GP/core.c:37961:22: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
37961 |     tmp_tb = tstate->exc_traceback;
      |                      ^~~~~~~~~~~~~
      |                      curexc_traceback
DP_GP/core.c:37962:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’?
37962 |     tstate->exc_type = *type;
      |             ^~~~~~~~
      |             curexc_type
DP_GP/core.c:37963:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_value’; did you mean ‘curexc_value’?
37963 |     tstate->exc_value = *value;
      |             ^~~~~~~~~
      |             curexc_value
DP_GP/core.c:37964:13: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?
37964 |     tstate->exc_traceback = *tb;
      |             ^~~~~~~~~~~~~
      |             curexc_traceback
error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1

I think this is because the 'core.c' was written by old version of Cython, but I cannot figure out the exact problems and solutions.

Differences between fast and slow modes?

Hi Ian,

Thanks for building this tool!

I was wondering if you could describe at a high level what the major differences are between the fast and slow modes?

Thank you!

Accession numbers list to functional/taxonomic list?

Hello, I have DP_GP_cluster outputs. I'm specifically looking at the optimal_clustering.txt file, which gives me the cluster name and a list of all the gene accession IDs in that cluster. How do I convert these gene IDs into information I can use, ie functional or taxonomic info on the genes in each cluster? Eg this cluster has mostly this function group, etc? Is there a way to export the cluster info and blast it or run it on a programme like Megan to look at the cluster profiles? I can look up each ID individually on NCBI but obviously that's not useful for long lists. Thanks so much! Any help from anyone will be much appreciated.

TPM or fold change for time series dataset without treatment

I have a RNA-seq dataset from different developmental time points and I want to make clustering genes. I do not have any treatment or condition accompanied with different time points. what value will be imported into DP-GP? In the some articles, they used standardized fold change derived from comparisons of treatment and control in each time point, but I do not have different condition, so I think I must use TPM to import for clustering. Am I right?

Datasets

Hello,
I would like to ask if you could provide me the datasets with their respective targets.
Thanks in advance.

Unable to run after following installation instructions

While running the test:

DP_GP_cluster.py -i test/test.txt -o test/test -p png -n 20 --plot

I get the following error:

    from DP_GP import core
ImportError: cannot import name core

The install doesn't report any problems.
Any idea what might be going on ?

Failing in Gibbs Sampler

Hi,

I've been trying to run the DP_GP functions without wrapper script (as in the example) and in the line

sim_mat, all_clusterings, sampled_clusterings, log_likelihoods, iter_num = GS.sampler()

I get the following error:

TypeError: object() takes no parameters.

Thanks

Best

Recommendations on alpha

Hi Ian,

Do you have any recommendations on the alpha parameter? I see that the default is 1 but I was wondering if you have thoughts on what a reasonable range is? I have tried 0.25, 0.5, 1, 2, and considering going smaller as I feel like the cluster number would be better if further reduced (15-20 with the ones tried so far).

Thanks!

Does the input file handle replicates?

Hi, I was interested in trying out this clustering package.

Does the input file handle multiple replicates per time points? Or is each column the mean of several replicates at each time point?

Thanks in advance,

Jake

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.