The following file formats are compatible for use with the import-segmentation
pipeline:
- Labeled mask in TIFF (32-bit) or NumPy NPY format
- Polygons in GeoJSON format (
FeatureCollection
type) - Baysor output CSV and GeoJSON file formats
- Xenium Onboard Analysis
cells.zarr.zip
file: the nucleus masks are used as input if--nuclei=cells.zarr.zip
and can be expanded with--expansion-distance
. The cell masks are used as input if--cells=cells.zarr.zip
.
The polygon GeoJSON should be exported as a FeatureCollection
. The cells and nuclei can be saved in the same (as shown below in QuPath's output format) or separate GeoJSON files. The format should look similar to this example:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"id": "12059192-3b27-4438-96dc-97b41ca84717",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[3418.94, 2],
[3414.62, 3.85],
[3414.12, 22.65],
[3415.06, 27.26],
[3420.1, 35.15],
[3428.03, 40.22],
[3437.01, 42.94],
[3440.69, 45.87],
[3445.32, 46.71],
[3468.85, 46.71],
[3477.88, 44.35],
[3534.35, 44.31],
[3546.79, 37.83],
[3552.28, 30.11],
[3552.94, 25.45],
[3552.93, 6.63],
[3550.68, 2.49],
[3546, 2],
[3418.94, 2]
]
]
}
}
]
}
Segmentation results from QuPath are compatible with Xenium Ranger and have these specifications:
- The feature
objectType
should becell
, as features with a non-cellobjectType
will be ignored (i.e.,annotations
). - The
--nuclei
argument will use thenucleusGeometry
polygon if it exists in the GeoJSON, otherwise it will use thegeometry
polygon. The--cells
argument will use thegeometry
polygon. - QuPath exports nucleus and cell segmentation results in one file, so the same GeoJSON file should be specified for both
--cells
and--nuclei
. The format should look similar to this example:
{
"type":"FeatureCollection",
"features": [
{
"type":"Feature",
"id":"fd0c3d4e-6146-427d-9696-97fbe7adb63d",
"geometry":{
"type":"Polygon",
"coordinates":[
[
[4348.52, 0],
[4344.02, 1.37],
[4341.18, 10.23],
[4341.8, 24.31],
[4346.73, 32.28],
[4353.27, 38.99],
[4361.18, 44],
[4379.94, 44.48],
[4388.64, 40.97],
[4396.11, 35.26],
[4404.71, 21.36],
[4404.27, 2.55],
[4400.29, 0.06],
[4348.52, 0]
]
]
},
"nucleusGeometry":{
"type":"Polygon",
"coordinates":[
[
[4373.91, 4.81],
[4366.61, 9.07],
[4364.28, 12.61],
[4364.3, 16.85],
[4370.37, 22.75],
[4378.35, 20.24],
[4382.75, 13.06],
[4380.87, 9.26],
[4373.91, 4.81]
]
]
},
"properties":{
"objectType":"cell"
}
}
]
}
Segmentation results from Baysor v0.6 and later are compatible with Xenium Ranger and have the specifications listed below.
Baysor segmentation CSV:
- The CSV must have the following columns:
transcript_id
,cell
,is_noise
(order does not matter). The other default columns from Baysor are optional.
Here is an example of the required columns in CSV format:
transcript_id,cell,is_noise
281474976710656,CRc17aaabcd-3,false
281474976710657,CRc17aaabcd-3,false
281474976710658,CRc17aaabcd-3,false
[ ... ]
Baysor segmentation GeoJSON:
- Should be of type
GeometryCollection
, where eachgeometry
is of typePolygon
. - The
Polygon
should contain an extra field calledcell
to identify which cell the polygon corresponds to. - Each cell in the GeoJSON must have at least one transcript assigned to it in the transcript assignment CSV. Filtering out Q-Score < 20 transcripts and negative controls prior to running any transcript-based segmentation method is recommended. However, unlike Xenium Ranger v2.0.1, Xenium Ranger v3.0 can handle cells with only low-quality transcripts without mixing up a cell's transcripts. See this Knowledge Base article for more information.
Here is an example of the GeoJSON format:
{
"geometries": [
{
"coordinates": [
[
[15.891722, 21.441122],
[13.95383, 21.565407],
[14.233208, 25.427168],
[15.927658, 26.113512],
[17.464699, 25.211208],
[16.642977, 22.83285],
[15.891722, 21.441122]
]
],
"type": "Polygon",
"cell": 5
}
],
"type": "GeometryCollection"
}