Skip to content

Commit 65f7844

Browse files
fixed confusing naming and finished parsing
1 parent 74fc3f6 commit 65f7844

5 files changed

Lines changed: 315 additions & 563 deletions

File tree

python/composite.py

Lines changed: 24 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,102 +1,84 @@
1-
import numpy as np
21
import csv
32
import xml.dom.minidom as dom
43
import argparse
54
import math
65
import parseComposite
76

8-
class Composite:
7+
# Objected to store bare-bones composite data, can be used with plot_composite function
8+
class SimpleComposite:
99
def __init__(self, xmin=None, xmax=None, sense=[], anti=[], id=""):
1010
self.xmin = xmin
1111
self.xmax = xmax
1212
self.sense = sense
1313
self.anti = anti
1414
self.id = id
15-
16-
def __str__(self):
17-
return "Sense: " + str(self.sense) + "\nAnti: " + str(self.anti) + "\nXMin: " + str(self.xmin) + "\nXMax: " + str(self.xmax) + "\nID:" + str(self.id)
1815

19-
class CompositeGroup:
16+
# Object to store composite data with options for plotting, similar to a settings row
17+
class Composite:
2018
def __init__(self, scale=1, color=None, secondary_color=None, i=None, opacity=None, smoothing=None, bp_shift=None, hide_sense=False, hide_anti=False, baseline=0, name=None):
19+
# Sets default values
20+
self.scale = scale if scale is not None else 1
21+
self.color = color if color is not None else "#0000FF"
22+
self.secondary_color = secondary_color if secondary_color is not None else color
23+
self.baseline = baseline if baseline is not None else 0
2124
self.xmin = 0
2225
self.xmax = 0
2326
self.sense = []
2427
self.anti = []
25-
self.scale = scale
26-
self.color = color
27-
self.secondary_color = secondary_color if secondary_color is not None else color
2828
self.opacity = opacity
2929
self.smoothing = smoothing
3030
self.bp_shift = bp_shift
3131
self.hide_anti = hide_anti
32-
self.baseline = baseline
3332
self.hide_sense = hide_sense
34-
self.individual_composites = {}
35-
self.files_loaded = len(self.individual_composites)
33+
self.individual_files = {}
34+
self.files_loaded = len(self.individual_files)
3635
self.name = name
37-
38-
def loadComposite(self,composite: Composite):
36+
# Adds a simple composite to the 'row'
37+
def load_simple_composite(self,composite: SimpleComposite):
3938
# If no files, initialize sense and anti arrays; otherwise, pad sense and anti arrays to new xdomain
4039
self.xmin = min(composite.xmin, self.xmin)
4140
self.xmax = max(composite.xmax, self.xmax)
42-
if len(self.individual_composites) == 0:
41+
if len(self.individual_files) == 0:
4342
self.sense = [0] * (composite.xmax - composite.xmin + 1)
4443
self.anti = [0] * (composite.xmax - composite.xmin + 1)
4544
else:
46-
xmin = min([int(self.individual_composites[c].xmin) for c in self.individual_composites])
47-
xmax = max([int(self.individual_composites[c].xmax) for c in self.individual_composites])
45+
xmin = min([int(self.individual_files[c].xmin) for c in self.individual_files])
46+
xmax = max([int(self.individual_files[c].xmax) for c in self.individual_files])
4847
prefix = [0] * (xmin - self.xmin)
4948
suffix = [0] * (self.xmax - xmax)
5049
self.sense = prefix + self.sense + suffix
5150
self.anti = prefix + self.anti + suffix
52-
5351
# Update sense and anti arrays
5452
j = composite.xmin - self.xmin
5553
while j <= composite.xmax - composite.xmin:
5654
idx = composite.xmin - self.xmin + j
5755
self.sense[idx] += composite.sense[j]
5856
self.anti[idx] += composite.anti[j]
5957
j += 1
60-
61-
self.individual_composites[composite.id] = composite
62-
63-
def loadCompositeDict(self,compositeDict: dict):
58+
self.individual_files[composite.id] = composite
59+
# Loads dictionary from parse_multiple_composites
60+
def load_composite_dict(self,compositeDict: dict):
6461
for composite in compositeDict:
6562
# If no files, initialize sense and anti arrays; otherwise, pad sense and anti arrays to new xdomain
6663
self.xmin = min(composite.xmin, self.xmin)
6764
self.xmax = max(composite.xmax, self.xmax)
68-
if len(self.individual_composites) == 0:
65+
if len(self.individual_files) == 0:
6966
self.sense = [0] * (composite.xmax - composite.xmin + 1)
7067
self.anti = [0] * (composite.xmax - composite.xmin + 1)
7168
else:
72-
xmin = min([c.xmin for c in self.individual_composites])
73-
xmax = max([c.xmax for c in self.individual_composites])
69+
xmin = min([c.xmin for c in self.individual_files])
70+
xmax = max([c.xmax for c in self.individual_files])
7471
prefix = [0] * (xmin - self.xmin)
7572
suffix = [0] * (self.xmax - xmax)
7673
self.sense = prefix + self.sense + suffix
7774
self.anti = prefix + self.anti + suffix
78-
7975
# Update sense and anti arrays
8076
j = composite.xmin - self.xmin
8177
while j <= composite.xmax - composite.xmin:
8278
idx = composite.xmin - self.xmin + j
8379
self.sense[idx] += composite.sense[j]
8480
self.anti[idx] += composite.anti[j]
8581
j += 1
86-
87-
self.individual_composites[composite.id] = composite
88-
82+
self.individual_files[composite.id] = composite
8983
def __str__(self):
90-
return str(self.individual_composites)
91-
92-
def main():
93-
c = parseComposite.parseComposite("sample_composites/sample_1.out")
94-
compositeGroup = CompositeGroup()
95-
compositeGroup.loadComposite(c)
96-
c2 = parseComposite.parseComposite("sample_composites/sample2.out.txt")
97-
compositeGroup.loadComposite(c2)
98-
print(compositeGroup)
99-
100-
101-
if __name__ == "__main__":
102-
main()
84+
return str(self.individual_files)

python/out.xml

Lines changed: 0 additions & 146 deletions
This file was deleted.

0 commit comments

Comments
 (0)