edf2csv 0.3.4 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,43 @@
|
|
|
3
3
|
Notable changes to edf2csv. Versions follow [semantic versioning](https://semver.org); while the
|
|
4
4
|
major version is 0, a minor bump may contain breaking changes.
|
|
5
5
|
|
|
6
|
+
## 0.3.5
|
|
7
|
+
|
|
8
|
+
### The cross-check now covers BDF and annotations
|
|
9
|
+
|
|
10
|
+
0.3.4 made the pyEDFlib comparison a command, but it only read `.edf` files carrying signal
|
|
11
|
+
data. That left out the two places a reader is most likely to be quietly wrong.
|
|
12
|
+
|
|
13
|
+
**24-bit BDF.** A BDF sample is three bytes, and the sign has to be extended by hand. A value
|
|
14
|
+
that comes out unsigned is not obviously wrong to look at: it is a large positive number where
|
|
15
|
+
a large negative one belongs, which is exactly the kind of mistake that survives review. A
|
|
16
|
+
quarter of the generated recordings are now BDF over BioSemi's own digital range, with both
|
|
17
|
+
extremes present in every one.
|
|
18
|
+
|
|
19
|
+
**Annotations.** Half the recordings now carry EDF+ or BDF+ events, including one with no
|
|
20
|
+
duration and one whose duration is zero, and `annotations.csv` is compared against pyEDFlib's
|
|
21
|
+
own reading of the TALs — onset, duration and text. The two disagree on one point by design:
|
|
22
|
+
pyEDFlib reports a missing duration as `-1.0` where edf2csv leaves the cell empty, a duration
|
|
23
|
+
nobody recorded not being a duration of minus one second. That difference is expected and
|
|
24
|
+
treated as agreement.
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
Compared 16,943 sample values and 120 annotations across 75 recordings.
|
|
28
|
+
Every value agreed.
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Both halves were confirmed capable of failing before being trusted: a one-part-in-a-million
|
|
32
|
+
error in the gain, and a one-millisecond shift in every annotation onset. Each exits 1 and
|
|
33
|
+
names the sample.
|
|
34
|
+
|
|
35
|
+
Writing the recordings turned up a fault in the generator rather than in the tool. A record's
|
|
36
|
+
timekeeping TAL states where that record begins, which is its index times the record duration —
|
|
37
|
+
it was writing the index. Recordings whose records are not one second long were therefore
|
|
38
|
+
internally inconsistent, and pyEDFlib rejected precisely those rather than reading them wrongly,
|
|
39
|
+
which is a good argument for comparing against something strict.
|
|
40
|
+
|
|
41
|
+
No behaviour of the tool changed in this release.
|
|
42
|
+
|
|
6
43
|
## 0.3.4
|
|
7
44
|
|
|
8
45
|
### Added: `npm run crossvalidate`, the pyEDFlib comparison as something you can run
|
package/package.json
CHANGED