File size: 3,280 Bytes
f406c82
94711f6
f406c82
 
94711f6
f406c82
 
afe0db2
 
 
 
 
 
f406c82
 
 
 
 
 
 
 
57f506d
 
f406c82
94711f6
f406c82
 
 
 
 
94711f6
 
 
f406c82
94711f6
 
 
f406c82
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57f506d
f406c82
57f506d
 
 
 
f406c82
 
57f506d
f406c82
 
 
 
 
 
 
 
 
 
 
94711f6
 
 
 
 
f406c82
 
 
 
94711f6
 
 
 
 
 
 
f406c82
 
 
 
 
 
 
 
 
 
afe0db2
f406c82
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
{
  "model_id": "2026_W42_unit",
  "task": "unit-encoding",
  "model_class": "UnitAutoencoder",
  "vintage": "2026_W42",
  "training": {
    "random_seed": 0,
    "training_size": 572,
    "training_units": 56497,
    "validation_size": 75,
    "validation_units": 7671,
    "testing_size": 149,
    "testing_units": 15880
  },
  "environment": {
    "python": "3.11.9",
    "xgboost": "3.2.0",
    "scikit_learn": "1.8.0",
    "numpy": "2.3.5",
    "pandas": "3.0.5",
    "torch": "2.7.1+cu118",
    "ephysatlas": "0.9.0",
    "iblatlas": "1.2.0"
  },
  "method": "hierarchical_gmm",
  "granularity": "unit",
  "artifacts": {
    "autoencoder": "autoencoder.pt",
    "config": "config.json",
    "scaler": "shared_latent_scaler.joblib",
    "types": "types_gmm.joblib",
    "subtypes": "subtypes_gmm.joblib",
    "subtype_parent": "subtype_parent.npy",
    "context_transform": "context_transform.joblib",
    "type_weights": "context_weights_types.pt",
    "subtype_weights": "context_weights_subtypes.pt",
    "members": "members.npz",
    "stats": "preprocessing/unit_stats.npz",
    "split": "split.json",
    "context": [
      "agea_vol_pca.npy",
      "merfish_vol_pca.npy"
    ],
    "results": [
      "results/summary.json"
    ]
  },
  "inputs": {
    "index": [
      "pid",
      "cluster"
    ],
    "columns": [
      "x",
      "y",
      "z"
    ],
    "modalities": [
      "waveform",
      "acg",
      "stpc"
    ]
  },
  "outputs": {
    "kind": "continuous",
    "columns": [
      "depolarisation_slope",
      "recovery_slope",
      "repolarisation_slope",
      "spatial_spread_um",
      "tip_val",
      "spike_width_secs",
      "predepolarisation_width_secs",
      "spike_amplitude",
      "peak_to_trough_ratio_log",
      "polarity"
    ],
    "feature_order_sha256": "8536d8c5c99959110df046905224cf91de680434287153131d3ba85eaed968af",
    "latent_dim": 60
  },
  "config": {
    "architecture": {
      "modalities": [
        "waveform",
        "acg",
        "stpc"
      ],
      "modality_latent_dim": 20,
      "latent_dim": 60,
      "density": "hierarchical Gaussian mixture, full covariances, top-down assignment",
      "n_types": 30,
      "n_subtypes": 300,
      "max_subtypes_per_type": 10,
      "min_units_per_subtype": 20
    },
    "context": {
      "n_cell_pcs": 50,
      "n_gene_pcs": 50,
      "conditions": "the sub-type weights gamma_k(x) gamma_j|k(x) only; the type and sub-type means and covariances are global",
      "source_model": "int-brain-lab/ea-encoder-channel",
      "data_vintage": "2026_W41"
    },
    "readout": {
      "method": "members",
      "description": "each sub-type is represented by its training units, from anywhere in the brain, weighted by their top-down posterior of the sub-type"
    },
    "preprocessing": {
      "waveforms": "per-unit max-abs normalized, 20 channels centred on the peak channel",
      "stats_file": "preprocessing/unit_stats.npz",
      "mirror_x_to_single_hemisphere": true,
      "mirror_x_sign": -1.0
    }
  },
  "data_source": {
    "backend": "s3-ibl",
    "project": "ibl_neuropixel_brainwide_01_2026_W41",
    "requires_one": true
  }
}