cgat-developers / cgat-apps

cgat-apps repository
Other
33 stars 14 forks source link

PeakShapeResult has no attribute `hist` #75

Open IanSudbery opened 3 years ago

IanSudbery commented 3 years ago

The PeakShapeResult class is defined in bamtools.peakshape thus:

PeakShapeResult = collections.namedtuple(
    "PeakShapeResult",
    "interval_width npeaks "
    "peak_center peak_width peak_height peak_relative_pos "
    "nreads "
    "median closest_half_height furthest_halfheight "
    "bins counts" )

however, in several places bam2peakshape.py refers to the .hist property of a PeakShapeResult or PeakShapeCounts object. Looking at the code, I'm getting the feeling that what is now counts was once called hist, but when it was renamed, not all instances of hist were caught.

This means that if bam2peakshape is called with the argument --use-strand the error:

AttributeError: 'PeakShapeResult' object has no attribute 'hist'

will be thrown. The correction should be simple, but this really should also be covered by a test. I would do it now, but I've got a butt load of lectures to write before next week. Maybe I'll get round it later.

IanSudbery commented 3 years ago

Also main of bam2peakshape.buildDensityMatricies has a logging counter called c:

https://github.com/cgat-developers/cgat-apps/blob/4ac9f37ea625dda0206075f9d3eced3113c30a17/cgat/tools/bam2peakshape.py#L479

But if you use a control file and use --use-strand then this happens:

https://github.com/cgat-developers/cgat-apps/blob/4ac9f37ea625dda0206075f9d3eced3113c30a17/cgat/tools/bam2peakshape.py#L529-L535

Meaning that c is overwritten with a PeakShapeResult object. This means an error is raised next time the counter is updated.