Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TSV importer that supports headers #128

Closed
golobor opened this issue Aug 17, 2018 · 2 comments
Closed

TSV importer that supports headers #128

golobor opened this issue Aug 17, 2018 · 2 comments

Comments

@golobor
Copy link
Member

golobor commented Aug 17, 2018

$ cooler -pm load -f bg2 --count-as-float --tril-action drop ./data/test.10.bins ./data/sin_eigs_mat.bg2 ./data/sin_eigs_mat.cool
Traceback (most recent call last):
  File "/home/golobor/miniconda3/lib/python3.6/site-packages/pandas/core/ops.py", line 676, in na_op
    result = expressions.evaluate(op, str_rep, x, y, **eval_kwargs)
  File "/home/golobor/miniconda3/lib/python3.6/site-packages/pandas/core/computation/expressions.py", line 204, in evaluate
    return _evaluate(op, op_str, a, b, **eval_kwargs)
  File "/home/golobor/miniconda3/lib/python3.6/site-packages/pandas/core/computation/expressions.py", line 119, in _evaluate_numexpr
    result = _evaluate_standard(op, op_str, a, b)
  File "/home/golobor/miniconda3/lib/python3.6/site-packages/pandas/core/computation/expressions.py", line 64, in _evaluate_standard
    return op(a, b)
TypeError: unsupported operand type(s) for -: 'str' and 'str'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/golobor/miniconda3/lib/python3.6/site-packages/pandas/core/ops.py", line 700, in safe_na_op
    return na_op(lvalues, rvalues)
  File "/home/golobor/miniconda3/lib/python3.6/site-packages/pandas/core/ops.py", line 682, in na_op
    result[mask] = op(x[mask], _values_from_object(y[mask]))
TypeError: unsupported operand type(s) for -: 'str' and 'str'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/golobor/miniconda3/bin/cooler", line 6, in <module>
    sys.exit(cooler.cli.cli())
  File "/home/golobor/miniconda3/lib/python3.6/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/home/golobor/miniconda3/lib/python3.6/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/home/golobor/miniconda3/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/golobor/miniconda3/lib/python3.6/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/golobor/miniconda3/lib/python3.6/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/home/golobor/miniconda3/lib/python3.6/site-packages/cooler/cli/load.py", line 244, in load
    sort=True)
  File "/home/golobor/miniconda3/lib/python3.6/site-packages/cooler/_binning.py", line 1310, in sanitize_records
    options['gs'] = GenomeSegmentation(chromsizes, bins)
  File "/home/golobor/miniconda3/lib/python3.6/site-packages/cooler/_binning.py", line 107, in __init__
    self.binsize = get_binsize(bins)
  File "/home/golobor/miniconda3/lib/python3.6/site-packages/cooler/util.py", line 325, in get_binsize
    sizes.update((group['end'] - group['start']).iloc[:-1].unique())
  File "/home/golobor/miniconda3/lib/python3.6/site-packages/pandas/core/ops.py", line 739, in wrapper
    result = wrap_results(safe_na_op(lvalues, rvalues))
  File "/home/golobor/miniconda3/lib/python3.6/site-packages/pandas/core/ops.py", line 710, in safe_na_op
    lambda x: op(x, rvalues))
  File "pandas/_libs/algos_common_helper.pxi", line 1212, in pandas._libs.algos.arrmap_object
  File "/home/golobor/miniconda3/lib/python3.6/site-packages/pandas/core/ops.py", line 710, in <lambda>
    lambda x: op(x, rvalues))
TypeError: unsupported operand type(s) for -: 'str' and 'str'

> /home/golobor/miniconda3/lib/python3.6/site-packages/pandas/core/ops.py(710)<lambda>()
    709                     return libalgos.arrmap_object(lvalues,
--> 710                                                   lambda x: op(x, rvalues))
    711             raise

ipdb> u
> /home/golobor/programming/cooltools/tests/pandas/_libs/algos_common_helper.pxi(1212)pandas._libs.algos.arrmap_object()

ipdb> u
> /home/golobor/miniconda3/lib/python3.6/site-packages/pandas/core/ops.py(710)safe_na_op()
    709                     return libalgos.arrmap_object(lvalues,
--> 710                                                   lambda x: op(x, rvalues))
    711             raise

ipdb> u
> /home/golobor/miniconda3/lib/python3.6/site-packages/pandas/core/ops.py(739)wrapper()
    738 
--> 739         result = wrap_results(safe_na_op(lvalues, rvalues))
    740         return construct_result(

ipdb> u
> /home/golobor/miniconda3/lib/python3.6/site-packages/cooler/util.py(325)get_binsize()
    324     for chrom, group in bins.groupby('chrom'):
--> 325         sizes.update((group['end'] - group['start']).iloc[:-1].unique())
    326         if len(sizes) > 1:

ipdb> u
> /home/golobor/miniconda3/lib/python3.6/site-packages/cooler/_binning.py(107)__init__()
    106         self.chromsizes = chromsizes
--> 107         self.binsize = get_binsize(bins)
    108         self.contigs = list(chromsizes.keys())

ipdb> u
> /home/golobor/miniconda3/lib/python3.6/site-packages/cooler/_binning.py(1310)sanitize_records()
   1309     chromsizes = get_chromsizes(bins)
-> 1310     options['gs'] = GenomeSegmentation(chromsizes, bins)
   1311     return partial(_sanitize_records, **options)

ipdb> u
> /home/golobor/miniconda3/lib/python3.6/site-packages/cooler/cli/load.py(244)load()
    243             tril_action=tril_action,
--> 244             sort=True)
    245 

ipdb> u
> /home/golobor/miniconda3/lib/python3.6/site-packages/click/core.py(535)invoke()
    534             with ctx:
--> 535                 return callback(*args, **kwargs)
    536 


@nvictus
Copy link
Member

nvictus commented Aug 17, 2018

The input file had a header, which isn't supported. We need a smarter tsv importer.

@nvictus nvictus changed the title cooler load loads bin tables as strings TSV importer that supports headers Sep 18, 2018
@nvictus
Copy link
Member

nvictus commented Jun 30, 2020

Migrating to #209

@nvictus nvictus closed this as completed Jun 30, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants