Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't get well plate information from OMEXML #167

Open
JKelle opened this issue Feb 19, 2024 · 0 comments
Open

Can't get well plate information from OMEXML #167

JKelle opened this issue Feb 19, 2024 · 0 comments

Comments

@JKelle
Copy link

JKelle commented Feb 19, 2024

I'm not able to get plate or well information from the OMEXML object. I tried with a couple operetta format well plate images and an InCELL format image, both have this behavior. Here is a minimal example using one of the sample xml file downloaded from https://downloads.openmicroscopy.org/images/OME-XML/2016-06/one-screen-one-plate-four-wells.ome.xml

import bioformats
import javabridge

javabridge.start_vm(class_path=bioformats.JARS, run_headless=True)

# file downloaded from https://downloads.openmicroscopy.org/images/OME-XML/2016-06/one-screen-one-plate-four-wells.ome.xml
path = "one-screen-one-plate-four-wells.ome.xml"
with open(path) as f:
    raw_xml_string = f.read()
xml = bioformats.OMEXML(raw_xml_string)
print("number of plates:", len(xml.plates))
print(f"{xml.plates.ns=}")

javabridge.kill_vm()

The output of this script is

$ python plates_example.py
number of plates: 0
xml.plates.ns={'ome': 'http://www.openmicroscopy.org/Schemas/OME/2016-06', 'sa': None, 'spw': None}

I'm trying to iterate over the Wells to get each one's Row, Column, and Image IDs. Am I not using the xml object correctly, or is this a python-bioformats bug with parsing the tags from the xml?

Here is the content of the downloaded xml file mentioned above. It clearly has a Plate tag and several Well tags.

<?xml version="1.0" encoding="UTF-8"?>
<OME xmlns="http://www.openmicroscopy.org/Schemas/OME/2016-06"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://www.openmicroscopy.org/Schemas/OME/2016-06
                         http://www.openmicroscopy.org/Schemas/OME/2016-06/ome.xsd">
  <Plate ID="Plate:1">
    <Description>Plate 1 description.</Description>
    <Well ID="Well:1.1.1" Column="1" Row="1">
      <WellSample ID="WellSample:1.1.1.1" Index="1">
        <ImageRef ID="Image:0"/>
      </WellSample>
      <WellSample ID="WellSample:1.1.1.2" Index="5">
        <ImageRef ID="Image:1"/>
      </WellSample>
      <ReagentRef ID="Reagent:1"/>
    </Well>
    <Well ID="Well:1.2.1" Column="2" Row="1">
      <WellSample ID="WellSample:1.2.1.1" Index="2">
        <ImageRef ID="Image:2"/>
      </WellSample>
      <WellSample ID="WellSample:1.2.1.2" Index="6">
        <ImageRef ID="Image:3"/>
      </WellSample>
      <ReagentRef ID="Reagent:1"/>
    </Well>
    <Well ID="Well:1.1.2" Column="1" Row="2">
      <WellSample ID="WellSample:1.1.2.1" Index="3">
        <ImageRef ID="Image:4"/>
      </WellSample>
      <WellSample ID="WellSample:1.1.2.2" Index="7">
        <ImageRef ID="Image:5"/>
      </WellSample>
      <WellSample ID="WellSample:1.1.2.3" Index="11">
        <ImageRef ID="Image:6"/>
      </WellSample>
      <WellSample ID="WellSample:1.1.2.4" Index="15">
        <ImageRef ID="Image:7"/>
      </WellSample>
      <WellSample ID="WellSample:1.1.2.5" Index="19">
        <ImageRef ID="Image:8"/>
      </WellSample>
      <ReagentRef ID="Reagent:1"/>
    </Well>
    <Well ID="Well:1.2.2" Column="2" Row="2">
      <WellSample ID="WellSample:1.2.2.1" Index="4">
        <ImageRef ID="Image:9"/>
      </WellSample>
      <WellSample ID="WellSample:1.2.2.2" Index="8">
        <ImageRef ID="Image:10"/>
      </WellSample>
      <ReagentRef ID="Reagent:1"/>
    </Well>
    <PlateAcquisition ID="PlateAcquisition:Plate:1:ScreenAcquisition:1"
                          StartTime="2010-02-23T12:49:30" EndTime="2010-02-23T12:50:30">
      <WellSampleRef ID="WellSample:1.1.1.1"/>
      <WellSampleRef ID="WellSample:1.2.1.1"/>
      <WellSampleRef ID="WellSample:1.1.2.1"/>
      <WellSampleRef ID="WellSample:1.2.2.1"/>
    </PlateAcquisition>
    <PlateAcquisition ID="PlateAcquisition:Plate:1:ScreenAcquisition:2"
                          StartTime="2010-02-23T12:50:30" EndTime="2010-02-23T12:51:29">
      <WellSampleRef ID="WellSample:1.1.1.2"/>
      <WellSampleRef ID="WellSample:1.2.1.2"/>
      <WellSampleRef ID="WellSample:1.1.2.2"/>
      <WellSampleRef ID="WellSample:1.2.2.2"/>
    </PlateAcquisition>
  </Plate>
  <Screen ID="Screen:1" ProtocolDescription="" ProtocolIdentifier="" ReagentSetDescription=""
              ReagentSetIdentifier="" Name="" Type="">
    <Description/>
    <Reagent ID="Reagent:1" Name="" ReagentIdentifier="">
      <Description/>
    </Reagent>
    <PlateRef ID="Plate:1"/>
  </Screen>
  <Image ID="Image:0" Name="6x6x1x8-swatch.tif">
    <AcquisitionDate>2010-02-23T12:51:30</AcquisitionDate>
    <Pixels DimensionOrder="XYCZT" ID="Pixels:0:0" PhysicalSizeX="10000.0"
                PhysicalSizeY="10000.0" Type="uint8" SizeC="1" SizeT="1" SizeX="6" SizeY="4" SizeZ="1">
      <Channel Color="-2147483648" ID="Channel:0"/>
      <BinData BigEndian="false" Length="32"
                   >/wCrzur//wB5oMPi/wBIbJO3AP8ePGCF</BinData>
    </Pixels>
  </Image>
  <Image ID="Image:1" Name="6x6x1x8-swatch.tif-1">
    <AcquisitionDate>2010-02-23T12:51:30</AcquisitionDate>
    <Pixels DimensionOrder="XYCZT" ID="Pixels:1:0" PhysicalSizeX="10000.0"
                PhysicalSizeY="10000.0" Type="uint8" SizeC="1" SizeT="1" SizeX="6" SizeY="4" SizeZ="1">
      <Channel Color="-2147483648" ID="Channel:1"/>
      <BinData BigEndian="false" Length="32"
                   >/wCrzur//wB5oMPi/wBIbJO3AP8ePGCF</BinData>
    </Pixels>
  </Image>
  <Image ID="Image:2" Name="6x6x1x8-swatch.tif-2">
    <AcquisitionDate>2010-02-23T12:51:30</AcquisitionDate>
    <Pixels DimensionOrder="XYCZT" ID="Pixels:2:0" PhysicalSizeX="10000.0"
                PhysicalSizeY="10000.0" Type="uint8" SizeC="1" SizeT="1" SizeX="6" SizeY="4" SizeZ="1">
      <Channel Color="-2147483648" ID="Channel:2"/>
      <BinData BigEndian="false" Length="32"
                   >/wCrzur//wB5oMPi/wBIbJO3AP8ePGCF</BinData>
    </Pixels>
  </Image>
  <Image ID="Image:3" Name="6x6x1x8-swatch.tif-3">
    <AcquisitionDate>2010-02-23T12:51:30</AcquisitionDate>
    <Pixels DimensionOrder="XYCZT" ID="Pixels:3:0" PhysicalSizeX="10000.0"
                PhysicalSizeY="10000.0" Type="uint8" SizeC="1" SizeT="1" SizeX="6" SizeY="4" SizeZ="1">
      <Channel Color="-2147483648" ID="Channel:3"/>
      <BinData BigEndian="false" Length="32"
                   >/wCrzur//wB5oMPi/wBIbJO3AP8ePGCF</BinData>
    </Pixels>
  </Image>
  <Image ID="Image:4" Name="6x6x1x8-swatch.tif-4">
    <AcquisitionDate>2010-02-23T12:51:30</AcquisitionDate>
    <Pixels DimensionOrder="XYCZT" ID="Pixels:4:0" PhysicalSizeX="10000.0"
                PhysicalSizeY="10000.0" Type="uint8" SizeC="1" SizeT="1" SizeX="6" SizeY="4" SizeZ="1">
      <Channel Color="-2147483648" ID="Channel:4"/>
      <BinData BigEndian="false" Length="32"
                   >/wCrzur//wB5oMPi/wBIbJO3AP8ePGCF</BinData>
    </Pixels>
  </Image>
  <Image ID="Image:5" Name="6x6x1x8-swatch.tif-5">
    <AcquisitionDate>2010-02-23T12:51:30</AcquisitionDate>
    <Pixels DimensionOrder="XYCZT" ID="Pixels:5:0" PhysicalSizeX="10000.0"
                PhysicalSizeY="10000.0" Type="uint8" SizeC="1" SizeT="1" SizeX="6" SizeY="4" SizeZ="1">
      <Channel Color="-2147483648" ID="Channel:5"/>
      <BinData BigEndian="false" Length="32"
                   >/wCrzur//wB5oMPi/wBIbJO3AP8ePGCF</BinData>
    </Pixels>
  </Image>
  <Image ID="Image:6" Name="6x6x1x8-swatch.tif-6">
    <AcquisitionDate>2010-02-23T12:51:30</AcquisitionDate>
    <Pixels DimensionOrder="XYCZT" ID="Pixels:6:0" PhysicalSizeX="10000.0"
                PhysicalSizeY="10000.0" Type="uint8" SizeC="1" SizeT="1" SizeX="6" SizeY="4" SizeZ="1">
      <Channel Color="-2147483648" ID="Channel:6"/>
      <BinData BigEndian="false" Length="32"
                   >/wCrzur//wB5oMPi/wBIbJO3AP8ePGCF</BinData>
    </Pixels>
  </Image>
  <Image ID="Image:7" Name="6x6x1x8-swatch.tif-7">
    <AcquisitionDate>2010-02-23T12:51:30</AcquisitionDate>
    <Pixels DimensionOrder="XYCZT" ID="Pixels:7:0" PhysicalSizeX="10000.0"
                PhysicalSizeY="10000.0" Type="uint8" SizeC="1" SizeT="1" SizeX="6" SizeY="4" SizeZ="1">
      <Channel Color="-2147483648" ID="Channel:7"/>
      <BinData BigEndian="false" Length="32"
                   >/wCrzur//wB5oMPi/wBIbJO3AP8ePGCF</BinData>
    </Pixels>
  </Image>
  <Image ID="Image:8" Name="6x6x1x8-swatch.tif-8">
    <AcquisitionDate>2010-02-23T12:51:30</AcquisitionDate>
    <Pixels DimensionOrder="XYCZT" ID="Pixels:8:0" PhysicalSizeX="10000.0"
                PhysicalSizeY="10000.0" Type="uint8" SizeC="1" SizeT="1" SizeX="6" SizeY="4" SizeZ="1">
      <Channel Color="-2147483648" ID="Channel:8"/>
      <BinData BigEndian="false" Length="32"
                   >/wCrzur//wB5oMPi/wBIbJO3AP8ePGCF</BinData>
    </Pixels>
  </Image>
  <Image ID="Image:9" Name="6x6x1x8-swatch.tif-9">
    <AcquisitionDate>2010-02-23T12:51:30</AcquisitionDate>
    <Pixels DimensionOrder="XYCZT" ID="Pixels:9:0" PhysicalSizeX="10000.0"
                PhysicalSizeY="10000.0" Type="uint8" SizeC="1" SizeT="1" SizeX="6" SizeY="4" SizeZ="1">
      <Channel Color="-2147483648" ID="Channel:9"/>
      <BinData BigEndian="false" Length="32"
                   >/wCrzur//wB5oMPi/wBIbJO3AP8ePGCF</BinData>
    </Pixels>
  </Image>
  <Image ID="Image:10" Name="6x6x1x8-swatch.tif-10">
    <AcquisitionDate>2010-02-23T12:51:30</AcquisitionDate>
    <Pixels DimensionOrder="XYCZT" ID="Pixels:10:0" PhysicalSizeX="10000.0"
                PhysicalSizeY="10000.0" Type="uint8" SizeC="1" SizeT="1" SizeX="6" SizeY="4" SizeZ="1">
      <Channel Color="-2147483648" ID="Channel:10"/>
      <BinData BigEndian="false" Length="32"
                   >/wCrzur//wB5oMPi/wBIbJO3AP8ePGCF</BinData>
    </Pixels>
  </Image>
</OME>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant