Spaces:
Runtime error
Runtime error
| def get_records(): | |
| """ Get paths for data in data/mit/ directory """ | |
| #Download if doesn't exist | |
| # There are 3 files for each record | |
| # *.atr is one of them | |
| paths = glob('/path/to/MITDB/dataset/*.atr') | |
| # Get rid of the extension | |
| paths = [path[:-4] for path in paths] | |
| paths.sort() | |
| return paths | |
| def beat_annotations(annotation): | |
| """ Get rid of non-beat markers """ | |
| """'N' for normal beats. Similarly we can give the input 'L' for left bundle branch block beats. 'R' for right bundle branch block | |
| beats. 'A' for Atrial premature contraction. 'V' for ventricular premature contraction. '/' for paced beat. 'E' for Ventricular | |
| escape beat.""" | |
| good = ['N'] | |
| ids = np.in1d(annotation.symbol, good) | |
| # We want to know only the positions | |
| beats = annotation.sample[ids] | |
| return beats | |
| def segmentation(records): | |
| Normal = [] | |
| for e in records: | |
| signals, fields = wfdb.rdsamp(e, channels = [0]) | |
| ann = wfdb.rdann(e, 'atr') | |
| good = ['N'] | |
| ids = np.in1d(ann.symbol, good) | |
| imp_beats = ann.sample[ids] | |
| beats = (ann.sample) | |
| for i in imp_beats: | |
| beats = list(beats) | |
| j = beats.index(i) | |
| if(j!=0 and j!=(len(beats)-1)): | |
| x = beats[j-1] | |
| y = beats[j+1] | |
| diff1 = abs(x - beats[j])//2 | |
| diff2 = abs(y - beats[j])//2 | |
| Normal.append(signals[beats[j] - diff1: beats[j] + diff2, 0]) | |
| return Normal | |