expXML property declaration import errors

CPAS Forum (Inactive)
expXML property declaration import errors david.perrin  2006-01-12 12:22
Status: Closed
 
If I create a xar xml file that contains custom properties with no content.

such as:

<exp:PropertyObject>
    <exp:PropertyObjectDeclaration Name="Sample Clean Up" OntologyEntryURI="terms.genologics.com.UDT.Sample Clean Up"/>
    <exp:ChildProperties>...</exp:ChildProperties>
</exp:PropertyObject>

as opposed to:

<exp:PropertyObject>
    <exp:PropertyObjectDeclaration Name="Sample Clean Up" OntologyEntryURI="terms.genologics.com.UDT.Sample Clean Up">some string content</exp:PropertyObjectDeclaration>
</exp:PropertyObject>

I end up with the attached stack trace on import. The stack trace implies that the transaction has been rolled back, but if I add some string content to the propertyObjectDeclaration and try to import again, the import fails with the second attached stack trace.

One more problem that happens with declared properties is that they don't seem to get stored in the database correctly.
If I import a project with with something like <exp:Properties>
    <exp:SimpleVal Name="SourceLSID" OntologyEntryURI="terms.genologics.com.SourceLSID">urn:lsid:genologics.com.7:Material:Analyte.77.2543</exp:SimpleVal>
</exp:Properties>

The exp.propertydescriptor table will contain an entry, but the name column will not be set. This then causes errors when you try to view the experiment. I've attached one such stack trace from the cpas.log file and showing the database table with the missing values. Once I manually put values in the database table, thing work fine.
 
 
Peter responded:  2006-01-12 12:58
I'll investigate
 
Peter responded:  2006-01-12 18:20
I've identified 3 issues from your posting--

1) in 1.1 there is a bug that the Name="SourceLSID" attribute of a simpleVal property in a xar is ignored. the name is taken by looking for a # in the OntologyEntryURI and using everything to the right asa the name. This is fixed in our current development builds so you will see it in 1.2. It can be worked around by using terms.genologics.com#SourceLSID in your example

2) The reloading of a PropertyObject did not check first to see if the property ID already exists. This seems to work in development builds so you will see it in 1.2. I don't know a workaround for it because of issue #3.

3) we have no mechanism for cleaning up PropertyDescriptors in 1.1. A property descriptor is implicitly created from the OntologyEntryURI if one does not exist, and it hangs around even after the container (Folder) is deleted. I'm invstigating potential improvements to this and hope to have something in 1.2.

thanks much for sending this repro

 
david.perrin responded:  2006-01-13 09:04
What about PropertyObjects that don't have any content(just attributes). A common occurance in our software is that a user will define a field(exported as a SimpleVal) to annotate a protocolApplication or Material, but there is no requirement that they fill in a value every time. Alternatively they can define a type (exported as a PropertyObjectDeclaration) that contains fields and the type will often just have attributes and no content other than the fields. I don't see this requirement in the schema.
 
david.perrin responded:  2006-01-13 09:49
Another question concerning the use of the Properties Tag.

If I import a xar.xml that contains a material defined as follows:

        <exp:Material rdf:about="urn:lsid:genologics.com.7:Material:Analyte.77.2543">
            <exp:Name>Mouse Liver-1</exp:Name>
            <exp:CpasType>BioSource</exp:CpasType>
            <exp:Properties>
                <exp:SimpleVal Name="Organism" OntologyEntryURI="terms.genologics.com.UDF.Organism" ValueType="String">Mus musculus</exp:SimpleVal>
                <exp:SimpleVal Name="Strain" OntologyEntryURI="terms.genologics.com.UDF.Strain" ValueType="String">Unknown</exp:SimpleVal>
                <exp:PropertyObject>
                    <exp:PropertyObjectDeclaration Name="Description" OntologyEntryURI="terms.genologics.com.BioSource.Description">Test BioSource</exp:PropertyObjectDeclaration>
                    <exp:ChildProperties>
                        <exp:SimpleVal Name="Number of Individuals" OntologyEntryURI="terms.genologics.com.UDF.Number of Individuals" ValueType="Double">1</exp:SimpleVal>
                        <exp:SimpleVal Name="Developmental Stage" OntologyEntryURI="terms.genologics.com.UDF.Developmental Stage" ValueType="String">adult</exp:SimpleVal>
                        <exp:SimpleVal Name="Gender" OntologyEntryURI="terms.genologics.com.UDF.Gender" ValueType="String">female</exp:SimpleVal>
                        <exp:SimpleVal Name="Genotype" OntologyEntryURI="terms.genologics.com.UDF.Genotype" ValueType="String">wildtype</exp:SimpleVal>
                        <exp:SimpleVal Name="Cell Culture " OntologyEntryURI="terms.genologics.com.UDF.Cell Culture " ValueType="String">human Aortic Smooth Muscle Cells</exp:SimpleVal>
                        <exp:SimpleVal Name="Number of Culture Dishes" OntologyEntryURI="terms.genologics.com.UDF.Number of Culture Dishes" ValueType="Double">1</exp:SimpleVal>
                        <exp:SimpleVal Name="Culture Dish Type" OntologyEntryURI="terms.genologics.com.UDF.Culture Dish Type" ValueType="String">100 mm</exp:SimpleVal>
                        <exp:SimpleVal Name="Density of Cells" OntologyEntryURI="terms.genologics.com.UDF.Density of Cells" ValueType="String">Pre Confluent (~80%)</exp:SimpleVal>
                        <exp:SimpleVal Name="Pre-Experimental Culture Conditions" OntologyEntryURI="terms.genologics.com.UDF.Pre-Experimental Culture Conditions" ValueType="String">0% serum, 48 hrs</exp:SimpleVal>
                        <exp:SimpleVal Name="Cell count" OntologyEntryURI="terms.genologics.com.UDF.Cell count" ValueType="Double">1</exp:SimpleVal>
                    </exp:ChildProperties>
                </exp:PropertyObject>
            </exp:Properties>
        </exp:Material>

When I view the the material, the only Custom Properties that are displayed are:
Organism, Strain and Description, but all of the ChildProperties of Description are missing. All of them are in the exp.propertydescriptor table in the DB.

Thanks.
 
david.perrin responded:  2006-01-13 09:51
Opps, that xml doesn't look very nice. I've attached the xml file it came from.
 
mbellew responded:  2006-01-13 10:56
Sorry about the formatting, we are just using our wiki formatting. The result is sometimes unexpected (especially for windows paths and xml). Adding some other formatting options is on our wishlist…
 
Peter responded:  2006-01-13 11:38
The fact that a PropertyObjectDeclaration will fail if it has no content (only children) is a bug in 1.1. It does not occur in our current 1.2 builds so you should see a fix soon.

It would be a nice feature to have the custom property viewer dive into child properties of property objects. I'll put it on the request queue.

 
david.perrin responded:  2006-01-16 09:23
Is there a timeframe for when version 1.2 will be released?
 
arauch responded:  2006-01-16 10:24
We hope to finish up development and testing this month, then release CPAS 1.2 in early February.
 
david.perrin responded:  2006-01-16 15:54
I think all my issues with expXML imports have been addressed, but I have one more question about importing complete xar archives using the pipeline module.

I have set up a root pipeline directory, but when I put a xar archive into the pipeline directory it does not appear in the file hierarchy shown in the Pipeline tab. mzXML archives appear as expected with the "search for peptides" button, but not so for xar archives.

Thanks

 
Peter responded:  2006-01-19 18:59
Handling of compressed xar files is not in 1.1. You need to get them uncompressed as part of the posting to the data pipeline directory.

We are working on it for 1.2 but it is on the edge right now.

 
adam responded:  2006-12-04 22:09