CoolFace
Datasetpublic

einarolafsson/spacr-example-import

spaCR — Import test data The same four microscope fields written in every container format and filename convention the Import module of spaCR reads, each with its cell, nucleus and pathogen masks and the measurements of its cells. It is the data behind Load test data… on the Import screen: pick a variant, and spaCR fills the screen with it and previews the import, so you can see every file land on the well, field and channel it came from. About 283 MB in one uncompressed archive… See the full description on the dataset page: https://huggingface.co/datasets/einarolafsson/spacr-example-import.

sourceHugging Facemitupdated 3d agoView on Hugging Face
0likes27downloads
Dataset Card

spaCR — Import test data

The same four microscope fields written in every container format and filename convention the Import module of spaCR reads, each with its cell, nucleus and pathogen masks and the measurements of its cells. It is the data behind Load test data… on the Import screen: pick a variant, and spaCR fills the screen with it and previews the import, so you can see every file land on the well, field and channel it came from.

About 283 MB in one uncompressed archive, spacr-example-import.tar. One download covers every variant.

Where the fields come from

Wells E01 and E02, fields 9 and 10, channels 1–3 of the toxomito example plate `plate1` (`einarolafsson/toxomito`): Toxoplasma-infected host cells, channel 1 nuclei, channel 2 host cells, channel 3 parasites.

  • Images are the raw acquisition planes (16-bit, not rescaled), cut to 896 × 896 px. The window is the one that keeps the most whole cells.
  • Masks are the cell, nucleus and pathogen label images of the Mask run on the same plate (einarolafsson/spacr-example-measure), cut the same way. Every object the cut went through was removed, so no mask holds half an object.
  • Measurements are the Measure rows of exactly the cells left in the masks (einarolafsson/spacr-example-annotate). reference/measurements.db has them as spaCR wrote them (cell, nucleus, pathogen and cytoplasm tables); each variant's measurements.db has the cell table the way a collaborator's table would arrive: spaCR's own key columns removed, and an image column naming that variant's own file.

Channels are named DAPI, FITC and TRITC in the conventions that name channels rather than number them. Import numbers named channels in sorted order, and these three sort in channel order.

The variants

variants/<key>/plate1/ holds the images, variants/<key>/masks/{cell,nucleus,pathogen}/ the masks named the same way, and variants/<key>/measurements.db the table.

KeyButtonFilesNaming (`metadata_type`)Example
zeiss_cziTest Zeiss CZI importZeiss CZI, one plane per filezeisszensplit_tilesE01/plate1_S00001_T00009_C00001.czi
cellvoyagerTest Yokogawa CellVoyager importTIFFcellvoyagerplate1_E01_T0001F009L01A01Z01C01.tif
cq1Test Yokogawa CQ1 importTIFFcq1W0097F0009T0001Z000C1.tif
opera_phenixTest Opera Phenix importTIFFopera_phenixImages/r05c01f09p01-ch1sk1fk1fl1.tiff
imagexpressTest ImageXpress importTIFFimagexpressTimePoint_1/plate1_E01_s9_w1<GUID>.TIF
arrayscanTest ArrayScan importTIFFarrayscanplate1_E01f08d0.TIF
arrayscan_kineticTest ArrayScan kinetic importTIFFarrayscan_kineticplate1i3t001E01f08d0.TIF
evosTest EVOS importTIFFevosscan_R_p1_z1_0_E01f09d0.tif
incellTest IN Cell importTIFFincellE - 01(fld 9 wv DAPI - DAPI).tif
scanrTest ScanR importTIFFscanrdata/E1--W00097--P00009--Z00000--T00000--DAPI.tif
cytationTest Cytation importTIFFcytationE1_01_1_9_DAPI_001.tif
leica_matrix_screenerTest Leica Matrix Screener importOME-TIFF, one plane per fileleicamatrixscreenerslide--S00/chamber--U00--V04/field--X08--Y00/image--L00--S00--U00--V04--J20--E00--O00--X08--Y00--T00--Z00--C00.ome.tif
leica_lasx_seriesTest Leica LAS X series importTIFFleicalasxseriesE01/Series009_z00_ch00.tif
leica_lasx_series_timeTest Leica LAS X timelapse importTIFFleicalasxseries_timeE01/Pos008_t000_z00_ch00.tif
nikon_nis_xyTest Nikon NIS-Elements importTIFFnikonnisxyE01xy09c1.tif
nikon_jobsTest Nikon JOBS importTIFFnikon_jobsWellE01_ChannelDAPI_Seq0009.tif
micromanager_mdaTest Micro-Manager importTIFFmicromanager_mdaE01/img_channel000_position008_time000000000_z000.tif
zeiss_zen_split_tilesTest Zeiss ZEN split tiles importTIFFzeisszensplit_tilesE01/plate1_S00001_T00009_C00001.tiff
customTest custom naming importTIFFcustom (?P<plateID>[^_]+)__(?P<wellID>[A-Z]\d{2})__site(?P<fieldID>\d+)__(?P<chanID>[A-Za-z0-9]+)toxo-plate1__E01__site09__DAPI.tif
autoTest folder-layout importTIFFautoE01/fov09_ch1.tif
ome_tiffTest OME-TIFF importOME-TIFF, three channels per fileautoE01/field009.ome.tif
tiff_stackTest TIFF stack importImageJ TIFF stack, three channels per fileautoE01/field009.tif
nikon_nd2Test Nikon ND2 importNikon ND2 (public sample)autoA01/WellA01_ChannelBF_Seq0001.nd2
leica_lifTest Leica LIF importLeica LIF (public samples)autoA01/FRAP.lif

What is true of every file: manifest.csv

One row per file. path is relative to the unpacked import_example/ folder; well, field, channel, z and t are what the file truly is, and source_field is the field number on the original plate. field_identity says what an import should recover: number means the field number itself (field 9 stays field 9); rank means the order within the well, for the variants whose names carry no field number (a folder layout, a Leica Matrix Screener X/Y position, a file of channels). The manifest is the last member of the archive, so a download that died part-way has none and reads as absent.

Verified

Every variant was imported with spaCR's own planner and each output plane compared with the manifest: well, field, channel, z and t, every mask paired with its field, and every measurement row matched to an object in the masks.

VariantResult
zeiss_czipassed
cellvoyagerpassed
cq1passed
opera_phenixpassed
imagexpresspassed
arrayscanpassed
arrayscan_kineticpassed
evospassed
incellpassed
scanrpassed
cytationpassed
leica_matrix_screenerpassed
leica_lasx_seriespassed
leica_lasx_series_timepassed
nikon_nis_xypassed
nikon_jobspassed
micromanager_mdapassed
zeiss_zen_split_tilespassed
custompassed
autopassed
ome_tiffpassed
tiff_stackpassed
nikon_nd2passed
leica_lifpassed

What a pass proves, and what it does not: the files were written to follow each convention as spaCR's convention table documents it (the same table Mask uses, including which numbers count from zero), and read back by the Import module. It shows Import inverts those conventions. It cannot show that the table is right about every instrument; conventions marked provisional in spaCR's Naming list are the ones built from few real examples.

ND2 and LIF

No open library writes Nikon ND2 or Leica LIF, so those two variants are not these fields: they are public sample files from downloads.openmicroscopy.org, redistributed under their licence, CC BY 4.0 (the text is in each folder as LICENSE-CC-BY-4.0.txt). They carry no masks, so their buttons fill the Format Converter rather than the Import screen.

  • variants/nikon_nd2/plate1/A01/WellA01_ChannelBF_Seq0001.nd2 — https://downloads.openmicroscopy.org/images/ND2/maxime/BF007.nd2 -- (c) Maxime Woringer, CC BY 4.0
  • variants/leica_lif/plate1/A01/FRAP.lif — https://downloads.openmicroscopy.org/images/Leica-LIF/seanwarren/150519FRAPtestROIschromagreen/150519FRAPtestROIschromagreen.lif -- (c) Sean Warren, CC BY 4.0
  • variants/leica_lif/plate1/A01/PR2729_frameOrderCombinedScanTypes.lif — https://downloads.openmicroscopy.org/images/Leica-LIF/michael/PR2729_frameOrderCombinedScanTypes.lif -- (c) Michael Goelzer, CC BY 4.0

Using it

In spaCR, open Import and press Load test data…. The first choice downloads the archive into ~/.cache/spacr/example_data/plate1/import_example/; later choices open from there. From a terminal: spacr-download import.

Licence

MIT, like spaCR's other example sets, except the two sample folders variants/nikon_nd2 and variants/leica_lif, which are CC BY 4.0 by the authors named above.