cdanielmachado / carveme

CarveMe: genome-scale metabolic model reconstruction
Other
147 stars 50 forks source link

ValueError: Wrong number of items passed 2, placement implies 1 #62

Closed rafafernandes96 closed 3 years ago

rafafernandes96 commented 4 years ago

I installed everything and ran the carveme_init. When I try to run the example carve --genbank GCA_000005845.2 -o ecoli_k12_mg1655.xml I get this error message:

Traceback (most recent call last): File "/home/rafael/anaconda3/bin/carve", line 364, in ref_score=args.reference_score File "/home/rafael/anaconda3/bin/carve", line 163, in main scores = reaction_scoring(annotations, gprs, debug_output=debug_output) File "/home/rafael/anaconda3/lib/python3.7/site-packages/carveme/reconstruction/scoring.py", line 106, in reaction_scoring .agg({'query_gene': merge_subunits, 'score': merge_subunit_scores}) File "/home/rafael/anaconda3/lib/python3.7/site-packages/pandas/core/groupby/generic.py", line 940, in aggregate result, how = self._aggregate(func, *args, kwargs) File "/home/rafael/anaconda3/lib/python3.7/site-packages/pandas/core/base.py", line 428, in _aggregate result = _agg(arg, _agg_1dim) File "/home/rafael/anaconda3/lib/python3.7/site-packages/pandas/core/base.py", line 395, in _agg result[fname] = func(fname, agg_how) File "/home/rafael/anaconda3/lib/python3.7/site-packages/pandas/core/base.py", line 379, in _agg_1dim return colg.aggregate(how) File "/home/rafael/anaconda3/lib/python3.7/site-packages/pandas/core/groupby/generic.py", line 262, in aggregate return self._python_agg_general(func, *args, *kwargs) File "/home/rafael/anaconda3/lib/python3.7/site-packages/pandas/core/groupby/groupby.py", line 936, in _python_agg_general result, counts = self.grouper.agg_series(obj, f) File "/home/rafael/anaconda3/lib/python3.7/site-packages/pandas/core/groupby/ops.py", line 635, in agg_series return self._aggregate_series_fast(obj, func) File "/home/rafael/anaconda3/lib/python3.7/site-packages/pandas/core/groupby/ops.py", line 660, in _aggregate_series_fast result, counts = grouper.get_result() File "pandas/_libs/reduction.pyx", line 375, in pandas._libs.reduction.SeriesGrouper.get_result File "pandas/_libs/reduction.pyx", line 192, in pandas._libs.reduction._BaseGrouper._apply_to_group File "/home/rafael/anaconda3/lib/python3.7/site-packages/pandas/core/groupby/groupby.py", line 913, in f = lambda x: func(x, args, kwargs) File "/home/rafael/anaconda3/lib/python3.7/site-packages/carveme/reconstruction/scoring.py", line 39, in merge_subunit_scores return scores.fillna(0).mean() File "/home/rafael/anaconda3/lib/python3.7/site-packages/pandas/core/series.py", line 4160, in fillna downcast=downcast, File "/home/rafael/anaconda3/lib/python3.7/site-packages/pandas/core/generic.py", line 6215, in fillna value=value, limit=limit, inplace=inplace, downcast=downcast File "/home/rafael/anaconda3/lib/python3.7/site-packages/pandas/core/internals/managers.py", line 576, in fillna return self.apply("fillna", kwargs) File "/home/rafael/anaconda3/lib/python3.7/site-packages/pandas/core/internals/managers.py", line 442, in apply applied = getattr(b, f)(kwargs) File "/home/rafael/anaconda3/lib/python3.7/site-packages/pandas/core/internals/blocks.py", line 426, in fillna blocks = self.putmask(mask, value, inplace=inplace) File "/home/rafael/anaconda3/lib/python3.7/site-packages/pandas/core/internals/blocks.py", line 1038, in putmask return [self.make_block(new_values)] File "/home/rafael/anaconda3/lib/python3.7/site-packages/pandas/core/internals/blocks.py", line 273, in make_block return make_block(values, placement=placement, ndim=self.ndim) File "/home/rafael/anaconda3/lib/python3.7/site-packages/pandas/core/internals/blocks.py", line 3028, in make_block return klass(values, ndim=ndim, placement=placement) File "/home/rafael/anaconda3/lib/python3.7/site-packages/pandas/core/internals/blocks.py", line 125, in init f"Wrong number of items passed {len(self.values)}, " ValueError: Wrong number of items passed 2, placement implies 1

cdanielmachado commented 4 years ago

Can you try python 3.6?

Unfortunately, I haven't yet tested carveme in python 3.7.

rafafernandes96 commented 4 years ago

Tried it and got this: Running diamond... diamond blastp -d /home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/carveme/data/input/bigg_proteins.dmnd -q GCF_000005845.2.faa -o GCF_000005845.2.tsv --more-sensitive --top 10 Loading universe model... Scoring reactions... Traceback (most recent call last): File "/home/rafael/anaconda3/envs/carveme/bin/carve", line 364, in ref_score=args.reference_score File "/home/rafael/anaconda3/envs/carveme/bin/carve", line 163, in main scores = reaction_scoring(annotations, gprs, debug_output=debug_output) File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/carveme/reconstruction/scoring.py", line 106, in reaction_scoring .agg({'query_gene': merge_subunits, 'score': merge_subunit_scores}) File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/pandas/core/groupby/generic.py", line 940, in aggregate result, how = self._aggregate(func, *args, kwargs) File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/pandas/core/base.py", line 428, in _aggregate result = _agg(arg, _agg_1dim) File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/pandas/core/base.py", line 395, in _agg result[fname] = func(fname, agg_how) File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/pandas/core/base.py", line 379, in _agg_1dim return colg.aggregate(how) File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/pandas/core/groupby/generic.py", line 262, in aggregate return self._python_agg_general(func, *args, *kwargs) File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/pandas/core/groupby/groupby.py", line 936, in _python_agg_general result, counts = self.grouper.agg_series(obj, f) File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/pandas/core/groupby/ops.py", line 635, in agg_series return self._aggregate_series_fast(obj, func) File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/pandas/core/groupby/ops.py", line 660, in _aggregate_series_fast result, counts = grouper.get_result() File "pandas/_libs/reduction.pyx", line 375, in pandas._libs.reduction.SeriesGrouper.get_result File "pandas/_libs/reduction.pyx", line 192, in pandas._libs.reduction._BaseGrouper._apply_to_group File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/pandas/core/groupby/groupby.py", line 913, in f = lambda x: func(x, args, kwargs) File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/carveme/reconstruction/scoring.py", line 39, in merge_subunit_scores return scores.fillna(0).mean() File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/pandas/core/series.py", line 4160, in fillna downcast=downcast, File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/pandas/core/generic.py", line 6215, in fillna value=value, limit=limit, inplace=inplace, downcast=downcast File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/pandas/core/internals/managers.py", line 576, in fillna return self.apply("fillna", kwargs) File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/pandas/core/internals/managers.py", line 442, in apply applied = getattr(b, f)(kwargs) File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/pandas/core/internals/blocks.py", line 426, in fillna blocks = self.putmask(mask, value, inplace=inplace) File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/pandas/core/internals/blocks.py", line 1038, in putmask return [self.make_block(new_values)] File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/pandas/core/internals/blocks.py", line 273, in make_block return make_block(values, placement=placement, ndim=self.ndim) File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/pandas/core/internals/blocks.py", line 3028, in make_block return klass(values, ndim=ndim, placement=placement) File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/pandas/core/internals/blocks.py", line 125, in init f"Wrong number of items passed {len(self.values)}, " ValueError: Wrong number of items passed 2, placement implies 1

cdanielmachado commented 4 years ago

Which version of pandas do you have ?

rafafernandes96 commented 4 years ago

pandas in /home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages (1.0.0)

cdanielmachado commented 4 years ago

Can you please downgrade to pandas 0.24?

Pandas 1.0.0 just came out and I haven't checked for compatibility yet...

rafafernandes96 commented 4 years ago

Running diamond... diamond blastp -d /home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/carveme/data/input/bigg_proteins.dmnd -q GCF_000005845.2.faa -o GCF_000005845.2.tsv --more-sensitive --top 10 Loading universe model... Scoring reactions... Reconstructing a single model Traceback (most recent call last): File "/home/rafael/anaconda3/envs/carveme/bin/carve", line 364, in ref_score=args.reference_score File "/home/rafael/anaconda3/envs/carveme/bin/carve", line 198, in main debug_output=debug_output) File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/carveme/reconstruction/carving.py", line 236, in carve_model ref_reactions=ref_reactions, ref_score=ref_score, debug_output=debug_output) File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/carveme/reconstruction/carving.py", line 123, in minmax_reduction solver.update() File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/framed/solvers/cplex_interface.py", line 206, in update self.add_variables(var_ids, lbs, ubs, vartypes) File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/framed/solvers/cplex_interface.py", line 105, in add_variables self.problem.variables.add(names=var_ids, lb=lbs, ub=ubs, types=vartypes) File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/cplex/_internal/_subinterfaces.py", line 456, in add obj, lb, ub, types, names, columns) File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/cplex/_internal/_baseinterface.py", line 41, in _add_iter addfun(*args, **kwargs) File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/cplex/_internal/_subinterfaces.py", line 378, in _add types, names) File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/cplex/_internal/_procedural.py", line 967, in newcols xctype, colname) File "/home/rafael/anaconda3/envs/carveme/lib/python3.6/site-packages/cplex/_internal/_pycplex.py", line 1785, in CPXXnewcols return _pycplex_platform.CPXXnewcols(env, lp, ccnt, py_obj, py_lb, py_ub, xctype, colname) TypeError: not a list

rafafernandes96 commented 4 years ago

Tried downgrading cplex as well and didn't work.

nigiord commented 4 years ago

Downgrading to Python 3.6, Pandas 0.24 and CPLEX 12.8 worked for me, as described in issue #61 .