@@ -24,7 +24,7 @@ This notebook walks through a complete **customics** workflow on the bundled toy
2424```
2525
2626** Phase 1** (epochs 0 → ` switch ` ): each source autoencoder is trained
27- independently; task heads operate on per-source representations.
27+ independently; task heads operate on per-source representations.
2828** Phase 2** (epochs ` switch ` → end): the central VAE integrates all sources
2929into a unified latent space used by the task heads.
3030
@@ -541,7 +541,7 @@ print(f"\nClinical data : {clinical_df.shape[0]} rows * {clinical_df.shape[1]}
541541 protein 100 samples * 160 features
542542 gene_exp 100 samples * 131 features
543543 methyl 100 samples * 367 features
544-
544+
545545 Clinical data : 100 rows * 4 columns
546546
547547
@@ -566,7 +566,7 @@ plt.tight_layout()
566566plt.show()
567567```
568568
569-
569+
570570 === Label distribution (cluster.id) ===
571571 cluster.id
572572 1 35
@@ -577,9 +577,9 @@ plt.show()
577577
578578
579579
580-
580+
581581![ png] ( usage_files/usage_11_1.png )
582-
582+
583583
584584
585585
@@ -599,7 +599,7 @@ print(f"First 5 sample IDs: {lt_samples[:5]}")
599599
600600## 2. Splitting the Data
601601
602- We split the full cohort into ** train / validation / test** sets.
602+ We split the full cohort into ** train / validation / test** sets.
603603` get_sub_omics_df ` applies the same sample selection to all sources simultaneously,
604604keeping every dictionary in sync.
605605
@@ -1113,9 +1113,9 @@ model.plot_loss()
11131113```
11141114
11151115
1116-
1116+
11171117![ png] ( usage_files/usage_21_0.png )
1118-
1118+
11191119
11201120
11211121---
@@ -1150,7 +1150,7 @@ for k, v in metrics.items():
11501150 print (f " { k:<25s } : { v:.4f } " if isinstance (v, float ) else f " { k} : { v} " )
11511151```
11521152
1153-
1153+
11541154 ── Classification metrics on the test set ──
11551155 Accuracy : 1.0000
11561156 F1-score : 1.0000
@@ -1160,9 +1160,9 @@ for k, v in metrics.items():
11601160
11611161
11621162
1163-
1163+
11641164![ png] ( usage_files/usage_23_1.png )
1165-
1165+
11661166
11671167
11681168
@@ -1184,7 +1184,7 @@ print("\n── Survival metrics on the test set ──")
11841184print (" C-index :" , surv_metrics)
11851185```
11861186
1187-
1187+
11881188 ── Survival metrics on the test set ──
11891189 C-index : 0.48936170212765956
11901190
@@ -1228,9 +1228,9 @@ model.plot_representation(
12281228
12291229
12301230
1231-
1231+
12321232![ png] ( usage_files/usage_26_1.png )
1233-
1233+
12341234
12351235
12361236
@@ -1245,7 +1245,7 @@ model.plot_representation(
12451245the cohort into high-risk / low-risk groups at the median score and draws a
12461246Kaplan-Meier curve.
12471247
1248- > ** Note:** with synthetic survival data the curves will overlap.
1248+ > ** Note:** with synthetic survival data the curves will overlap.
12491249> This section shows the API; meaningful separation requires real OS/OS.time.
12501250
12511251
@@ -1262,9 +1262,9 @@ model.stratify(
12621262```
12631263
12641264
1265-
1265+
12661266![ png] ( usage_files/usage_28_0.png )
1267-
1267+
12681268
12691269
12701270---
@@ -1397,11 +1397,10 @@ for k, v in metrics_reloaded.items():
13971397 print (f " { k:<25s } : { v:.4f } " if isinstance (v, float ) else f " { k} : { v} " )
13981398```
13991399
1400-
1400+
14011401 ── Reloaded model — classification metrics ──
14021402 Accuracy : 1.0000
14031403 F1-score : 1.0000
14041404 Precision : 1.0000
14051405 Recall : 1.0000
14061406 AUC : 1.0000
1407-
0 commit comments