Repository navigation
Commit bea1f1c
committed
fix: map counts to layers['counts'] across all Seurat->h5ad paths
Counts were written to the legacy /raw/X group, which modern scverse tools
(scvi-tools, current scanpy workflows) do not look at. The in-memory direct
writers were migrated to /layers/counts, but the h5seurat-file and CLI paths
still emitted /raw/X, producing structurally different h5ad depending on the
entry point and silently dropping counts on a CLI round-trip.
Migrate the remaining writers and teach the CLI reader the modern convention:
- H5SeuratToH5AD (R hub): counts -> /layers/counts (dict 0.1.0 + csr_matrix
0.1.0 + shape); drop the /raw and /raw/var machinery. Layers share /var.
- CLI writer (sc_h5ad.c): counts -> /layers/counts instead of /raw/X + raw/var.
- CLI reader (sc_h5ad.c): read /layers/counts into the assay counts layer and
route X to data when a counts slot exists; /raw/X still read for back-compat.
- sc_stream_layers: skip "counts"/"data" so the primary matrices are not
duplicated into a stray top-level /layers or collided on round-trip.
- Rename internal raw_list -> counts_list in .writeH5AD_c for accuracy.
Encoding verified byte-for-byte against anndata 0.12.7 (layers dict 0.1.0,
csr_matrix 0.1.0, shape; no dtype attr - anndata does not emit one). Full
round-trips validated for the C writer, R writer, R hub writer, and CLI both
directions; legacy /raw/X reading preserved. Test suites: cli-integration
117/0, roundtrip-property 193/0, saveload 19/0, misc-roundtrip 36/0, varp 18/0.1 parent de9f270 commit bea1f1c
5 files changed
Lines changed: 155 additions & 237 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1291 | 1291 | | |
1292 | 1292 | | |
1293 | 1293 | | |
| 1294 | + | |
| 1295 | + | |
| 1296 | + | |
| 1297 | + | |
| 1298 | + | |
| 1299 | + | |
| 1300 | + | |
| 1301 | + | |
| 1302 | + | |
| 1303 | + | |
| 1304 | + | |
| 1305 | + | |
1294 | 1306 | | |
1295 | 1307 | | |
1296 | 1308 | | |
| |||
1299 | 1311 | | |
1300 | 1312 | | |
1301 | 1313 | | |
1302 | | - | |
1303 | | - | |
1304 | | - | |
1305 | | - | |
1306 | | - | |
| 1314 | + | |
1307 | 1315 | | |
1308 | 1316 | | |
1309 | 1317 | | |
| |||
3254 | 3262 | | |
3255 | 3263 | | |
3256 | 3264 | | |
3257 | | - | |
| 3265 | + | |
| 3266 | + | |
3258 | 3267 | | |
3259 | 3268 | | |
3260 | | - | |
3261 | | - | |
3262 | | - | |
3263 | | - | |
3264 | | - | |
3265 | | - | |
3266 | | - | |
3267 | | - | |
3268 | | - | |
3269 | | - | |
3270 | | - | |
3271 | | - | |
3272 | | - | |
3273 | | - | |
3274 | | - | |
3275 | | - | |
3276 | | - | |
3277 | | - | |
3278 | | - | |
3279 | | - | |
3280 | | - | |
| 3269 | + | |
3281 | 3270 | | |
3282 | 3271 | | |
3283 | | - | |
3284 | | - | |
3285 | | - | |
3286 | | - | |
3287 | | - | |
3288 | | - | |
3289 | | - | |
3290 | | - | |
3291 | | - | |
3292 | | - | |
3293 | | - | |
3294 | | - | |
3295 | | - | |
3296 | | - | |
3297 | | - | |
3298 | | - | |
3299 | | - | |
3300 | | - | |
3301 | | - | |
3302 | | - | |
3303 | | - | |
3304 | | - | |
3305 | | - | |
3306 | | - | |
3307 | | - | |
3308 | | - | |
3309 | | - | |
3310 | | - | |
3311 | | - | |
3312 | | - | |
3313 | | - | |
3314 | | - | |
3315 | | - | |
3316 | | - | |
3317 | | - | |
3318 | | - | |
3319 | | - | |
3320 | | - | |
3321 | | - | |
3322 | | - | |
3323 | | - | |
3324 | | - | |
3325 | | - | |
3326 | | - | |
3327 | | - | |
3328 | | - | |
3329 | | - | |
3330 | | - | |
3331 | | - | |
3332 | | - | |
3333 | | - | |
3334 | | - | |
3335 | | - | |
3336 | | - | |
3337 | | - | |
3338 | | - | |
3339 | | - | |
3340 | | - | |
3341 | | - | |
3342 | | - | |
3343 | | - | |
3344 | | - | |
3345 | | - | |
3346 | | - | |
3347 | | - | |
3348 | | - | |
3349 | | - | |
3350 | | - | |
3351 | | - | |
3352 | | - | |
3353 | | - | |
3354 | | - | |
3355 | | - | |
3356 | | - | |
3357 | | - | |
3358 | | - | |
3359 | | - | |
3360 | | - | |
3361 | | - | |
3362 | | - | |
| 3272 | + | |
| 3273 | + | |
3363 | 3274 | | |
3364 | | - | |
3365 | | - | |
| 3275 | + | |
| 3276 | + | |
3366 | 3277 | | |
3367 | 3278 | | |
3368 | | - | |
| 3279 | + | |
3369 | 3280 | | |
3370 | | - | |
3371 | | - | |
| 3281 | + | |
| 3282 | + | |
3372 | 3283 | | |
3373 | 3284 | | |
3374 | | - | |
3375 | | - | |
3376 | | - | |
3377 | | - | |
3378 | | - | |
| 3285 | + | |
| 3286 | + | |
| 3287 | + | |
| 3288 | + | |
| 3289 | + | |
| 3290 | + | |
| 3291 | + | |
3379 | 3292 | | |
3380 | | - | |
3381 | | - | |
3382 | | - | |
3383 | | - | |
3384 | | - | |
3385 | | - | |
3386 | | - | |
3387 | | - | |
3388 | | - | |
3389 | | - | |
3390 | | - | |
3391 | | - | |
3392 | | - | |
3393 | | - | |
3394 | | - | |
3395 | | - | |
3396 | | - | |
3397 | | - | |
3398 | | - | |
3399 | | - | |
3400 | | - | |
3401 | | - | |
3402 | | - | |
3403 | | - | |
3404 | | - | |
3405 | | - | |
3406 | | - | |
3407 | | - | |
3408 | | - | |
3409 | | - | |
3410 | | - | |
3411 | | - | |
3412 | | - | |
3413 | | - | |
3414 | | - | |
| 3293 | + | |
| 3294 | + | |
| 3295 | + | |
| 3296 | + | |
| 3297 | + | |
| 3298 | + | |
| 3299 | + | |
| 3300 | + | |
3415 | 3301 | | |
3416 | 3302 | | |
3417 | 3303 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
225 | 225 | | |
226 | 226 | | |
227 | 227 | | |
228 | | - | |
229 | | - | |
230 | | - | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
231 | 231 | | |
232 | 232 | | |
233 | 233 | | |
234 | 234 | | |
235 | 235 | | |
236 | | - | |
| 236 | + | |
| 237 | + | |
237 | 238 | | |
238 | | - | |
239 | | - | |
240 | | - | |
241 | | - | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
242 | 243 | | |
243 | 244 | | |
244 | 245 | | |
| |||
282 | 283 | | |
283 | 284 | | |
284 | 285 | | |
285 | | - | |
| 286 | + | |
286 | 287 | | |
287 | 288 | | |
288 | 289 | | |
| |||
374 | 375 | | |
375 | 376 | | |
376 | 377 | | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
377 | 381 | | |
378 | 382 | | |
379 | 383 | | |
380 | 384 | | |
381 | | - | |
382 | | - | |
383 | | - | |
384 | | - | |
385 | | - | |
386 | | - | |
387 | 385 | | |
388 | 386 | | |
389 | 387 | | |
390 | 388 | | |
391 | 389 | | |
392 | 390 | | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
393 | 405 | | |
394 | 406 | | |
395 | 407 | | |
| |||
420 | 432 | | |
421 | 433 | | |
422 | 434 | | |
423 | | - | |
424 | | - | |
425 | | - | |
426 | | - | |
427 | | - | |
428 | | - | |
429 | 435 | | |
430 | 436 | | |
431 | 437 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
636 | 636 | | |
637 | 637 | | |
638 | 638 | | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
639 | 645 | | |
640 | 646 | | |
641 | 647 | | |
| |||
0 commit comments