github-actions[bot] commited on
Commit
72fd567
Β·
1 Parent(s): 2249e72

Deploy from GitHub: 8b9f64a2f45d62dbbc31700c51ca68ed0f5d45fd

Browse files
Files changed (4) hide show
  1. .gitattributes +0 -35
  2. README.md +7 -9
  3. _config.yml +4 -0
  4. index.html +1479 -0
.gitattributes DELETED
@@ -1,35 +0,0 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
README.md CHANGED
@@ -1,14 +1,12 @@
1
  ---
2
- title: ECGDatasets
3
- emoji: πŸ“Š
4
- colorFrom: purple
5
- colorTo: gray
6
- sdk: gradio
7
- sdk_version: 6.10.0
8
- app_file: app.py
9
  pinned: false
10
  license: apache-2.0
11
- short_description: Summary of ECG datasets available for Research
12
  ---
13
 
14
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: ECG Datasets
3
+ emoji: πŸ«€
4
+ colorFrom: blue
5
+ colorTo: purple
6
+ sdk: static
 
 
7
  pinned: false
8
  license: apache-2.0
9
+ short_description: A curated collection of ECG datasets for machine learning
10
  ---
11
 
12
+ This Space mirrors the ECG Datasets site at https://vlbthambawita.github.io/ECGDatasets/
_config.yml ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ title: ECG Datasets
2
+ description: A curated collection of publicly available 12-lead ECG datasets from PhysioNet.
3
+ url: "https://vlbthambawita.github.io"
4
+ baseurl: "/ECGDatasets"
index.html ADDED
@@ -0,0 +1,1479 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>ECG Datasets β€” PhysioNet Collection</title>
7
+ <style>
8
+ :root {
9
+ --bg: #0f1117;
10
+ --surface: #1a1d27;
11
+ --surface2: #22263a;
12
+ --border: #2e3247;
13
+ --accent: #4f8ef7;
14
+ --accent2: #7c6af7;
15
+ --open: #22c55e;
16
+ --cred: #f59e0b;
17
+ --rest: #ef4444;
18
+ --text: #e2e8f0;
19
+ --muted: #8892a4;
20
+ --card-shadow: 0 4px 24px rgba(0,0,0,0.4);
21
+ }
22
+
23
+ * { box-sizing: border-box; margin: 0; padding: 0; }
24
+
25
+ body {
26
+ font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
27
+ background: var(--bg);
28
+ color: var(--text);
29
+ line-height: 1.6;
30
+ min-height: 100vh;
31
+ }
32
+
33
+ /* ── Hero ── */
34
+ header {
35
+ background: linear-gradient(135deg, #0f1117 0%, #1a1d27 50%, #1a1527 100%);
36
+ border-bottom: 1px solid var(--border);
37
+ padding: 60px 24px 48px;
38
+ text-align: center;
39
+ position: relative;
40
+ overflow: hidden;
41
+ }
42
+ header::before {
43
+ content: '';
44
+ position: absolute;
45
+ inset: 0;
46
+ background: radial-gradient(ellipse 80% 60% at 50% -10%, rgba(79,142,247,0.15), transparent);
47
+ pointer-events: none;
48
+ }
49
+ header .badge {
50
+ display: inline-block;
51
+ background: rgba(79,142,247,0.15);
52
+ border: 1px solid rgba(79,142,247,0.35);
53
+ color: var(--accent);
54
+ font-size: 0.78rem;
55
+ font-weight: 600;
56
+ letter-spacing: 0.08em;
57
+ text-transform: uppercase;
58
+ padding: 4px 14px;
59
+ border-radius: 20px;
60
+ margin-bottom: 18px;
61
+ }
62
+ header h1 {
63
+ font-size: clamp(2rem, 5vw, 3.2rem);
64
+ font-weight: 800;
65
+ letter-spacing: -0.03em;
66
+ background: linear-gradient(135deg, #e2e8f0 30%, #4f8ef7 100%);
67
+ -webkit-background-clip: text;
68
+ -webkit-text-fill-color: transparent;
69
+ background-clip: text;
70
+ margin-bottom: 14px;
71
+ }
72
+ header p {
73
+ color: var(--muted);
74
+ font-size: 1.1rem;
75
+ max-width: 560px;
76
+ margin: 0 auto 28px;
77
+ }
78
+ header .links a {
79
+ display: inline-flex;
80
+ align-items: center;
81
+ gap: 6px;
82
+ color: var(--muted);
83
+ text-decoration: none;
84
+ font-size: 0.9rem;
85
+ border: 1px solid var(--border);
86
+ padding: 7px 16px;
87
+ border-radius: 8px;
88
+ margin: 4px;
89
+ transition: color .2s, border-color .2s, background .2s;
90
+ }
91
+ header .links a:hover {
92
+ color: var(--text);
93
+ border-color: var(--accent);
94
+ background: rgba(79,142,247,0.08);
95
+ }
96
+
97
+ /* ── Stats ── */
98
+ .stats {
99
+ display: flex;
100
+ flex-wrap: wrap;
101
+ gap: 16px;
102
+ justify-content: center;
103
+ padding: 40px 24px;
104
+ max-width: 900px;
105
+ margin: 0 auto;
106
+ }
107
+ .stat-card {
108
+ flex: 1 1 160px;
109
+ background: var(--surface);
110
+ border: 1px solid var(--border);
111
+ border-radius: 14px;
112
+ padding: 20px 24px;
113
+ text-align: center;
114
+ box-shadow: var(--card-shadow);
115
+ }
116
+ .stat-card .num {
117
+ font-size: 2.2rem;
118
+ font-weight: 800;
119
+ color: var(--accent);
120
+ line-height: 1;
121
+ margin-bottom: 6px;
122
+ }
123
+ .stat-card .label {
124
+ color: var(--muted);
125
+ font-size: 0.82rem;
126
+ text-transform: uppercase;
127
+ letter-spacing: 0.06em;
128
+ }
129
+
130
+ /* ── Controls ── */
131
+ .controls {
132
+ max-width: 1300px;
133
+ margin: 0 auto;
134
+ padding: 0 24px 20px;
135
+ display: flex;
136
+ flex-wrap: wrap;
137
+ gap: 12px;
138
+ align-items: center;
139
+ }
140
+ .search-wrap {
141
+ flex: 1 1 260px;
142
+ position: relative;
143
+ }
144
+ .search-wrap svg {
145
+ position: absolute;
146
+ left: 12px;
147
+ top: 50%;
148
+ transform: translateY(-50%);
149
+ color: var(--muted);
150
+ pointer-events: none;
151
+ }
152
+ .search-wrap input {
153
+ width: 100%;
154
+ background: var(--surface);
155
+ border: 1px solid var(--border);
156
+ border-radius: 8px;
157
+ color: var(--text);
158
+ font-size: 0.93rem;
159
+ padding: 9px 12px 9px 38px;
160
+ outline: none;
161
+ transition: border-color .2s;
162
+ }
163
+ .search-wrap input:focus { border-color: var(--accent); }
164
+ .search-wrap input::placeholder { color: var(--muted); }
165
+
166
+ .filter-group {
167
+ display: flex;
168
+ gap: 8px;
169
+ flex-wrap: wrap;
170
+ }
171
+ .filter-btn {
172
+ background: var(--surface);
173
+ border: 1px solid var(--border);
174
+ color: var(--muted);
175
+ font-size: 0.82rem;
176
+ font-weight: 600;
177
+ padding: 7px 14px;
178
+ border-radius: 8px;
179
+ cursor: pointer;
180
+ transition: all .2s;
181
+ }
182
+ .filter-btn:hover, .filter-btn.active {
183
+ background: var(--surface2);
184
+ color: var(--text);
185
+ border-color: var(--accent);
186
+ }
187
+ .filter-btn.f-open.active { border-color: var(--open); color: var(--open); }
188
+ .filter-btn.f-cred.active { border-color: var(--cred); color: var(--cred); }
189
+ .filter-btn.f-rest.active { border-color: var(--rest); color: var(--rest); }
190
+
191
+ /* ── Table wrapper ── */
192
+ .table-wrap {
193
+ max-width: 1300px;
194
+ margin: 0 auto;
195
+ padding: 0 24px 60px;
196
+ overflow-x: auto;
197
+ }
198
+ table {
199
+ width: 100%;
200
+ border-collapse: collapse;
201
+ font-size: 0.875rem;
202
+ }
203
+ thead tr {
204
+ background: var(--surface2);
205
+ border-bottom: 2px solid var(--border);
206
+ }
207
+ th {
208
+ padding: 12px 14px;
209
+ text-align: left;
210
+ color: var(--muted);
211
+ font-size: 0.75rem;
212
+ font-weight: 700;
213
+ text-transform: uppercase;
214
+ letter-spacing: 0.07em;
215
+ white-space: nowrap;
216
+ cursor: pointer;
217
+ user-select: none;
218
+ }
219
+ th:hover { color: var(--text); }
220
+ th .sort-icon { margin-left: 4px; opacity: .4; }
221
+ th.sorted .sort-icon { opacity: 1; color: var(--accent); }
222
+
223
+ tbody tr {
224
+ border-bottom: 1px solid var(--border);
225
+ transition: background .15s;
226
+ }
227
+ tbody tr:hover { background: var(--surface); }
228
+ tbody tr.hidden { display: none; }
229
+
230
+ td {
231
+ padding: 13px 14px;
232
+ vertical-align: top;
233
+ color: var(--text);
234
+ }
235
+ td.num-cell { color: var(--muted); font-size: 0.8rem; }
236
+
237
+ .dataset-name {
238
+ font-weight: 600;
239
+ color: var(--text);
240
+ display: block;
241
+ margin-bottom: 2px;
242
+ }
243
+ .dataset-link {
244
+ color: var(--accent);
245
+ text-decoration: none;
246
+ font-size: 0.8rem;
247
+ opacity: .8;
248
+ }
249
+ .dataset-link:hover { opacity: 1; text-decoration: underline; }
250
+
251
+ .tag {
252
+ display: inline-block;
253
+ font-size: 0.72rem;
254
+ font-weight: 600;
255
+ padding: 2px 8px;
256
+ border-radius: 4px;
257
+ line-height: 1.5;
258
+ }
259
+ .tag-open { background: rgba(34,197,94,.15); color: var(--open); }
260
+ .tag-cred { background: rgba(245,158,11,.15); color: var(--cred); }
261
+ .tag-rest { background: rgba(239,68,68,.15); color: var(--rest); }
262
+
263
+ .paper-link {
264
+ color: var(--accent2);
265
+ text-decoration: none;
266
+ font-size: 0.82rem;
267
+ }
268
+ .paper-link:hover { text-decoration: underline; }
269
+ .no-paper { color: var(--muted); font-size: 0.82rem; }
270
+
271
+ .origin-country { color: var(--muted); font-size: 0.8rem; }
272
+ .origin-inst { font-size: 0.82rem; }
273
+
274
+ .count { color: var(--text); }
275
+ .count-na { color: var(--muted); font-style: italic; font-size: 0.8rem; }
276
+
277
+ /* ── Footer ── */
278
+ footer {
279
+ border-top: 1px solid var(--border);
280
+ text-align: center;
281
+ padding: 24px;
282
+ color: var(--muted);
283
+ font-size: 0.82rem;
284
+ }
285
+ footer a { color: var(--accent); text-decoration: none; }
286
+ footer a:hover { text-decoration: underline; }
287
+
288
+ /* ── Section headers ── */
289
+ .section-header {
290
+ max-width: 1300px;
291
+ margin: 0 auto;
292
+ padding: 32px 24px 12px;
293
+ display: flex;
294
+ align-items: center;
295
+ gap: 12px;
296
+ }
297
+ .section-header h2 {
298
+ font-size: 1.1rem;
299
+ font-weight: 700;
300
+ color: var(--text);
301
+ }
302
+ .section-header .pill {
303
+ background: rgba(79,142,247,0.15);
304
+ border: 1px solid rgba(79,142,247,0.3);
305
+ color: var(--accent);
306
+ font-size: 0.75rem;
307
+ font-weight: 700;
308
+ padding: 2px 10px;
309
+ border-radius: 20px;
310
+ }
311
+ .section-divider {
312
+ max-width: 1300px;
313
+ margin: 0 auto 0;
314
+ padding: 0 24px;
315
+ border: none;
316
+ border-top: 1px solid var(--border);
317
+ }
318
+
319
+ /* ── No results ── */
320
+ #no-results {
321
+ display: none;
322
+ text-align: center;
323
+ padding: 48px 24px;
324
+ color: var(--muted);
325
+ font-size: 1rem;
326
+ }
327
+
328
+ /* ── Charts ── */
329
+ .charts-section {
330
+ max-width: 1300px;
331
+ margin: 0 auto;
332
+ padding: 48px 24px 40px;
333
+ }
334
+ .charts-section-title {
335
+ font-size: 1.35rem;
336
+ font-weight: 800;
337
+ color: var(--text);
338
+ margin-bottom: 6px;
339
+ }
340
+ .charts-section-sub {
341
+ color: var(--muted);
342
+ font-size: 0.9rem;
343
+ margin-bottom: 32px;
344
+ }
345
+ .charts-grid {
346
+ display: grid;
347
+ grid-template-columns: repeat(auto-fit, minmax(520px, 1fr));
348
+ gap: 20px;
349
+ }
350
+ .chart-card {
351
+ background: var(--surface);
352
+ border: 1px solid var(--border);
353
+ border-radius: 16px;
354
+ padding: 24px 20px 16px;
355
+ box-shadow: var(--card-shadow);
356
+ }
357
+ .chart-card h3 {
358
+ font-size: 0.88rem;
359
+ font-weight: 700;
360
+ text-transform: uppercase;
361
+ letter-spacing: 0.07em;
362
+ color: var(--muted);
363
+ margin-bottom: 4px;
364
+ }
365
+ .chart-card p {
366
+ font-size: 0.78rem;
367
+ color: var(--muted);
368
+ margin-bottom: 12px;
369
+ opacity: .7;
370
+ }
371
+ .chart-card .plotly-chart { width: 100%; height: 320px; }
372
+ .chart-card.tall .plotly-chart { height: 420px; }
373
+
374
+ @media (max-width: 640px) {
375
+ header { padding: 40px 16px 32px; }
376
+ .stats { padding: 24px 16px; }
377
+ .charts-grid { grid-template-columns: 1fr; }
378
+ .chart-card .plotly-chart { height: 280px; }
379
+ .chart-card.tall .plotly-chart { height: 360px; }
380
+ }
381
+ </style>
382
+ </head>
383
+ <body>
384
+
385
+ <!-- ── Hero ── -->
386
+ <header>
387
+ <div class="badge">ECG Dataset Index</div>
388
+ <h1>ECG Datasets</h1>
389
+ <p>A curated index of 58 publicly available electrocardiogram datasets spanning 12-lead clinical, 2-lead ambulatory, and single-lead wearable recordings, sourced from PhysioNet and other open repositories across 13+ countries.</p>
390
+ <div class="links">
391
+ <a href="https://github.com/vlbthambawita/ECGDatasets" target="_blank">
392
+ <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z"/></svg>
393
+ GitHub
394
+ </a>
395
+ <a href="https://physionet.org/" target="_blank">
396
+ <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M10 13a5 5 0 007.54.54l3-3a5 5 0 00-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 00-7.54-.54l-3 3a5 5 0 007.07 7.07l1.71-1.71"/></svg>
397
+ PhysioNet
398
+ </a>
399
+ <a href="https://github.com/vlbthambawita/ECGDatasets/issues/new" target="_blank" style="border-color: rgba(239,68,68,0.4); color: #f87171;">
400
+ <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg>
401
+ Report an Issue
402
+ </a>
403
+ </div>
404
+ </header>
405
+
406
+ <!-- ── Stats ── -->
407
+ <section class="stats">
408
+ <div class="stat-card"><div class="num">58</div><div class="label">Total Datasets</div></div>
409
+ <div class="stat-card"><div class="num">23</div><div class="label">12-Lead (PhysioNet)</div></div>
410
+ <div class="stat-card"><div class="num">15</div><div class="label">12-Lead (Other)</div></div>
411
+ <div class="stat-card"><div class="num">10</div><div class="label">2-Lead</div></div>
412
+ <div class="stat-card"><div class="num">10</div><div class="label">1-Lead</div></div>
413
+ <div class="stat-card"><div class="num">11M+</div><div class="label">Max Records</div></div>
414
+ <div class="stat-card"><div class="num">13+</div><div class="label">Countries</div></div>
415
+ </section>
416
+
417
+ <!-- ── Controls ── -->
418
+ <div class="controls">
419
+ <div class="search-wrap">
420
+ <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="8"/><path d="M21 21l-4.35-4.35"/></svg>
421
+ <input type="text" id="search" placeholder="Search datasets, institutions, countries…" />
422
+ </div>
423
+ <div class="filter-group">
424
+ <button class="filter-btn active" data-filter="all" data-group="access">All</button>
425
+ <button class="filter-btn f-open" data-filter="open" data-group="access">Open</button>
426
+ <button class="filter-btn f-cred" data-filter="credentialed" data-group="access">Credentialed</button>
427
+ <button class="filter-btn f-rest" data-filter="restricted" data-group="access">Restricted</button>
428
+ </div>
429
+ <div class="filter-group">
430
+ <button class="filter-btn active" data-filter="all" data-group="leads">All Leads</button>
431
+ <button class="filter-btn" data-filter="12" data-group="leads">12-Lead</button>
432
+ <button class="filter-btn" data-filter="2" data-group="leads">2-Lead</button>
433
+ <button class="filter-btn" data-filter="1" data-group="leads">1-Lead</button>
434
+ </div>
435
+ </div>
436
+
437
+ <!-- ── 12-Lead Section Header ── -->
438
+ <div class="section-header">
439
+ <h2>12-Lead ECG Datasets</h2>
440
+ <span class="pill">23 datasets</span>
441
+ </div>
442
+
443
+ <!-- ── Table ── -->
444
+ <div class="table-wrap">
445
+ <table id="dataset-table">
446
+ <thead>
447
+ <tr>
448
+ <th>#</th>
449
+ <th>Dataset</th>
450
+ <th>Format</th>
451
+ <th>Patients</th>
452
+ <th>Records</th>
453
+ <th>Access</th>
454
+ <th>Origin</th>
455
+ <th>Paper</th>
456
+ </tr>
457
+ </thead>
458
+ <tbody id="tbody">
459
+
460
+ <tr data-access="open" data-leads="12" data-text="ptb-xl germany ptb physikalisch-technische bundesanstalt">
461
+ <td class="num-cell">1</td>
462
+ <td><span class="dataset-name">PTB-XL</span><a class="dataset-link" href="https://physionet.org/content/ptb-xl/1.0.3/" target="_blank">physionet.org β†—</a></td>
463
+ <td>12-lead Β· 10 s Β· 500 Hz (also 100 Hz)</td>
464
+ <td class="count">18,869</td>
465
+ <td class="count">21,799</td>
466
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">CC BY 4.0</small></td>
467
+ <td><span class="origin-inst">Physikalisch-Technische Bundesanstalt</span><br><span class="origin-country">Germany</span></td>
468
+ <td><a class="paper-link" href="https://doi.org/10.1038/s41597-020-0495-6" target="_blank">PTB-XL: A Large Publicly Available ECG Dataset</a></td>
469
+ </tr>
470
+
471
+ <tr data-access="open" data-leads="12" data-text="ptb-xl+ karlsruhe germany features snomed">
472
+ <td class="num-cell">2</td>
473
+ <td><span class="dataset-name">PTB-XL+</span><a class="dataset-link" href="https://physionet.org/content/ptb-xl-plus/1.0.1/" target="_blank">physionet.org β†—</a></td>
474
+ <td>12-lead Β· 10 s Β· 500 Hz Β· features &amp; median beats</td>
475
+ <td class="count">18,869</td>
476
+ <td class="count">21,799</td>
477
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">CC BY 4.0</small></td>
478
+ <td><span class="origin-inst">Karlsruhe Institute of Technology</span><br><span class="origin-country">Germany</span></td>
479
+ <td><a class="paper-link" href="https://doi.org/10.1038/s41597-023-02153-8" target="_blank">PTB-XL+: A Comprehensive ECG Feature Dataset</a></td>
480
+ </tr>
481
+
482
+ <tr data-access="open" data-leads="12" data-text="ptb diagnostic germany berlin benjamin franklin">
483
+ <td class="num-cell">3</td>
484
+ <td><span class="dataset-name">PTB Diagnostic ECG Database</span><a class="dataset-link" href="https://physionet.org/content/ptbdb/1.0.0/" target="_blank">physionet.org β†—</a></td>
485
+ <td>15-lead (12 + 3 Frank) Β· variable Β· 1,000 Hz</td>
486
+ <td class="count">290</td>
487
+ <td class="count">549</td>
488
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">ODC Attribution</small></td>
489
+ <td><span class="origin-inst">Univ. Clinic Benjamin Franklin</span><br><span class="origin-country">Germany β€” Berlin</span></td>
490
+ <td><a class="paper-link" href="https://doi.org/10.13026/C28C71" target="_blank">Bousseljot et al., Biomedizinische Technik, 1995</a></td>
491
+ </tr>
492
+
493
+ <tr data-access="credentialed" data-leads="12" data-text="mimic iv ecg usa boston beth israel mit">
494
+ <td class="num-cell">4</td>
495
+ <td><span class="dataset-name">MIMIC-IV-ECG</span><a class="dataset-link" href="https://physionet.org/content/mimic-iv-ecg/1.0/" target="_blank">physionet.org β†—</a></td>
496
+ <td>12-lead Β· 10 s Β· 500 Hz</td>
497
+ <td class="count">~160,000</td>
498
+ <td class="count">~800,000</td>
499
+ <td><span class="tag tag-cred">Credentialed</span><br><small style="color:var(--muted)">PhysioNet DUA</small></td>
500
+ <td><span class="origin-inst">Beth Israel Deaconess Medical Center</span><br><span class="origin-country">USA β€” Boston, MA</span></td>
501
+ <td><a class="paper-link" href="https://doi.org/10.13026/4nqg-sb35" target="_blank">Gow et al.</a></td>
502
+ </tr>
503
+
504
+ <tr data-access="open" data-leads="12" data-text="mimic iv ecg demo usa boston beth israel">
505
+ <td class="num-cell">5</td>
506
+ <td><span class="dataset-name">MIMIC-IV-ECG Demo</span><a class="dataset-link" href="https://physionet.org/content/mimic-iv-ecg-demo/0.1/" target="_blank">physionet.org β†—</a></td>
507
+ <td>12-lead Β· 10 s Β· 500 Hz</td>
508
+ <td class="count">92</td>
509
+ <td class="count">659</td>
510
+ <td><span class="tag tag-open">Open</span></td>
511
+ <td><span class="origin-inst">Beth Israel Deaconess Medical Center</span><br><span class="origin-country">USA β€” Boston, MA</span></td>
512
+ <td><a class="paper-link" href="https://doi.org/10.13026/4eqn-kt76" target="_blank">Dataset DOI</a></td>
513
+ </tr>
514
+
515
+ <tr data-access="credentialed" data-leads="12" data-text="mimic iv ecg ext icd usa germany mit icd-10">
516
+ <td class="num-cell">6</td>
517
+ <td><span class="dataset-name">MIMIC-IV-ECG-Ext-ICD</span><a class="dataset-link" href="https://physionet.org/content/mimic-iv-ecg-ext-icd-labels/1.0.1/" target="_blank">physionet.org β†—</a></td>
518
+ <td>12-lead Β· 10 s Β· 500 Hz Β· 1,076 ICD-10-CM codes</td>
519
+ <td class="count-na">Subset of MIMIC-IV-ECG</td>
520
+ <td class="count-na">Subset of MIMIC-IV-ECG</td>
521
+ <td><span class="tag tag-cred">Credentialed</span></td>
522
+ <td><span class="origin-inst">MIT LCP + collaborators</span><br><span class="origin-country">USA / Germany</span></td>
523
+ <td><a class="paper-link" href="https://doi.org/10.1093/ehjdh/ztae039" target="_blank">Eur Heart J Digital Health, 2024</a></td>
524
+ </tr>
525
+
526
+ <tr data-access="open" data-leads="12" data-text="chapman shaoxing arrhythmia china usa ningbo">
527
+ <td class="num-cell">7</td>
528
+ <td><span class="dataset-name">Chapman-Shaoxing (Arrhythmia)</span><a class="dataset-link" href="https://physionet.org/content/ecg-arrhythmia/1.0.0/" target="_blank">physionet.org β†—</a></td>
529
+ <td>12-lead Β· 10 s Β· 500 Hz</td>
530
+ <td class="count">45,152</td>
531
+ <td class="count">45,152</td>
532
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">CC BY 4.0</small></td>
533
+ <td><span class="origin-inst">Chapman Univ.; Shaoxing People's Hospital &amp; Ningbo First Hospital</span><br><span class="origin-country">China / USA</span></td>
534
+ <td><a class="paper-link" href="https://doi.org/10.1038/s41598-020-59821-7" target="_blank">Zheng et al., Scientific Reports, 2020</a></td>
535
+ </tr>
536
+
537
+ <tr data-access="open" data-leads="12" data-text="incart st petersburg russia arrhythmia">
538
+ <td class="num-cell">8</td>
539
+ <td><span class="dataset-name">St Petersburg INCART 12-Lead Arrhythmia Database</span><a class="dataset-link" href="https://physionet.org/content/incartdb/1.0.0/" target="_blank">physionet.org β†—</a></td>
540
+ <td>12-lead Β· 30 min Β· 257 Hz</td>
541
+ <td class="count">32</td>
542
+ <td class="count">75</td>
543
+ <td><span class="tag tag-open">Open</span></td>
544
+ <td><span class="origin-inst">St. Petersburg Institute of Cardiological Technics (INCART)</span><br><span class="origin-country">Russia</span></td>
545
+ <td><a class="paper-link" href="https://doi.org/10.13026/C2V88N" target="_blank">Dataset DOI</a></td>
546
+ </tr>
547
+
548
+ <tr data-access="open" data-leads="12" data-text="ludb lobachevsky russia nizhny novgorod annotated">
549
+ <td class="num-cell">9</td>
550
+ <td><span class="dataset-name">Lobachevsky University ECG Database (LUDB)</span><a class="dataset-link" href="https://physionet.org/content/ludb/1.0.1/" target="_blank">physionet.org β†—</a></td>
551
+ <td>12-lead Β· 10 s Β· 500 Hz Β· manually annotated waves</td>
552
+ <td class="count">200</td>
553
+ <td class="count">200</td>
554
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">ODC Attribution</small></td>
555
+ <td><span class="origin-inst">Nizhny Novgorod City Hospital No. 5 / Lobachevsky University</span><br><span class="origin-country">Russia</span></td>
556
+ <td><a class="paper-link" href="https://doi.org/10.1109/ACCESS.2020.3029211" target="_blank">IEEE Access, 2020</a></td>
557
+ </tr>
558
+
559
+ <tr data-access="open" data-leads="12" data-text="brugada huca spain asturias hospital">
560
+ <td class="num-cell">10</td>
561
+ <td><span class="dataset-name">Brugada-HUCA</span><a class="dataset-link" href="https://physionet.org/content/brugada-huca/1.0.0/" target="_blank">physionet.org β†—</a></td>
562
+ <td>12-lead Β· 12 s Β· 100 Hz</td>
563
+ <td class="count">363</td>
564
+ <td class="count">363</td>
565
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">CC BY-SA 4.0</small></td>
566
+ <td><span class="origin-inst">Hospital Universitario Central de Asturias (HUCA)</span><br><span class="origin-country">Spain</span></td>
567
+ <td><a class="paper-link" href="https://doi.org/10.13026/0m2w-dy83" target="_blank">Dataset DOI</a></td>
568
+ </tr>
569
+
570
+ <tr data-access="restricted" data-leads="12" data-text="kurias ecg south korea seoul anam snomed omop">
571
+ <td class="num-cell">11</td>
572
+ <td><span class="dataset-name">KURIAS-ECG</span><a class="dataset-link" href="https://physionet.org/content/kurias-ecg/1.0/" target="_blank">physionet.org β†—</a></td>
573
+ <td>12-lead Β· 10 s Β· 500 Hz Β· SNOMED CT + OMOP-CDM</td>
574
+ <td class="count">13,862</td>
575
+ <td class="count">20,000</td>
576
+ <td><span class="tag tag-rest">Restricted</span><br><small style="color:var(--muted)">Pending audit</small></td>
577
+ <td><span class="origin-inst">Korea University Anam Hospital</span><br><span class="origin-country">South Korea β€” Seoul</span></td>
578
+ <td><a class="paper-link" href="https://doi.org/10.13026/kga0-0270" target="_blank">Dataset DOI</a></td>
579
+ </tr>
580
+
581
+ <tr data-access="open" data-leads="12" data-text="leipzig heart center germany intracardiac electrogram">
582
+ <td class="num-cell">12</td>
583
+ <td><span class="dataset-name">Leipzig Heart Center ECG Database</span><a class="dataset-link" href="https://physionet.org/content/leipzig-heart-center-ecg/1.0.0/" target="_blank">physionet.org β†—</a></td>
584
+ <td>12-lead + intracardiac EGM Β· variable Β· 977 Hz</td>
585
+ <td class="count">39</td>
586
+ <td class="count">39</td>
587
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">ODC Attribution</small></td>
588
+ <td><span class="origin-inst">Leipzig Heart Center</span><br><span class="origin-country">Germany</span></td>
589
+ <td><a class="paper-link" href="https://doi.org/10.13026/7a4j-vn37" target="_blank">Dataset DOI</a></td>
590
+ </tr>
591
+
592
+ <tr data-access="open" data-leads="12" data-text="norwegian athlete ecg norway oslo endurance">
593
+ <td class="num-cell">13</td>
594
+ <td><span class="dataset-name">Norwegian Endurance Athlete ECG Database</span><a class="dataset-link" href="https://physionet.org/content/norwegian-athlete-ecg/1.0.0/" target="_blank">physionet.org β†—</a></td>
595
+ <td>12-lead οΏ½οΏ½ 10 s Β· 500 Hz</td>
596
+ <td class="count">28</td>
597
+ <td class="count">28</td>
598
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">CC BY 4.0</small></td>
599
+ <td><span class="origin-inst">University of Oslo</span><br><span class="origin-country">Norway</span></td>
600
+ <td><a class="paper-link" href="https://doi.org/10.13026/qpjf-gk87" target="_blank">Dataset DOI</a></td>
601
+ </tr>
602
+
603
+ <tr data-access="open" data-leads="12" data-text="mhd mri ecg germany magdeburg otto guericke">
604
+ <td class="num-cell">14</td>
605
+ <td><span class="dataset-name">MHD Effect on 12-Lead ECGs in MRI Scanners</span><a class="dataset-link" href="https://physionet.org/content/mhd-effect-ecg-mri/1.0.0/" target="_blank">physionet.org β†—</a></td>
606
+ <td>12-lead + 3-lead Β· variable Β· 1,024 Hz</td>
607
+ <td class="count">23</td>
608
+ <td class="count">43</td>
609
+ <td><span class="tag tag-open">Open</span></td>
610
+ <td><span class="origin-inst">Otto-von-Guericke University of Magdeburg</span><br><span class="origin-country">Germany</span></td>
611
+ <td><a class="paper-link" href="https://doi.org/10.13026/05td-jn37" target="_blank">Krug et al., CinC 2017</a></td>
612
+ </tr>
613
+
614
+ <tr data-access="open" data-leads="12" data-text="wilson central terminal australia western sydney campbelltown">
615
+ <td class="num-cell">15</td>
616
+ <td><span class="dataset-name">Wilson Central Terminal ECG Database</span><a class="dataset-link" href="https://physionet.org/content/wctecgdb/1.0.1/" target="_blank">physionet.org β†—</a></td>
617
+ <td>37 signals (12 std + WCT + limb) Β· 10 s</td>
618
+ <td class="count">92</td>
619
+ <td class="count">540</td>
620
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">ODC Attribution</small></td>
621
+ <td><span class="origin-inst">MARCS Institute, Western Sydney Univ.; Campbelltown Hospital</span><br><span class="origin-country">Australia</span></td>
622
+ <td><a class="paper-link" href="https://doi.org/10.3390/machines4040018" target="_blank">Machines, 2016</a></td>
623
+ </tr>
624
+
625
+ <tr data-access="open" data-leads="12" data-text="cipa ecg validation usa pharmacology clinical trial">
626
+ <td class="num-cell">16</td>
627
+ <td><span class="dataset-name">CiPA ECG Validation Study</span><a class="dataset-link" href="https://physionet.org/content/ecgcipa/1.0.0/" target="_blank">physionet.org β†—</a></td>
628
+ <td>12-lead Β· 10 s</td>
629
+ <td class="count">60</td>
630
+ <td class="count">5,749 segments</td>
631
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">ODC Attribution</small></td>
632
+ <td><span class="origin-inst">Phase I Clinical Pharmacology Study (NCT03070470)</span><br><span class="origin-country">USA</span></td>
633
+ <td><a class="paper-link" href="https://doi.org/10.1002/cpt.1303" target="_blank">Clin Pharmacol Ther, 2018</a></td>
634
+ </tr>
635
+
636
+ <tr data-access="open" data-leads="12" data-text="ecgdmmld dofetilide moxifloxacin usa pharmacology drug">
637
+ <td class="num-cell">17</td>
638
+ <td><span class="dataset-name">ECG Effects of Dofetilide, Moxifloxacin and Combinations (ECGDMMLD)</span><a class="dataset-link" href="https://physionet.org/content/ecgdmmld/1.0.0/" target="_blank">physionet.org β†—</a></td>
639
+ <td>12-lead Β· 10 s Β· 500 Hz (upsampled to 1 kHz)</td>
640
+ <td class="count">22</td>
641
+ <td class="count">4,211 segments</td>
642
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">ODC Attribution</small></td>
643
+ <td><span class="origin-inst">NCT02308748</span><br><span class="origin-country">USA</span></td>
644
+ <td><a class="paper-link" href="https://doi.org/10.1002/cpt.205" target="_blank">Clin Pharmacol Ther, 2016</a></td>
645
+ </tr>
646
+
647
+ <tr data-access="open" data-leads="12" data-text="ecgrdvq ranolazine dofetilide verapamil quinidine usa pharmacology drug">
648
+ <td class="num-cell">18</td>
649
+ <td><span class="dataset-name">ECG Effects of Ranolazine, Dofetilide, Verapamil, Quinidine (ECGRDVQ)</span><a class="dataset-link" href="https://physionet.org/content/ecgrdvq/1.0.0/" target="_blank">physionet.org β†—</a></td>
650
+ <td>12-lead Β· 10 s Β· 500 Hz</td>
651
+ <td class="count">22</td>
652
+ <td class="count">5,232 segments</td>
653
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">ODC Attribution</small></td>
654
+ <td><span class="origin-inst">Clinical Pharmacology Study</span><br><span class="origin-country">USA</span></td>
655
+ <td><a class="paper-link" href="https://doi.org/10.1038/clpt.2014.155" target="_blank">Clin Pharmacol Ther, 2014</a></td>
656
+ </tr>
657
+
658
+ <tr data-access="open" data-leads="12" data-text="eye tracking ecg qatar hamad bin khalifa interpretation">
659
+ <td class="num-cell">19</td>
660
+ <td><span class="dataset-name">Eye Tracking Dataset for 12-Lead ECG Interpretation</span><a class="dataset-link" href="https://physionet.org/content/eye-tracking-ecg/1.0.0/" target="_blank">physionet.org β†—</a></td>
661
+ <td>12-lead ECG images Β· eye tracking at 60 Hz</td>
662
+ <td class="count">63 interpreters</td>
663
+ <td class="count">630 sessions</td>
664
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">ODC ODbL</small></td>
665
+ <td><span class="origin-inst">Qatar Biomedical Research Institute, Hamad bin Khalifa Univ.</span><br><span class="origin-country">Qatar</span></td>
666
+ <td><a class="paper-link" href="http://dx.doi.org/10.2196/34058" target="_blank">JMIR, 2022</a></td>
667
+ </tr>
668
+
669
+ <tr data-access="restricted" data-leads="12" data-text="echonext columbia usa new york echocardiography">
670
+ <td class="num-cell">20</td>
671
+ <td><span class="dataset-name">EchoNext</span><a class="dataset-link" href="https://physionet.org/content/echonext/1.1.0/" target="_blank">physionet.org β†—</a></td>
672
+ <td>12-lead Β· 10 s Β· 250 Hz</td>
673
+ <td class="count-na">Not disclosed</td>
674
+ <td class="count">100,000</td>
675
+ <td><span class="tag tag-rest">Restricted</span></td>
676
+ <td><span class="origin-inst">Columbia University Irving Medical Center</span><br><span class="origin-country">USA β€” New York, NY</span></td>
677
+ <td><span class="no-paper">Poterucha et al., Nature, 2025</span></td>
678
+ </tr>
679
+
680
+ <tr data-access="credentialed" data-leads="12" data-text="symile mimic multimodal ecg cxr labs usa mit bidmc neurips">
681
+ <td class="num-cell">21</td>
682
+ <td><span class="dataset-name">Symile-MIMIC</span><a class="dataset-link" href="https://physionet.org/content/symile-mimic/1.0.0/" target="_blank">physionet.org β†—</a></td>
683
+ <td>12-lead Β· 10 s Β· 500 Hz Β· multimodal (ECG + CXR + labs)</td>
684
+ <td class="count">9,573</td>
685
+ <td class="count">11,622</td>
686
+ <td><span class="tag tag-cred">Credentialed</span></td>
687
+ <td><span class="origin-inst">MIT LCP / BIDMC</span><br><span class="origin-country">USA</span></td>
688
+ <td><a class="paper-link" href="https://doi.org/10.13026/3vvj-s428" target="_blank">Saporta et al., NeurIPS 2024</a></td>
689
+ </tr>
690
+
691
+ <tr data-access="open" data-leads="12" data-text="cinc challenge 2020 physionet china russia germany usa cpsc georgia">
692
+ <td class="num-cell">22</td>
693
+ <td><span class="dataset-name">PhysioNet/CinC Challenge 2020</span><a class="dataset-link" href="https://physionet.org/content/challenge-2020/1.0.2/" target="_blank">physionet.org β†—</a></td>
694
+ <td>12-lead Β· 6–60 s Β· 257–1,000 Hz</td>
695
+ <td class="count-na">β€”</td>
696
+ <td class="count">~52,501</td>
697
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">CC BY 4.0</small></td>
698
+ <td><span class="origin-inst">CPSC, INCART, PTB, PTB-XL, Georgia</span><br><span class="origin-country">Multi-national (China, Russia, Germany, USA)</span></td>
699
+ <td><a class="paper-link" href="https://doi.org/10.1088/1361-6579/abc960" target="_blank">Physiol Meas, 2020</a></td>
700
+ </tr>
701
+
702
+ <tr data-access="open" data-leads="12" data-text="cinc challenge 2021 physionet china russia germany usa michigan chapman ningbo">
703
+ <td class="num-cell">23</td>
704
+ <td><span class="dataset-name">PhysioNet/CinC Challenge 2021</span><a class="dataset-link" href="https://physionet.org/content/challenge-2021/1.0.3/" target="_blank">physionet.org β†—</a></td>
705
+ <td>12-lead (+ reduced-lead) Β· 5–144 s Β· 250–1,000 Hz</td>
706
+ <td class="count-na">β€”</td>
707
+ <td class="count">~130,862</td>
708
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">CC BY 4.0</small></td>
709
+ <td><span class="origin-inst">CPSC, INCART, PTB-XL, Georgia, Chapman-Shaoxing, Ningbo, UMich</span><br><span class="origin-country">Multi-national (China, Russia, Germany, USA)</span></td>
710
+ <td><a class="paper-link" href="https://doi.org/10.23919/CinC53138.2021.9662687" target="_blank">CinC 2021</a></td>
711
+ </tr>
712
+
713
+ </tbody>
714
+ </table>
715
+ <div id="no-results">No datasets match your search.</div>
716
+ </div>
717
+
718
+ <!-- ── Other Repos Section Header ── -->
719
+ <div class="section-header">
720
+ <h2>12-Lead ECG Datasets (Other Repositories)</h2>
721
+ <span class="pill">15 datasets</span>
722
+ </div>
723
+
724
+ <div class="table-wrap">
725
+ <table id="other-repos-table">
726
+ <thead>
727
+ <tr>
728
+ <th>#</th>
729
+ <th>Dataset</th>
730
+ <th>Format</th>
731
+ <th>Patients</th>
732
+ <th>Records</th>
733
+ <th>Access</th>
734
+ <th>Origin</th>
735
+ <th>Paper</th>
736
+ </tr>
737
+ </thead>
738
+ <tbody id="tbody2">
739
+
740
+ <tr data-access="open" data-leads="12" data-text="cpsc 2018 china physiological signal challenge icbeb nanjing arrhythmia matlab">
741
+ <td class="num-cell">1</td>
742
+ <td><span class="dataset-name">CPSC 2018 (China Physiological Signal Challenge 2018)</span><a class="dataset-link" href="http://2018.icbeb.org/Challenge.html" target="_blank">icbeb.org β†—</a></td>
743
+ <td>12-lead Β· 6–60 s Β· 500 Hz Β· MATLAB .mat</td>
744
+ <td class="count">~6,877</td>
745
+ <td class="count">6,877</td>
746
+ <td><span class="tag tag-open">Open</span></td>
747
+ <td><span class="origin-inst">11 hospitals (ICBEB, Nanjing)</span><br><span class="origin-country">China</span></td>
748
+ <td><a class="paper-link" href="https://doi.org/10.1166/jmihi.2018.2442" target="_blank">Liu et al., J. Med. Imaging Health Inform., 2018</a></td>
749
+ </tr>
750
+
751
+ <tr data-access="open" data-leads="12" data-text="chapman shaoxing ecg figshare arrhythmia 10646 china usa">
752
+ <td class="num-cell">2</td>
753
+ <td><span class="dataset-name">Chapman-Shaoxing ECG Database (10,646 patients)</span><a class="dataset-link" href="https://doi.org/10.6084/m9.figshare.c.4560497.v2" target="_blank">figshare.com β†—</a></td>
754
+ <td>12-lead Β· 10 s Β· 500 Hz Β· CSV</td>
755
+ <td class="count">10,646</td>
756
+ <td class="count">10,646</td>
757
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">CC BY 4.0</small></td>
758
+ <td><span class="origin-inst">Chapman University; Shaoxing People's Hospital</span><br><span class="origin-country">China / USA</span></td>
759
+ <td><a class="paper-link" href="https://doi.org/10.1038/s41597-020-0386-x" target="_blank">Zheng et al., Scientific Data, 2020</a></td>
760
+ </tr>
761
+
762
+ <tr data-access="open" data-leads="12" data-text="ningbo first hospital ecg idiopathic ventricular arrhythmia iva figshare china chapman ablation">
763
+ <td class="num-cell">3</td>
764
+ <td><span class="dataset-name">Ningbo First Hospital ECG Database (Idiopathic Ventricular Arrhythmia)</span><a class="dataset-link" href="https://doi.org/10.6084/m9.figshare.c.4668086.v2" target="_blank">figshare.com β†—</a></td>
765
+ <td>12-lead Β· 10 s Β· 500 Hz Β· CSV</td>
766
+ <td class="count">334</td>
767
+ <td class="count">334</td>
768
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">CC BY 4.0</small></td>
769
+ <td><span class="origin-inst">Chapman University; Ningbo First Hospital, Zhejiang University</span><br><span class="origin-country">China / USA</span></td>
770
+ <td><a class="paper-link" href="https://doi.org/10.1038/s41597-020-0440-8" target="_blank">Zheng et al., Scientific Data, 2020</a></td>
771
+ </tr>
772
+
773
+ <tr data-access="open" data-leads="12" data-text="shandong provincial hospital sphdb ecg hdf5 figshare china aha multi-label">
774
+ <td class="num-cell">4</td>
775
+ <td><span class="dataset-name">Shandong Provincial Hospital ECG Database (SPHDB)</span><a class="dataset-link" href="https://doi.org/10.6084/m9.figshare.c.5779802.v1" target="_blank">figshare.com β†—</a></td>
776
+ <td>12-lead Β· 10–60 s Β· 500 Hz Β· HDF5</td>
777
+ <td class="count">24,666</td>
778
+ <td class="count">25,770</td>
779
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">CC BY 4.0</small></td>
780
+ <td><span class="origin-inst">Shandong Provincial Hospital</span><br><span class="origin-country">China</span></td>
781
+ <td><a class="paper-link" href="https://doi.org/10.1038/s41597-022-01403-5" target="_blank">Liu et al., Scientific Data, 2022</a></td>
782
+ </tr>
783
+
784
+ <tr data-access="open" data-leads="12" data-text="code 15 percent telehealth minas gerais brazil tnmg zenodo hdf5 deep learning ribeiro">
785
+ <td class="num-cell">5</td>
786
+ <td><span class="dataset-name">CODE-15% (Telehealth Network of Minas Gerais, 15% subset)</span><a class="dataset-link" href="https://doi.org/10.5281/zenodo.4916206" target="_blank">zenodo.org β†—</a></td>
787
+ <td>12-lead Β· ~10 s Β· 400 Hz Β· HDF5</td>
788
+ <td class="count">233,770</td>
789
+ <td class="count">345,779</td>
790
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">CC BY 4.0</small></td>
791
+ <td><span class="origin-inst">Telehealth Network of Minas Gerais (TNMG)</span><br><span class="origin-country">Brazil</span></td>
792
+ <td><a class="paper-link" href="https://doi.org/10.1038/s41467-020-15432-4" target="_blank">Ribeiro et al., Nature Communications, 2020</a></td>
793
+ </tr>
794
+
795
+ <tr data-access="open" data-leads="12" data-text="code test 827 zenodo hdf5 brazil minas gerais tnmg ribeiro hold-out evaluation">
796
+ <td class="num-cell">6</td>
797
+ <td><span class="dataset-name">CODE-test (827-record hold-out test set)</span><a class="dataset-link" href="https://doi.org/10.5281/zenodo.3765780" target="_blank">zenodo.org β†—</a></td>
798
+ <td>12-lead Β· 7–10 s Β· 400 Hz Β· HDF5</td>
799
+ <td class="count">827</td>
800
+ <td class="count">827</td>
801
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">CC BY 4.0</small></td>
802
+ <td><span class="origin-inst">Universidade Federal de Minas Gerais / TNMG</span><br><span class="origin-country">Brazil</span></td>
803
+ <td><a class="paper-link" href="https://doi.org/10.1038/s41467-020-15432-4" target="_blank">Ribeiro et al., Nature Communications, 2020</a></td>
804
+ </tr>
805
+
806
+ <tr data-access="restricted" data-leads="12" data-text="code full dataset scilifelab figshare brazil tnmg 2 million hdf5 dua">
807
+ <td class="num-cell">7</td>
808
+ <td><span class="dataset-name">CODE (Full Dataset, ~2.3M records)</span><a class="dataset-link" href="https://figshare.scilifelab.se/articles/dataset/CODE_dataset/15169716" target="_blank">scilifelab.se β†—</a></td>
809
+ <td>12-lead Β· 400 Hz Β· HDF5</td>
810
+ <td class="count">~1,676,384</td>
811
+ <td class="count">~2,322,513</td>
812
+ <td><span class="tag tag-rest">Restricted</span><br><small style="color:var(--muted)">DUA required</small></td>
813
+ <td><span class="origin-inst">Telehealth Network of Minas Gerais (TNMG)</span><br><span class="origin-country">Brazil</span></td>
814
+ <td><a class="paper-link" href="https://doi.org/10.1038/s41467-020-15432-4" target="_blank">Ribeiro et al., Nature Communications, 2020</a></td>
815
+ </tr>
816
+
817
+ <tr data-access="open" data-leads="12" data-text="sami trop chagas cardiomyopathy brazil minas gerais zenodo hdf5 mortality age">
818
+ <td class="num-cell">8</td>
819
+ <td><span class="dataset-name">SaMi-Trop (Chagas Cardiomyopathy Cohort)</span><a class="dataset-link" href="https://doi.org/10.5281/zenodo.4905618" target="_blank">zenodo.org β†—</a></td>
820
+ <td>12-lead Β· 400 Hz Β· HDF5</td>
821
+ <td class="count">1,631</td>
822
+ <td class="count">1,631</td>
823
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">CC BY 4.0</small></td>
824
+ <td><span class="origin-inst">UFMG; Uppsala University; EPFL</span><br><span class="origin-country">Brazil / Sweden / Switzerland</span></td>
825
+ <td><a class="paper-link" href="https://doi.org/10.1101/2021.02.19.21251232" target="_blank">Lima et al., medRxiv, 2021</a></td>
826
+ </tr>
827
+
828
+ <tr data-access="open" data-leads="12" data-text="ikem prague czech republic institute clinical experimental medicine zenodo hdf5 cardiology diabetes">
829
+ <td class="num-cell">9</td>
830
+ <td><span class="dataset-name">IKEM Dataset (Institute for Clinical and Experimental Medicine, Prague)</span><a class="dataset-link" href="https://doi.org/10.5281/zenodo.8393007" target="_blank">zenodo.org β†—</a></td>
831
+ <td>12-lead (stored as 8 reduced leads) Β· 10 s Β· 500 Hz Β· HDF5</td>
832
+ <td class="count">30,290</td>
833
+ <td class="count">98,130</td>
834
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">CC BY 4.0</small></td>
835
+ <td><span class="origin-inst">IKEM (Institute for Clinical and Experimental Medicine)</span><br><span class="origin-country">Czech Republic β€” Prague</span></td>
836
+ <td><a class="paper-link" href="https://doi.org/10.1016/j.knosys.2023.111014" target="_blank">SejΓ‘k et al., Knowledge-Based Systems, 2023</a></td>
837
+ </tr>
838
+
839
+ <tr data-access="open" data-leads="12" data-text="medalcare xl synthetic simulation electrophysiological zenodo austria germany uk graz kit ptb edinburgh">
840
+ <td class="num-cell">10</td>
841
+ <td><span class="dataset-name">MedalCare-XL (Synthetic 12-Lead ECGs from Simulations)</span><a class="dataset-link" href="https://doi.org/10.5281/zenodo.8068944" target="_blank">zenodo.org β†—</a></td>
842
+ <td>12-lead Β· 10 s Β· 500 Hz Β· CSV (raw/noise/filtered variants)</td>
843
+ <td class="count-na">0 (synthetic)</td>
844
+ <td class="count">16,900</td>
845
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">CC BY 4.0</small></td>
846
+ <td><span class="origin-inst">Medical Univ. of Graz; KIT; PTB; Univ. of Edinburgh</span><br><span class="origin-country">Austria / Germany / UK</span></td>
847
+ <td><a class="paper-link" href="https://doi.org/10.1038/s41597-023-02416-4" target="_blank">Gillette et al., Scientific Data, 2023</a></td>
848
+ </tr>
849
+
850
+ <tr data-access="credentialed" data-leads="12" data-text="harvard emory ecg heedb bdsp aws wfdb massachusetts general hospital mgh emory atlanta usa largest">
851
+ <td class="num-cell">11</td>
852
+ <td><span class="dataset-name">Harvard-Emory ECG Database (HEEDB)</span><a class="dataset-link" href="https://bdsp.io/content/heedb/5.0/" target="_blank">bdsp.io β†—</a></td>
853
+ <td>12-lead Β· 10 s Β· 250/500 Hz Β· WFDB</td>
854
+ <td class="count">2,167,795</td>
855
+ <td class="count">11,607,261</td>
856
+ <td><span class="tag tag-cred">Credentialed</span><br><small style="color:var(--muted)">DUA (BDSP)</small></td>
857
+ <td><span class="origin-inst">Massachusetts General Hospital; Emory University Hospital</span><br><span class="origin-country">USA β€” Boston &amp; Atlanta</span></td>
858
+ <td><a class="paper-link" href="https://doi.org/10.1038/s41597-026-06861-9" target="_blank">Koscova et al., Scientific Data, 2026</a></td>
859
+ </tr>
860
+
861
+ <tr data-access="restricted" data-leads="12" data-text="nightingale bwh brigham women hospital emergency department ecg boston usa numpy cardiac risk">
862
+ <td class="num-cell">12</td>
863
+ <td><span class="dataset-name">Nightingale BWH Emergency Dept ECG Dataset</span><a class="dataset-link" href="https://docs.ngsci.org/datasets/ed-bwh-ecg/" target="_blank">ngsci.org β†—</a></td>
864
+ <td>12-lead Β· 100 Hz Β· NumPy arrays</td>
865
+ <td class="count">30,933</td>
866
+ <td class="count">103,952</td>
867
+ <td><span class="tag tag-rest">Restricted</span><br><small style="color:var(--muted)">Institutional credentials</small></td>
868
+ <td><span class="origin-inst">Brigham and Women's Hospital</span><br><span class="origin-country">USA β€” Boston, MA</span></td>
869
+ <td><a class="paper-link" href="https://doi.org/10.1093/qje/qjab046" target="_blank">Mullainathan &amp; Obermeyer, QJE, 2021</a></td>
870
+ </tr>
871
+
872
+ <tr data-access="restricted" data-leads="12" data-text="nightingale ntuh national taiwan university hospital cardiac arrest emergency xml taiwan">
873
+ <td class="num-cell">13</td>
874
+ <td><span class="dataset-name">Nightingale NTUH Cardiac Arrest ECG Dataset</span><a class="dataset-link" href="https://docs.ngsci.org/datasets/arrest-ntuh-ecg/" target="_blank">ngsci.org β†—</a></td>
875
+ <td>12-lead Β· ~500 Hz Β· XML/array</td>
876
+ <td class="count">10,950</td>
877
+ <td class="count">18,072</td>
878
+ <td><span class="tag tag-rest">Restricted</span><br><small style="color:var(--muted)">Institutional credentials</small></td>
879
+ <td><span class="origin-inst">National Taiwan University Hospital, Emergency Dept</span><br><span class="origin-country">Taiwan</span></td>
880
+ <td><a class="paper-link" href="https://doi.org/10.1038/s41591-022-01804-4" target="_blank">Obermeyer et al., Nature Medicine, 2022</a></td>
881
+ </tr>
882
+
883
+ <tr data-access="open" data-leads="12" data-text="gu ecg gazi university turkey ptca ischaemia mendeley high frequency bilkent coronary artery">
884
+ <td class="num-cell">14</td>
885
+ <td><span class="dataset-name">GU-ECG (Gazi University, PTCA-induced Ischaemia)</span><a class="dataset-link" href="https://doi.org/10.17632/zhr5zsngtg.1" target="_blank">mendeley.com β†—</a></td>
886
+ <td>12-lead continuous Β· 8,800 Hz Β· 24-bit Β· .ekg format</td>
887
+ <td class="count">74</td>
888
+ <td class="count">222</td>
889
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">CC BY 4.0</small></td>
890
+ <td><span class="origin-inst">Gazi University Faculty of Medicine; Bilkent University</span><br><span class="origin-country">Turkey</span></td>
891
+ <td><a class="paper-link" href="https://doi.org/10.17632/zhr5zsngtg.1" target="_blank">Dataset DOI</a></td>
892
+ </tr>
893
+
894
+ <tr data-access="open" data-leads="12" data-text="zzu pecg zhengzhou pediatric children ecg figshare wfdb china kawasaki myocarditis congenital">
895
+ <td class="num-cell">15</td>
896
+ <td><span class="dataset-name">ZZU pECG (Zhengzhou University Pediatric ECG Database)</span><a class="dataset-link" href="https://doi.org/10.6084/m9.figshare.27078763" target="_blank">figshare.com β†—</a></td>
897
+ <td>12-lead + 9-lead Β· 5–120 s Β· 500 Hz Β· WFDB</td>
898
+ <td class="count">11,643 children</td>
899
+ <td class="count">14,190</td>
900
+ <td><span class="tag tag-open">Open</span></td>
901
+ <td><span class="origin-inst">First Affiliated Hospital of Zhengzhou University</span><br><span class="origin-country">China</span></td>
902
+ <td><a class="paper-link" href="https://doi.org/10.1038/s41597-025-05225-z" target="_blank">Scientific Data, 2025</a></td>
903
+ </tr>
904
+
905
+ </tbody>
906
+ </table>
907
+ </div>
908
+
909
+ <!-- ── 2-Lead Section Header ── -->
910
+ <div class="section-header">
911
+ <h2>2-Lead ECG Datasets</h2>
912
+ <span class="pill">10 datasets</span>
913
+ </div>
914
+
915
+ <div class="table-wrap">
916
+ <table id="two-lead-table">
917
+ <thead>
918
+ <tr>
919
+ <th>#</th>
920
+ <th>Dataset</th>
921
+ <th>Format</th>
922
+ <th>Patients</th>
923
+ <th>Records</th>
924
+ <th>Access</th>
925
+ <th>Origin</th>
926
+ <th>Paper</th>
927
+ </tr>
928
+ </thead>
929
+ <tbody id="tbody3">
930
+
931
+ <tr data-access="open" data-leads="2" data-text="mit-bih arrhythmia usa beth israel hospital mit mlii v1 holter ambulatory benchmark annotations">
932
+ <td class="num-cell">1</td>
933
+ <td><span class="dataset-name">MIT-BIH Arrhythmia Database</span><a class="dataset-link" href="https://physionet.org/content/mitdb/1.0.0/" target="_blank">physionet.org β†—</a></td>
934
+ <td>2-lead (MLII + V1) Β· 30 min Β· 360 Hz Β· WFDB</td>
935
+ <td class="count">47</td>
936
+ <td class="count">48</td>
937
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">ODC Attribution</small></td>
938
+ <td><span class="origin-inst">Beth Israel Hospital / MIT</span><br><span class="origin-country">USA</span></td>
939
+ <td><a class="paper-link" href="https://doi.org/10.13026/C2F305" target="_blank">Moody &amp; Mark, IEEE EMBS 2001</a></td>
940
+ </tr>
941
+
942
+ <tr data-access="open" data-leads="2" data-text="mit-bih atrial fibrillation afdb af flutter usa beth israel hospital holter rhythm">
943
+ <td class="num-cell">2</td>
944
+ <td><span class="dataset-name">MIT-BIH Atrial Fibrillation Database</span><a class="dataset-link" href="https://physionet.org/content/afdb/1.0.0/" target="_blank">physionet.org β†—</a></td>
945
+ <td>2-lead Β· 10 h Β· 250 Hz Β· WFDB</td>
946
+ <td class="count">25</td>
947
+ <td class="count">25</td>
948
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">ODC Attribution</small></td>
949
+ <td><span class="origin-inst">Beth Israel Hospital</span><br><span class="origin-country">USA</span></td>
950
+ <td><a class="paper-link" href="https://doi.org/10.13026/C2MW2D" target="_blank">Moody &amp; Mark, CinC 1983</a></td>
951
+ </tr>
952
+
953
+ <tr data-access="open" data-leads="2" data-text="long-term af ltafdb atrial fibrillation paroxysmal sustained northwestern usa poland medicalgorithmics holter 24h">
954
+ <td class="num-cell">3</td>
955
+ <td><span class="dataset-name">Long-Term AF Database (LTAFDB)</span><a class="dataset-link" href="https://physionet.org/content/ltafdb/1.0.0/" target="_blank">physionet.org β†—</a></td>
956
+ <td>2-lead Β· 24–25 h Β· 128 Hz Β· WFDB</td>
957
+ <td class="count">84</td>
958
+ <td class="count">84</td>
959
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">ODC Attribution</small></td>
960
+ <td><span class="origin-inst">Northwestern University; MEDICALgorithmics</span><br><span class="origin-country">USA / Poland</span></td>
961
+ <td><a class="paper-link" href="https://doi.org/10.13026/C2QG6Q" target="_blank">Petrutiu et al., Europace 2007</a></td>
962
+ </tr>
963
+
964
+ <tr data-access="open" data-leads="2" data-text="mit-bih normal sinus rhythm nsrdb healthy control usa beth israel hospital holter 24h">
965
+ <td class="num-cell">4</td>
966
+ <td><span class="dataset-name">MIT-BIH Normal Sinus Rhythm Database</span><a class="dataset-link" href="https://physionet.org/content/nsrdb/1.0.0/" target="_blank">physionet.org β†—</a></td>
967
+ <td>2-lead Β· ~24 h Β· 128 Hz Β· WFDB</td>
968
+ <td class="count">18</td>
969
+ <td class="count">18</td>
970
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">ODC Attribution</small></td>
971
+ <td><span class="origin-inst">Beth Israel Hospital</span><br><span class="origin-country">USA</span></td>
972
+ <td><a class="paper-link" href="https://doi.org/10.13026/C2NK5R" target="_blank">Dataset DOI</a></td>
973
+ </tr>
974
+
975
+ <tr data-access="open" data-leads="2" data-text="mit-bih supraventricular arrhythmia svdb mlii v1 usa mit harvard-mit hst svt pac pjc">
976
+ <td class="num-cell">5</td>
977
+ <td><span class="dataset-name">MIT-BIH Supraventricular Arrhythmia Database</span><a class="dataset-link" href="https://physionet.org/content/svdb/1.0.0/" target="_blank">physionet.org β†—</a></td>
978
+ <td>2-lead (MLII + V1) Β· 30 min Β· 360 Hz Β· WFDB</td>
979
+ <td class="count-na">β€”</td>
980
+ <td class="count">78</td>
981
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">ODC Attribution</small></td>
982
+ <td><span class="origin-inst">MIT / Harvard-MIT HST</span><br><span class="origin-country">USA</span></td>
983
+ <td><a class="paper-link" href="https://doi.org/10.13026/C2V30W" target="_blank">Greenwald, PhD thesis, Harvard-MIT 1990</a></td>
984
+ </tr>
985
+
986
+ <tr data-access="open" data-leads="2" data-text="european st-t edb ischemia st segment t-wave italy pisa cnr esc ambulatory holter">
987
+ <td class="num-cell">6</td>
988
+ <td><span class="dataset-name">European ST-T Database (EDB)</span><a class="dataset-link" href="https://physionet.org/content/edb/1.0.0/" target="_blank">physionet.org β†—</a></td>
989
+ <td>2-lead ambulatory Β· 2 h Β· 250 Hz Β· WFDB</td>
990
+ <td class="count">79</td>
991
+ <td class="count">90</td>
992
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">ODC Attribution</small></td>
993
+ <td><span class="origin-inst">CNR Institute for Clinical Physiology, Pisa; European Society of Cardiology</span><br><span class="origin-country">Italy</span></td>
994
+ <td><a class="paper-link" href="https://doi.org/10.13026/C2D59Z" target="_blank">Taddei et al., Eur Heart J 1992</a></td>
995
+ </tr>
996
+
997
+ <tr data-access="open" data-leads="2" data-text="bidmc congestive heart failure chfdb nyha usa boston beth israel deaconess medical center holter 20h">
998
+ <td class="num-cell">7</td>
999
+ <td><span class="dataset-name">BIDMC Congestive Heart Failure Database</span><a class="dataset-link" href="https://physionet.org/content/chfdb/1.0.0/" target="_blank">physionet.org β†—</a></td>
1000
+ <td>2-lead Β· ~20 h Β· 250 Hz Β· WFDB</td>
1001
+ <td class="count">15</td>
1002
+ <td class="count">15</td>
1003
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">ODC Attribution</small></td>
1004
+ <td><span class="origin-inst">Beth Israel Deaconess Medical Center</span><br><span class="origin-country">USA β€” Boston, MA</span></td>
1005
+ <td><a class="paper-link" href="https://doi.org/10.13026/C29G60" target="_blank">Baim et al., J Am Coll Cardiol 1986</a></td>
1006
+ </tr>
1007
+
1008
+ <tr data-access="open" data-leads="2" data-text="sudden cardiac death holter sddb ventricular tachycardia vt vf usa mit scd arrhythmia">
1009
+ <td class="num-cell">8</td>
1010
+ <td><span class="dataset-name">Sudden Cardiac Death Holter Database</span><a class="dataset-link" href="https://physionet.org/content/sddb/1.0.0/" target="_blank">physionet.org β†—</a></td>
1011
+ <td>2-lead Β· 4–25 h Β· 250 Hz Β· WFDB</td>
1012
+ <td class="count">23</td>
1013
+ <td class="count">23</td>
1014
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">ODC Attribution</small></td>
1015
+ <td><span class="origin-inst">MIT</span><br><span class="origin-country">USA</span></td>
1016
+ <td><a class="paper-link" href="https://doi.org/10.13026/C2W306" target="_blank">Greenwald, MS thesis, MIT 1986</a></td>
1017
+ </tr>
1018
+
1019
+ <tr data-access="open" data-leads="2" data-text="qt database qtdb waveform boundary p qrs t u wave annotation usa mit physionet benchmark">
1020
+ <td class="num-cell">9</td>
1021
+ <td><span class="dataset-name">QT Database (QTDB)</span><a class="dataset-link" href="https://physionet.org/content/qtdb/1.0.0/" target="_blank">physionet.org β†—</a></td>
1022
+ <td>2-lead Β· 15 min Β· various Hz Β· WFDB</td>
1023
+ <td class="count-na">β€”</td>
1024
+ <td class="count">105</td>
1025
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">ODC Attribution</small></td>
1026
+ <td><span class="origin-inst">MIT / PhysioNet</span><br><span class="origin-country">USA</span></td>
1027
+ <td><a class="paper-link" href="https://doi.org/10.13026/C24K53" target="_blank">Laguna et al., CinC 1997</a></td>
1028
+ </tr>
1029
+
1030
+ <tr data-access="open" data-leads="2" data-text="shdb-af saitama holter atrial fibrillation japan cc5 nasa lead paroxysmal deep learning generalization">
1031
+ <td class="num-cell">10</td>
1032
+ <td><span class="dataset-name">SHDB-AF (Saitama Holter Database β€” Atrial Fibrillation)</span><a class="dataset-link" href="https://physionet.org/content/shdb-af/1.0.1/" target="_blank">physionet.org β†—</a></td>
1033
+ <td>2-lead (CC5 + NASA) Β· ~24 h Β· 125 Hz Β· WFDB</td>
1034
+ <td class="count">122</td>
1035
+ <td class="count">128</td>
1036
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">ODC Attribution</small></td>
1037
+ <td><span class="origin-inst">Saitama Medical University International Medical Center</span><br><span class="origin-country">Japan</span></td>
1038
+ <td><a class="paper-link" href="https://doi.org/10.13026/n6yq-fq90" target="_blank">Tsutsui et al., Scientific Data 2025</a></td>
1039
+ </tr>
1040
+
1041
+ </tbody>
1042
+ </table>
1043
+ </div>
1044
+
1045
+ <!-- ── 1-Lead Section Header ── -->
1046
+ <div class="section-header">
1047
+ <h2>1-Lead ECG Datasets</h2>
1048
+ <span class="pill">10 datasets</span>
1049
+ </div>
1050
+
1051
+ <div class="table-wrap">
1052
+ <table id="single-lead-table">
1053
+ <thead>
1054
+ <tr>
1055
+ <th>#</th>
1056
+ <th>Dataset</th>
1057
+ <th>Format</th>
1058
+ <th>Patients</th>
1059
+ <th>Records</th>
1060
+ <th>Access</th>
1061
+ <th>Origin</th>
1062
+ <th>Paper</th>
1063
+ </tr>
1064
+ </thead>
1065
+ <tbody id="tbody1">
1066
+
1067
+ <tr data-access="open" data-leads="1" data-text="icentia11k canada montreal arrhythmia cardiostat wearable continuous">
1068
+ <td class="num-cell">1</td>
1069
+ <td><span class="dataset-name">Icentia11k Single Lead Continuous ECG</span><a class="dataset-link" href="https://physionet.org/content/icentia11k-continuous-ecg/1.0/" target="_blank">physionet.org β†—</a></td>
1070
+ <td>1-lead (modified Lead I) Β· ~70 min/seg Β· 250 Hz</td>
1071
+ <td class="count">11,000</td>
1072
+ <td class="count">541,794 segments</td>
1073
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">CC BY-NC-SA 4.0</small></td>
1074
+ <td><span class="origin-inst">UniversitΓ© de MontrΓ©al; Icentia Inc.</span><br><span class="origin-country">Canada</span></td>
1075
+ <td><a class="paper-link" href="https://arxiv.org/abs/1910.09570" target="_blank">Tan et al., CinC 2021</a></td>
1076
+ </tr>
1077
+
1078
+ <tr data-access="open" data-leads="1" data-text="cinc challenge 2017 af atrial fibrillation alivecor usa mit harvard">
1079
+ <td class="num-cell">2</td>
1080
+ <td><span class="dataset-name">PhysioNet/CinC Challenge 2017 (AF Classification)</span><a class="dataset-link" href="https://physionet.org/content/challenge-2017/1.0.0/" target="_blank">physionet.org β†—</a></td>
1081
+ <td>1-lead (AliveCor) Β· 9–61 s Β· 300 Hz</td>
1082
+ <td class="count-na">β€”</td>
1083
+ <td class="count">12,186</td>
1084
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">ODC Attribution (training)</small></td>
1085
+ <td><span class="origin-inst">AliveCor Inc. / MIT-Harvard PhysioNet</span><br><span class="origin-country">USA</span></td>
1086
+ <td><a class="paper-link" href="https://doi.org/10.22489/CinC.2017.065-469" target="_blank">Clifford et al., CinC 2017</a></td>
1087
+ </tr>
1088
+
1089
+ <tr data-access="open" data-leads="1" data-text="apnea ecg sleep germany marburg philipps overnight holter">
1090
+ <td class="num-cell">3</td>
1091
+ <td><span class="dataset-name">Apnea-ECG Database</span><a class="dataset-link" href="https://physionet.org/content/apnea-ecg/1.0.0/" target="_blank">physionet.org β†—</a></td>
1092
+ <td>1-lead Β· 7–10 h overnight Β· 100 Hz</td>
1093
+ <td class="count">~70</td>
1094
+ <td class="count">70</td>
1095
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">ODC Attribution</small></td>
1096
+ <td><span class="origin-inst">Philipps-University Marburg</span><br><span class="origin-country">Germany</span></td>
1097
+ <td><a class="paper-link" href="https://doi.org/10.13026/C23W2R" target="_blank">Penzel et al., CinC 2000</a></td>
1098
+ </tr>
1099
+
1100
+ <tr data-access="open" data-leads="1" data-text="ecg id biometric russia leti saint petersburg wrist lead i identification">
1101
+ <td class="num-cell">4</td>
1102
+ <td><span class="dataset-name">ECG-ID Database</span><a class="dataset-link" href="https://physionet.org/content/ecgiddb/1.0.0/" target="_blank">physionet.org β†—</a></td>
1103
+ <td>1-lead (Lead I, wrist) Β· 20 s Β· 500 Hz</td>
1104
+ <td class="count">90</td>
1105
+ <td class="count">310</td>
1106
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">ODC Attribution</small></td>
1107
+ <td><span class="origin-inst">Electrotechnical University "LETI"</span><br><span class="origin-country">Russia β€” St. Petersburg</span></td>
1108
+ <td><a class="paper-link" href="https://doi.org/10.13026/C2J01F" target="_blank">Lugovaya, MSc thesis, 2005</a></td>
1109
+ </tr>
1110
+
1111
+ <tr data-access="open" data-leads="1" data-text="post ictal epilepsy seizure usa boston beth israel harvard heart rate">
1112
+ <td class="num-cell">5</td>
1113
+ <td><span class="dataset-name">Post-Ictal Heart Rate Oscillations in Partial Epilepsy</span><a class="dataset-link" href="https://physionet.org/content/szdb/1.0.0/" target="_blank">physionet.org β†—</a></td>
1114
+ <td>1-lead Β· overnight continuous Β· 200 Hz</td>
1115
+ <td class="count">5</td>
1116
+ <td class="count">7</td>
1117
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">ODC Attribution</small></td>
1118
+ <td><span class="origin-inst">Beth Israel Deaconess Medical Center / Harvard</span><br><span class="origin-country">USA β€” Boston, MA</span></td>
1119
+ <td><a class="paper-link" href="https://doi.org/10.13026/C2QC72" target="_blank">Al-Aweel et al., Neurology 1999</a></td>
1120
+ </tr>
1121
+
1122
+ <tr data-access="open" data-leads="1" data-text="toilet tollet thigh ecg portugal lisbon dry electrode wearable bmi">
1123
+ <td class="num-cell">6</td>
1124
+ <td><span class="dataset-name">tOLIet (Thigh-based ECG, toilet seat)</span><a class="dataset-link" href="https://physionet.org/content/tollet/1.0.1/" target="_blank">physionet.org β†—</a></td>
1125
+ <td>1-lead (thigh, dry polymer electrodes) Β· up to 5 min Β· 1,000 Hz</td>
1126
+ <td class="count">86</td>
1127
+ <td class="count">149</td>
1128
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">CC BY 4.0</small></td>
1129
+ <td><span class="origin-inst">Centro Hospitalar UniversitΓ‘rio de Lisboa Central (CHULC)</span><br><span class="origin-country">Portugal β€” Lisbon</span></td>
1130
+ <td><a class="paper-link" href="https://doi.org/10.1038/s41597-026-06713-6" target="_blank">Silva et al., Scientific Data 2026</a></td>
1131
+ </tr>
1132
+
1133
+ <tr data-access="open" data-leads="1" data-text="but qdb brno ecg quality wearable czech republic bittium faros ambulatory free-living">
1134
+ <td class="num-cell">7</td>
1135
+ <td><span class="dataset-name">Brno University of Technology ECG Quality Database (BUT QDB)</span><a class="dataset-link" href="https://physionet.org/content/butqdb/1.0.0/" target="_blank">physionet.org β†—</a></td>
1136
+ <td>1-lead (Bittium Faros 180) + 3-axis accel. Β· β‰₯24 h Β· 1,000 Hz</td>
1137
+ <td class="count">15</td>
1138
+ <td class="count">18</td>
1139
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">CC BY 4.0</small></td>
1140
+ <td><span class="origin-inst">Brno University of Technology</span><br><span class="origin-country">Czech Republic</span></td>
1141
+ <td><a class="paper-link" href="https://doi.org/10.1109/tbme.2020.2969719" target="_blank">Smital et al., IEEE TBME 2020</a></td>
1142
+ </tr>
1143
+
1144
+ <tr data-access="open" data-leads="1" data-text="vitaldb arrhythmia south korea seoul intraoperative lead ii surgical anesthesia">
1145
+ <td class="num-cell">8</td>
1146
+ <td><span class="dataset-name">VitalDB Arrhythmia Database</span><a class="dataset-link" href="https://physionet.org/content/vitaldb-arrhythmia/1.0.0/" target="_blank">physionet.org β†—</a></td>
1147
+ <td>1-lead (Lead II, intraoperative) Β· ~20 min median Β· 500 Hz</td>
1148
+ <td class="count">482</td>
1149
+ <td class="count">482</td>
1150
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">CC BY 4.0</small></td>
1151
+ <td><span class="origin-inst">Seoul National University Hospital</span><br><span class="origin-country">South Korea</span></td>
1152
+ <td><a class="paper-link" href="https://doi.org/10.1038/s41597-026-07076-8" target="_blank">Eun et al., Scientific Data 2026</a></td>
1153
+ </tr>
1154
+
1155
+ <tr data-access="open" data-leads="1" data-text="picsdb preterm infant cardio respiratory usa umass worcester nicu apnea bradycardia">
1156
+ <td class="num-cell">9</td>
1157
+ <td><span class="dataset-name">Preterm Infant Cardio-Respiratory Signals Database (PICSDB)</span><a class="dataset-link" href="https://physionet.org/content/picsdb/1.0.0/" target="_blank">physionet.org β†—</a></td>
1158
+ <td>1-lead (single channel from bedside monitor) Β· 20–70 h Β· 500 Hz</td>
1159
+ <td class="count">10 infants</td>
1160
+ <td class="count">10</td>
1161
+ <td><span class="tag tag-open">Open</span><br><small style="color:var(--muted)">ODC Attribution</small></td>
1162
+ <td><span class="origin-inst">UMass Memorial Healthcare NICU</span><br><span class="origin-country">USA β€” Worcester, MA</span></td>
1163
+ <td><a class="paper-link" href="https://doi.org/10.1109/TBME.2016.2632746" target="_blank">Shamout et al., IEEE TBME 2017</a></td>
1164
+ </tr>
1165
+
1166
+ <tr data-access="restricted" data-leads="1" data-text="smartwatch ecg lead i spain apple samsung fitbit withings synthetic simulator">
1167
+ <td class="num-cell">10</td>
1168
+ <td><span class="dataset-name">ECG-Capable Smartwatches Dataset</span><a class="dataset-link" href="https://physionet.org/content/ecg-capable-smartwatches/1.0.0/" target="_blank">physionet.org β†—</a></td>
1169
+ <td>1-lead (Lead I) Β· 10 s Β· 4 smartwatch models + reference (synthetic)</td>
1170
+ <td class="count-na">0 (synthetic)</td>
1171
+ <td class="count">915</td>
1172
+ <td><span class="tag tag-rest">Restricted</span><br><small style="color:var(--muted)">DUA required</small></td>
1173
+ <td><span class="origin-inst">Instituto RamΓ³n y Cajal de InvestigaciΓ³n Sanitaria</span><br><span class="origin-country">Spain</span></td>
1174
+ <td><span class="no-paper">Recas et al. (pending)</span></td>
1175
+ </tr>
1176
+
1177
+ </tbody>
1178
+ </table>
1179
+ </div>
1180
+
1181
+ <!-- ── Statistics Section ── -->
1182
+ <hr class="section-divider" style="margin-top:0">
1183
+ <section class="charts-section">
1184
+ <div class="charts-section-title">Dataset Statistics</div>
1185
+ <div class="charts-section-sub">Interactive visualisations derived from the full 58-dataset catalogue</div>
1186
+ <div class="charts-grid">
1187
+
1188
+ <div class="chart-card">
1189
+ <h3>Datasets by Lead Category</h3>
1190
+ <p>Distribution across the four lead-count groups</p>
1191
+ <div id="chart-lead" class="plotly-chart"></div>
1192
+ </div>
1193
+
1194
+ <div class="chart-card">
1195
+ <h3>Access Type Breakdown</h3>
1196
+ <p>Open vs credentialed vs restricted across all datasets</p>
1197
+ <div id="chart-access" class="plotly-chart"></div>
1198
+ </div>
1199
+
1200
+ <div class="chart-card tall">
1201
+ <h3>Datasets by Country of Origin</h3>
1202
+ <p>Primary country attributed to each dataset (multi-national datasets counted once)</p>
1203
+ <div id="chart-country" class="plotly-chart"></div>
1204
+ </div>
1205
+
1206
+ <div class="chart-card tall">
1207
+ <h3>Top Datasets by Record Count (log scale)</h3>
1208
+ <p>Largest datasets ranked by number of records or segments</p>
1209
+ <div id="chart-records" class="plotly-chart"></div>
1210
+ </div>
1211
+
1212
+ <div class="chart-card">
1213
+ <h3>Access Type by Lead Category</h3>
1214
+ <p>How open access varies across 1-, 2-, and 12-lead collections</p>
1215
+ <div id="chart-stacked" class="plotly-chart"></div>
1216
+ </div>
1217
+
1218
+ <div class="chart-card">
1219
+ <h3>Sampling Frequency Distribution</h3>
1220
+ <p>How many datasets use each common sampling rate</p>
1221
+ <div id="chart-hz" class="plotly-chart"></div>
1222
+ </div>
1223
+
1224
+ </div>
1225
+ </section>
1226
+
1227
+ <script src="https://cdn.plot.ly/plotly-2.35.2.min.js" charset="utf-8"></script>
1228
+ <script>
1229
+ (function () {
1230
+ /* ── shared theme ── */
1231
+ const BG = '#1a1d27';
1232
+ const SURFACE = '#22263a';
1233
+ const BORDER = '#2e3247';
1234
+ const TEXT = '#e2e8f0';
1235
+ const MUTED = '#8892a4';
1236
+ const ACCENT = '#4f8ef7';
1237
+ const ACCENT2 = '#7c6af7';
1238
+ const GREEN = '#22c55e';
1239
+ const AMBER = '#f59e0b';
1240
+ const RED = '#ef4444';
1241
+ const TEAL = '#14b8a6';
1242
+ const PINK = '#ec4899';
1243
+
1244
+ const layout_base = {
1245
+ paper_bgcolor: BG,
1246
+ plot_bgcolor: BG,
1247
+ font: { family: 'Inter, system-ui, sans-serif', color: TEXT, size: 12 },
1248
+ margin: { t: 10, r: 16, b: 10, l: 16 },
1249
+ showlegend: true,
1250
+ legend: { bgcolor: 'transparent', font: { color: MUTED, size: 11 } },
1251
+ };
1252
+ const config = { displayModeBar: false, responsive: true };
1253
+
1254
+ /* ── 1. Donut: Lead Category ── */
1255
+ Plotly.newPlot('chart-lead', [{
1256
+ type: 'pie',
1257
+ hole: 0.55,
1258
+ values: [23, 15, 10, 10],
1259
+ labels: ['12-Lead (PhysioNet)', '12-Lead (Other repos)', '2-Lead', '1-Lead'],
1260
+ marker: { colors: [ACCENT, ACCENT2, TEAL, PINK] },
1261
+ textinfo: 'percent',
1262
+ hovertemplate: '<b>%{label}</b><br>%{value} datasets (%{percent})<extra></extra>',
1263
+ textfont: { color: TEXT, size: 12 },
1264
+ }], {
1265
+ ...layout_base,
1266
+ margin: { t: 10, r: 60, b: 10, l: 60 },
1267
+ legend: { ...layout_base.legend, orientation: 'v', x: 1.0, y: 0.5 },
1268
+ annotations: [{ text: '<b>58</b><br>datasets', x: 0.5, y: 0.5, showarrow: false,
1269
+ font: { size: 15, color: TEXT }, xanchor: 'center' }]
1270
+ }, config);
1271
+
1272
+ /* ── 2. Donut: Access Type ── */
1273
+ Plotly.newPlot('chart-access', [{
1274
+ type: 'pie',
1275
+ hole: 0.55,
1276
+ values: [48, 4, 6],
1277
+ labels: ['Open', 'Credentialed', 'Restricted'],
1278
+ marker: { colors: [GREEN, AMBER, RED] },
1279
+ textinfo: 'percent',
1280
+ hovertemplate: '<b>%{label}</b><br>%{value} datasets (%{percent})<extra></extra>',
1281
+ textfont: { color: TEXT, size: 12 },
1282
+ }], {
1283
+ ...layout_base,
1284
+ margin: { t: 10, r: 60, b: 10, l: 60 },
1285
+ legend: { ...layout_base.legend, orientation: 'v', x: 1.0, y: 0.5 },
1286
+ annotations: [{ text: '<b>58</b><br>datasets', x: 0.5, y: 0.5, showarrow: false,
1287
+ font: { size: 15, color: TEXT }, xanchor: 'center' }]
1288
+ }, config);
1289
+
1290
+ /* ── 3. Horizontal bar: Countries ── */
1291
+ const countries = {
1292
+ 'USA': 21,
1293
+ 'China': 6,
1294
+ 'Germany': 6,
1295
+ 'Brazil': 4,
1296
+ 'Multi-national': 3,
1297
+ 'Russia': 3,
1298
+ 'South Korea': 2,
1299
+ 'Spain': 2,
1300
+ 'Czech Republic': 2,
1301
+ 'Australia': 1,
1302
+ 'Norway': 1,
1303
+ 'Qatar': 1,
1304
+ 'Canada': 1,
1305
+ 'Portugal': 1,
1306
+ 'Taiwan': 1,
1307
+ 'Turkey': 1,
1308
+ 'Japan': 1,
1309
+ 'Italy': 1,
1310
+ };
1311
+ const cSorted = Object.entries(countries).sort((a,b) => a[1]-b[1]);
1312
+ Plotly.newPlot('chart-country', [{
1313
+ type: 'bar', orientation: 'h',
1314
+ x: cSorted.map(d=>d[1]),
1315
+ y: cSorted.map(d=>d[0]),
1316
+ marker: {
1317
+ color: cSorted.map(d=>d[1]),
1318
+ colorscale: [[0,'#2e3a6e'],[0.5,ACCENT2],[1,ACCENT]],
1319
+ showscale: false,
1320
+ },
1321
+ hovertemplate: '<b>%{y}</b>: %{x} dataset(s)<extra></extra>',
1322
+ text: cSorted.map(d=>d[1]),
1323
+ textposition: 'outside',
1324
+ textfont: { color: MUTED, size: 11 },
1325
+ }], {
1326
+ ...layout_base,
1327
+ showlegend: false,
1328
+ margin: { t: 10, r: 40, b: 40, l: 110 },
1329
+ xaxis: { color: MUTED, gridcolor: BORDER, title: { text: 'Number of datasets', font:{color:MUTED,size:11} } },
1330
+ yaxis: { color: TEXT, tickfont: { size: 11 }, automargin: true },
1331
+ }, config);
1332
+
1333
+ /* ── 4. Horizontal bar: Record count (log) ── */
1334
+ const rdata = [
1335
+ { name: 'Harvard-Emory HEEDB', n: 11607261 },
1336
+ { name: 'CODE Full (~2.3 M)', n: 2322513 },
1337
+ { name: 'CODE-15%', n: 345779 },
1338
+ { name: 'CinC Challenge 2021', n: 130862 },
1339
+ { name: 'MIMIC-IV-ECG', n: 800000 },
1340
+ { name: 'Icentia11k', n: 541794 },
1341
+ { name: 'EchoNext', n: 100000 },
1342
+ { name: 'Nightingale BWH ED', n: 103952 },
1343
+ { name: 'CinC Challenge 2020', n: 52501 },
1344
+ { name: 'Chapman-Shaoxing (Arrhythmia)', n: 45152 },
1345
+ { name: 'Nightingale NTUH', n: 18072 },
1346
+ { name: 'IKEM Dataset', n: 98130 },
1347
+ { name: 'SPHDB', n: 25770 },
1348
+ { name: 'CODE-test', n: 827 },
1349
+ { name: 'PTB-XL / PTB-XL+', n: 21799 },
1350
+ ].sort((a,b)=>a.n-b.n);
1351
+ Plotly.newPlot('chart-records', [{
1352
+ type: 'bar', orientation: 'h',
1353
+ x: rdata.map(d=>d.n),
1354
+ y: rdata.map(d=>d.name),
1355
+ marker: {
1356
+ color: rdata.map(d=>Math.log10(d.n)),
1357
+ colorscale: [[0,'#2e3a6e'],[0.5,TEAL],[1,ACCENT]],
1358
+ showscale: false,
1359
+ },
1360
+ hovertemplate: '<b>%{y}</b><br>%{x:,} records<extra></extra>',
1361
+ text: rdata.map(d => d.n >= 1e6 ? (d.n/1e6).toFixed(1)+'M' : d.n >= 1e3 ? Math.round(d.n/1e3)+'K' : d.n),
1362
+ textposition: 'outside',
1363
+ textfont: { color: MUTED, size: 10 },
1364
+ }], {
1365
+ ...layout_base,
1366
+ showlegend: false,
1367
+ margin: { t: 10, r: 60, b: 50, l: 185 },
1368
+ xaxis: {
1369
+ type: 'log', color: MUTED, gridcolor: BORDER,
1370
+ title: { text: 'Records (log scale)', font:{color:MUTED,size:11} },
1371
+ },
1372
+ yaxis: { color: TEXT, tickfont: { size: 10 }, automargin: true },
1373
+ }, config);
1374
+
1375
+ /* ── 5. Stacked bar: Access by lead category ── */
1376
+ const categories = ['12-Lead (PhysioNet)', '12-Lead (Other)', '2-Lead', '1-Lead'];
1377
+ const openCounts = [18, 11, 10, 9];
1378
+ const credCounts = [ 3, 1, 0, 0];
1379
+ const restCounts = [ 2, 3, 0, 1];
1380
+ Plotly.newPlot('chart-stacked', [
1381
+ { name: 'Open', type: 'bar', x: categories, y: openCounts, marker:{color:GREEN},
1382
+ hovertemplate: '<b>%{x}</b><br>Open: %{y}<extra></extra>' },
1383
+ { name: 'Credentialed', type: 'bar', x: categories, y: credCounts, marker:{color:AMBER},
1384
+ hovertemplate: '<b>%{x}</b><br>Credentialed: %{y}<extra></extra>' },
1385
+ { name: 'Restricted', type: 'bar', x: categories, y: restCounts, marker:{color:RED},
1386
+ hovertemplate: '<b>%{x}</b><br>Restricted: %{y}<extra></extra>' },
1387
+ ], {
1388
+ ...layout_base,
1389
+ barmode: 'stack',
1390
+ margin: { t: 10, r: 16, b: 80, l: 40 },
1391
+ xaxis: { color: MUTED, tickangle: -20, tickfont:{size:11} },
1392
+ yaxis: { color: MUTED, gridcolor: BORDER, title:{text:'Datasets',font:{color:MUTED,size:11}} },
1393
+ legend: { ...layout_base.legend, orientation:'h', x:0.5, xanchor:'center', y:-0.25 },
1394
+ }, config);
1395
+
1396
+ /* ── 6. Bar: Sampling frequency distribution ── */
1397
+ const hzLabels = ['100 Hz','125 Hz','128 Hz','200/250 Hz','257 Hz','300 Hz','360 Hz','400 Hz','500 Hz','977–1000 Hz','Mixed/Other'];
1398
+ const hzCounts = [2, 1, 2, 6, 2, 1, 2, 3, 23, 5, 11];
1399
+ Plotly.newPlot('chart-hz', [{
1400
+ type: 'bar',
1401
+ x: hzLabels,
1402
+ y: hzCounts,
1403
+ marker: {
1404
+ color: hzCounts,
1405
+ colorscale: [[0,'#2e3a6e'],[0.5,ACCENT2],[1,ACCENT]],
1406
+ showscale: false,
1407
+ },
1408
+ hovertemplate: '<b>%{x}</b><br>%{y} datasets<extra></extra>',
1409
+ text: hzCounts,
1410
+ textposition: 'outside',
1411
+ textfont: { color: MUTED, size: 11 },
1412
+ }], {
1413
+ ...layout_base,
1414
+ showlegend: false,
1415
+ margin: { t: 10, r: 16, b: 90, l: 50 },
1416
+ xaxis: { color: MUTED, tickangle: -35, tickfont:{size:11} },
1417
+ yaxis: { color: MUTED, gridcolor: BORDER, title:{text:'Datasets',font:{color:MUTED,size:11}} },
1418
+ }, config);
1419
+
1420
+ })();
1421
+ </script>
1422
+
1423
+ <footer>
1424
+ <p>Data sourced from <a href="https://physionet.org/" target="_blank">PhysioNet</a> Β· Maintained by <a href="https://github.com/vlbthambawita" target="_blank">Vajira Thambawita</a> Β· <a href="https://github.com/vlbthambawita/ECGDatasets" target="_blank">GitHub</a></p>
1425
+ </footer>
1426
+
1427
+ <script>
1428
+ const searchInput = document.getElementById('search');
1429
+ const filterBtns = document.querySelectorAll('.filter-btn');
1430
+ const rows = document.querySelectorAll('#tbody tr, #tbody1 tr, #tbody2 tr, #tbody3 tr');
1431
+ const noResults = document.getElementById('no-results');
1432
+
1433
+ let activeAccess = 'all';
1434
+ let activeLeads = 'all';
1435
+
1436
+ function applyFilters() {
1437
+ const query = searchInput.value.toLowerCase();
1438
+ let visible = 0;
1439
+
1440
+ rows.forEach(row => {
1441
+ const text = (row.dataset.text + ' ' + row.innerText).toLowerCase();
1442
+ const access = row.dataset.access;
1443
+ const leads = row.dataset.leads || '12';
1444
+
1445
+ const matchesSearch = !query || text.includes(query);
1446
+ const matchesAccess =
1447
+ activeAccess === 'all' ||
1448
+ (activeAccess === 'open' && access === 'open') ||
1449
+ (activeAccess === 'credentialed' && access === 'credentialed') ||
1450
+ (activeAccess === 'restricted' && access === 'restricted');
1451
+ const matchesLeads = activeLeads === 'all' || leads === activeLeads;
1452
+
1453
+ if (matchesSearch && matchesAccess && matchesLeads) {
1454
+ row.classList.remove('hidden');
1455
+ visible++;
1456
+ } else {
1457
+ row.classList.add('hidden');
1458
+ }
1459
+ });
1460
+
1461
+ noResults.style.display = visible === 0 ? 'block' : 'none';
1462
+ }
1463
+
1464
+ searchInput.addEventListener('input', applyFilters);
1465
+
1466
+ filterBtns.forEach(btn => {
1467
+ btn.addEventListener('click', () => {
1468
+ const group = btn.dataset.group;
1469
+ filterBtns.forEach(b => { if (b.dataset.group === group) b.classList.remove('active'); });
1470
+ btn.classList.add('active');
1471
+ if (group === 'access') activeAccess = btn.dataset.filter;
1472
+ if (group === 'leads') activeLeads = btn.dataset.filter;
1473
+ applyFilters();
1474
+ });
1475
+ });
1476
+ </script>
1477
+
1478
+ </body>
1479
+ </html>