Source code: org/biomage/Common/MAGEJava.java
1 /***************************************************************************
2 * *
3 * C O P Y R I G H T N O T I C E *
4 * Copyright (c) 2001 by: *
5 * * The MicroArray Gene Expression Database group (MGED) *
6 * * Rosetta Inpharmatics *
7 * *
8 * All Rights Reserved. *
9 * *
10 * Permission is hereby granted, free of charge, to any person *
11 * obtaining a copy of this software and associated documentation files *
12 * (the "Software"), to deal in the Software without restriction, *
13 * including without limitation the rights to use, copy, modify, merge, *
14 * publish, distribute, sublicense, and/or sell copies of the Software, *
15 * and to permit persons to whom the Software is furnished to do so, *
16 * subject to the following conditions: *
17 * *
18 * The above copyright notice and this permission notice shall be *
19 * included in all copies or substantial portions of the Software. *
20 * *
21 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, *
22 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
23 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND *
24 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS *
25 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN *
26 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN *
27 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE *
28 * SOFTWARE. *
29 ***************************************************************************
30 * *
31 * Created by the create_mage_java_classes java program based on the *
32 * information in the xmi file created from the MAGE-OM UML model, *
33 * copyright European Bioinformatics Institute (EBI) for MGED and Rosetta *
34 * Informatics. *
35 * *
36 * The ideas and work are built on the previous work in perl of Jason *
37 * Stewart, Open Informatics, and Robert M. Hubley, Institute for Systems *
38 * Biology *
39 * *
40 * @author Michael Miller, Rosetta Inpharmatics *
41 * @version Revision: 1.0 *
42 * @date Thu, Feb 21, 2002 10:48:07 AM *
43 * *
44 ***************************************************************************
45 */
46
47 /**
48 * org.biomage.Common
49 *
50 */
51 package org.biomage.Common;
52
53 /**
54 * Import list for MAGEJava
55 *
56 */
57 import java.io.Serializable;
58 import java.util.*;
59 import org.xml.sax.Attributes;
60 import java.io.Writer;
61 import java.io.IOException;
62 import org.biomage.Array.Array_package;
63 import org.biomage.ArrayDesign.ArrayDesign_package;
64 import org.biomage.AuditAndSecurity.AuditAndSecurity_package;
65 import org.biomage.BQS.BQS_package;
66 import org.biomage.BioAssay.BioAssay_package;
67 import org.biomage.BioAssayData.BioAssayData_package;
68 import org.biomage.BioEvent.BioEvent_package;
69 import org.biomage.BioMaterial.BioMaterial_package;
70 import org.biomage.BioSequence.BioSequence_package;
71 import org.biomage.Description.Description_package;
72 import org.biomage.DesignElement.DesignElement_package;
73 import org.biomage.Experiment.Experiment_package;
74 import org.biomage.HigherLevelAnalysis.HigherLevelAnalysis_package;
75 import org.biomage.Measurement.Measurement_package;
76 import org.biomage.Protocol.Protocol_package;
77 import org.biomage.QuantitationType.QuantitationType_package;
78
79 public
80 class MAGEJava
81 implements Serializable
82 {
83 /**
84 * An abstract class representing an event that takes sources of
85 * some type to produce a target of some type. Each of the realized
86 * subclasses determines the type of the sources and the target. The
87 * association to a protocol application allows specification of how
88 * the event was performed.
89 *
90 */
91 public BioEvent_package bioEvent_package;
92
93
94 /**
95 * Describes the process of creating arrays from array designs.
96 * Includes information on how arrays are grouped together, if
97 * relevant, how an array deviates from its array design both in layout
98 * and per feature and potentially contains references to LIMS data
99 * that might contain more detail on the BioMaterial used to create the
100 * reporters.
101 *
102 */
103 public Array_package array_package;
104
105
106 /**
107 * The classes defined here provide data and the information and
108 * annotation on the derivation of that data. Some of the scenarios
109 * that might occur are the following.
110 *
111 * FeatureExtraction of a single PhysicalBioAssay produces
112 * MeasuredBioAssayData that has a single BioAssay on the
113 * BioAssayDimension, typically the Features described in the
114 * ArrayDesign on the DesignElementDimension, and the Quantitations
115 * associated with the application of a FeatureExtraction protocol on
116 * the QuantitationDimension.
117 *
118 * An error model transformation might be applied that doesn't change
119 * the BioAssayDimension or the DesignElementDimension but likely
120 * changes the QuantitationDimension. A transformation on replicate
121 * Reporters or CompositeSequences might be applied on the single
122 * BioAssay that would change the DesignElementDimension and the
123 * QuantitationDimension both. Replicate and Control BioAssays might
124 * be added to the BioAssayDimension and a transformation could change
125 * the BioAssayDimension and the QuantitationDimension but not change
126 * the DesignElementDimension to produce a new DerivedBioAssayData. Or
127 * some combination of the above transformations could be performed at
128 * once to change all three dimensions.
129 *
130 * Because the classes derive from Describable, the Experimenter can
131 * provide as much detail at each level of the class hierarchy as
132 * desired.
133 *
134 */
135 public BioAssayData_package bioAssayData_package;
136
137
138 /**
139 * Provides classes that contain information and annotation on the
140 * event of joining an Array with a BioMaterial preparation, the
141 * acquisition of images and the extraction of data on a per feature
142 * basis from those images. The derived classes of BioAssay represent
143 * the base PhysicalBioAssays which lead to the production of Images,
144 * the MeasuredBioAssay which is associated with the set of
145 * quantitations produced by FeatureExtraction, and DerivedBioAssay
146 * (see BioAssayData package) which groups together BioAssays that have
147 * been analyzed together to produce further refinement of the
148 * quantitations.
149 *
150 * The design of this package and the related BioAssayData package was
151 * driven by the following query considerations and the desire to
152 * return as little data as necessary to satisfy a query. Often, the
153 * first set of queries for experiments below the Experiment level will
154 * want to discover the why of an experiment and this is captured in
155 * the BioAssay class through its FactorValue, BioEvent and Description
156 * associations. This separates it from the data but allows an
157 * overview of the experiment hierarchy. The BioAssayData class
158 * association to BioDataValues is optional only to allow queries on
159 * them to discover the how of the experiment through the association
160 * to the transformation and mappings of the three BioAssayData
161 * dimensions and the protocols used. Once a researcher, for instance,
162 * has narrowed down the experiments of interest then the actual data,
163 * represented by the BioDataValues, can be downloaded. Because these
164 * data can be in the hundreds of megabytes to gigabytes range, it was
165 * considered desirable to be able to return information and annotation
166 * on the experiment without the data.
167 *
168 */
169 public BioAssay_package bioAssay_package;
170
171
172 /**
173 * The classes in this package allow a variety of references to
174 * third party annotation and direct annotation by the experimenter.
175 *
176 */
177 public Description_package description_package;
178
179
180 /**
181 * This Package defines the classes for quantitations, such as
182 * measured and derived signal, error, and pvalue. The subclasses of
183 * StandardQuantitationType will be the best fit from FeatureExtraction
184 * or Transformation Protocol for the values obtained. Other values
185 * can be specified using SpecializedQuantitationType.
186 *
187 */
188 public QuantitationType_package quantitationType_package;
189
190
191 /**
192 * Provides a relatively immutable class, Protocol, that can
193 * describe a generic laboratory procedure or analysis algorithm, for
194 * example, and an instance class, ProtocolApplication, which can
195 * describe the actual application of a protocol. The
196 * ProtocolApplication provides values for the replaceable parameters
197 * of the Protocol and, through the Description association of
198 * Describable, any variation from the Protocol.
199 *
200 */
201 public Protocol_package protocol_package;
202
203
204 /**
205 * The classes of this package provide utility information on the
206 * quantities of other classes to each other.
207 *
208 */
209 public Measurement_package measurement_package;
210
211
212 /**
213 * Describes a known gene or sequence. BioAssays typically seek to
214 * identify what BioSequences are expressed in a BioMaterial after
215 * treatments, the expression level measured from the association
216 * between the BioMaterial and the Array. The Array's Features
217 * typically provide known locations for this association to occur.
218 * Most often, the Reporter and CompositeSequence are known and the
219 * presence or absence of a particular BioSequence in the BioMaterial
220 * is based on whether there as been an association to the
221 * DesignElement targeted for it. Some other experiments may not know
222 * the DesignElement's target but can discover it with known properties
223 * of the BioSequences in the BioMaterial.
224 *
225 */
226 public BioSequence_package bioSequence_package;
227
228
229 /**
230 * Allows a reference to an article, book or other publication to be
231 * specified for searching repositories.
232 *
233 */
234 public BQS_package bQS_package;
235
236
237 /**
238 * Represents the container for a hierarchical grouping of
239 * BioAssays. Can have the end results of Clustering Analysis
240 * specified and, through the ExperimentDesign, a description and
241 * annotation of the overall design of the experiment and what it was
242 * to show.
243 *
244 */
245 public Experiment_package experiment_package;
246
247
248 /**
249 * Specifies classes that allow tracking of changes and information
250 * on user permissions to view the data and annotation.
251 *
252 */
253 public AuditAndSecurity_package auditAndSecurity_package;
254
255
256 /**
257 * Describes the results of performing analysis on the result of the
258 * BioAssayData from an Experiment.
259 *
260 */
261 public HigherLevelAnalysis_package higherLevelAnalysis_package;
262
263
264 /**
265 * The classes of this package are the contained classes of the
266 * ArrayDesign and describe through the DesignElements what is intended
267 * to be at each location of the Array. The Feature describes an
268 * intended location on the Array, the Reporter the Oligo, Clone, PCR
269 * Product that is on a Feature and the CompositeSequence which
270 * combines Reporters or CompositeSequences into what the child
271 * DesignElements are meant to represent biologically, e.g. a Gene,
272 * Exon, SpliceVariant, etc.
273 *
274 */
275 public DesignElement_package designElement_package;
276
277
278 /**
279 * Describes a microarray design that can be printed and then, in
280 * the case of gene expression, hybridized. An array design consists
281 * of several features (also called spots) in which reporter sequences
282 * are placed. Many features may have the same reporter replicated and
283 * a reporter may be specified in one or more array designs.
284 *
285 * The nature of the reporter's biosequence placed on a spot will
286 * depend on the technology. Two well-known technologies differ
287 * significantly-spotter arrays draw material from a well and place a
288 * spot on the array whereas in situ oligo arrays are created through
289 * the synthesis of many, short (~20-100mer) nucleotide sequences onto
290 * the features.
291 *
292 * Reporters can be grouped together into CompositeSequences, typically
293 * representing a gene or one or more splice variants in gene
294 * expression experiments.
295 *
296 * There are then two distinct ways that DesignElements are grouped.
297 * The one described in the ArrayDesign package by FeatureGroup,
298 * ReporterGroup and CompositeGroup is by technology type, that is, one
299 * might want to segregate the controls to a Group and all the
300 * non-controls to another. Or if PCR Product and Oligos are both
301 * used on an array they would likely be in different groups. The
302 * grouping described in the DesignElement package by the mappings
303 * relates the Features to the Reporter, the Reporters to
304 * CompositeSequence, and at higher levels, CompositeSequences to
305 * CompositeSequence.
306 *
307 */
308 public ArrayDesign_package arrayDesign_package;
309
310
311 /**
312 * The classes in this package describe how a BioSource is treated
313 * to obtain the BioMaterial (typically a LabeledExtract) that is used
314 * by a BioAssayCreation in combination with an Array to produce a
315 * PhysicalBioAssay. A set of treatments are typically linear in time
316 * but can form a Directed Acyclic Graph.
317 *
318 */
319 public BioMaterial_package bioMaterial_package;
320
321
322 /**
323 * Default constructor.
324 *
325 */
326 public
327 MAGEJava()
328 {
329 }
330
331 /**
332 * Attribute constructor.
333 *
334 * Looks up the attributes in the parameter and casts them from strings
335 * appropriately
336 * @param atts: the attribute list.
337 *
338 */
339 // TODO Work in progress (attribute constructor).
340 public
341 MAGEJava(Attributes atts)
342 {
343 }
344
345 /**
346 * writeMAGEML
347 * <p>
348 * This method is responsible for assembling the attribute and
349 * association data into XML. It creates the object tag and then calls
350 * the writeAttributes and writeAssociation methods.
351 * <p>
352 *
353 */
354 public
355 void
356 writeMAGEML(Writer out)
357 throws IOException
358 {
359 out.write("<MAGE-ML");
360 writeAttributes(out);
361 out.write(">");
362 writeAssociations(out);
363 out.write("</MAGE-ML>");
364 }
365
366 /**
367 * writeAttributes
368 * <p>
369 * This method is responsible for assembling the attribute data into
370 * XML. It calls the super method to write out all attributes of this
371 * class and it's ancestors.
372 * <p>
373 *
374 */
375 public
376 void
377 writeAttributes(Writer out)
378 throws IOException
379 {
380 }
381
382 /**
383 * writeAssociations
384 * <p>
385 * This method is responsible for assembling the association data
386 * into XML. It calls the super method to write out all associations of
387 * this class's ancestors.
388 * <p>
389 *
390 */
391 public
392 void
393 writeAssociations(Writer out)
394 throws IOException
395 {
396 if ( bioMaterial_package != null ){
397 bioMaterial_package.writeMAGEML(out);
398 }
399 if ( arrayDesign_package != null ){
400 arrayDesign_package.writeMAGEML(out);
401 }
402 if ( designElement_package != null ){
403 designElement_package.writeMAGEML(out);
404 }
405 if ( higherLevelAnalysis_package != null ){
406 higherLevelAnalysis_package.writeMAGEML(out);
407 }
408 if ( auditAndSecurity_package != null ){
409 auditAndSecurity_package.writeMAGEML(out);
410 }
411 if ( experiment_package != null ){
412 experiment_package.writeMAGEML(out);
413 }
414 if ( bQS_package != null ){
415 bQS_package.writeMAGEML(out);
416 }
417 if ( bioSequence_package != null ){
418 bioSequence_package.writeMAGEML(out);
419 }
420 if ( measurement_package != null ){
421 measurement_package.writeMAGEML(out);
422 }
423 if ( protocol_package != null ){
424 protocol_package.writeMAGEML(out);
425 }
426 if ( quantitationType_package != null ){
427 quantitationType_package.writeMAGEML(out);
428 }
429 if ( description_package != null ){
430 description_package.writeMAGEML(out);
431 }
432 if ( bioAssay_package != null ){
433 bioAssay_package.writeMAGEML(out);
434 }
435 if ( bioAssayData_package != null ){
436 bioAssayData_package.writeMAGEML(out);
437 }
438 if ( array_package != null ){
439 array_package.writeMAGEML(out);
440 }
441 if ( bioEvent_package != null ){
442 bioEvent_package.writeMAGEML(out);
443 }
444 }
445
446 /**
447 * Inner class to store Model to Class mappings
448 * <p>
449 * Stores absolute references to classes under their common Model
450 * names.
451 * <p>
452 *
453 */
454 private
455 class
456 ModelNameToClassMap extends HashMap
457 {
458 {
459 this.put("ArrayDesign",
460 org.biomage.ArrayDesign.ArrayDesign.class);
461 this.put("PhysicalArrayDesign",
462 org.biomage.ArrayDesign.PhysicalArrayDesign.class);
463 this.put("ZoneLayout",
464 org.biomage.ArrayDesign.ZoneLayout.class);
465 this.put("ZoneGroup",
466 org.biomage.ArrayDesign.ZoneGroup.class);
467 this.put("Zone",
468 org.biomage.ArrayDesign.Zone.class);
469 this.put("ReporterGroup",
470 org.biomage.ArrayDesign.ReporterGroup.class);
471 this.put("FeatureGroup",
472 org.biomage.ArrayDesign.FeatureGroup.class);
473 this.put("DesignElementGroup",
474 org.biomage.ArrayDesign.DesignElementGroup.class);
475 this.put("CompositeGroup",
476 org.biomage.ArrayDesign.CompositeGroup.class);
477 this.put("Array",
478 org.biomage.Array.Array.class);
479 this.put("FeatureDefect",
480 org.biomage.Array.FeatureDefect.class);
481 this.put("ArrayGroup",
482 org.biomage.Array.ArrayGroup.class);
483 this.put("ArrayManufacture",
484 org.biomage.Array.ArrayManufacture.class);
485 this.put("ArrayManufactureDeviation",
486 org.biomage.Array.ArrayManufactureDeviation.class);
487 this.put("Fiducial",
488 org.biomage.Array.Fiducial.class);
489 this.put("ManufactureLIMS",
490 org.biomage.Array.ManufactureLIMS.class);
491 this.put("ManufactureLIMSBiomaterial",
492 org.biomage.Array.ManufactureLIMSBiomaterial.class);
493 this.put("PositionDelta",
494 org.biomage.Array.PositionDelta.class);
495 this.put("ZoneDefect",
496 org.biomage.Array.ZoneDefect.class);
497 this.put("BioSource",
498 org.biomage.BioMaterial.BioSource.class);
499 this.put("BioMaterial",
500 org.biomage.BioMaterial.BioMaterial.class);
501 this.put("LabeledExtract",
502 org.biomage.BioMaterial.LabeledExtract.class);
503 this.put("BioSample",
504 org.biomage.BioMaterial.BioSample.class);
505 this.put("Compound",
506 org.biomage.BioMaterial.Compound.class);
507 this.put("CompoundMeasurement",
508 org.biomage.BioMaterial.CompoundMeasurement.class);
509 this.put("BioMaterialMeasurement",
510 org.biomage.BioMaterial.BioMaterialMeasurement.class);
511 this.put("Treatment",
512 org.biomage.BioMaterial.Treatment.class);
513 this.put("BioAssayDataCluster",
514 org.biomage.HigherLevelAnalysis.BioAssayDataCluster.class);
515 this.put("Node",
516 org.biomage.HigherLevelAnalysis.Node.class);
517 this.put("NodeContents",
518 org.biomage.HigherLevelAnalysis.NodeContents.class);
519 this.put("NodeValue",
520 org.biomage.HigherLevelAnalysis.NodeValue.class);
521 this.put("PhysicalBioAssay",
522 org.biomage.BioAssay.PhysicalBioAssay.class);
523 this.put("DerivedBioAssay",
524 org.biomage.BioAssay.DerivedBioAssay.class);
525 this.put("Image",
526 org.biomage.BioAssay.Image.class);
527 this.put("BioAssay",
528 org.biomage.BioAssay.BioAssay.class);
529 this.put("Channel",
530 org.biomage.BioAssay.Channel.class);
531 this.put("MeasuredBioAssay",
532 org.biomage.BioAssay.MeasuredBioAssay.class);
533 this.put("BioAssayCreation",
534 org.biomage.BioAssay.BioAssayCreation.class);
535 this.put("FeatureExtraction",
536 org.biomage.BioAssay.FeatureExtraction.class);
537 this.put("Hybridization",
538 org.biomage.BioAssay.Hybridization.class);
539 this.put("ImageAcquisition",
540 org.biomage.BioAssay.ImageAcquisition.class);
541 this.put("BioAssayTreatment",
542 org.biomage.BioAssay.BioAssayTreatment.class);
543 this.put("Person",
544 org.biomage.AuditAndSecurity.Person.class);
545 this.put("Security",
546 org.biomage.AuditAndSecurity.Security.class);
547 this.put("Audit",
548 org.biomage.AuditAndSecurity.Audit.class);
549 this.put("Organization",
550 org.biomage.AuditAndSecurity.Organization.class);
551 this.put("SecurityGroup",
552 org.biomage.AuditAndSecurity.SecurityGroup.class);
553 this.put("Contact",
554 org.biomage.AuditAndSecurity.Contact.class);
555 this.put("BioAssayData",
556 org.biomage.BioAssayData.BioAssayData.class);
557 this.put("QuantitationTypeDimension",
558 org.biomage.BioAssayData.QuantitationTypeDimension.class);
559 this.put("BioAssayMapping",
560 org.biomage.BioAssayData.BioAssayMapping.class);
561 this.put("DesignElementDimension",
562 org.biomage.BioAssayData.DesignElementDimension.class);
563 this.put("BioAssayDatum",
564 org.biomage.BioAssayData.BioAssayDatum.class);
565 this.put("DerivedBioAssayData",
566 org.biomage.BioAssayData.DerivedBioAssayData.class);
567 this.put("MeasuredBioAssayData",
568 org.biomage.BioAssayData.MeasuredBioAssayData.class);
569 this.put("QuantitationTypeMapping",
570 org.biomage.BioAssayData.QuantitationTypeMapping.class);
571 this.put("DesignElementMapping",
572 org.biomage.BioAssayData.DesignElementMapping.class);
573 this.put("BioDataCube",
574 org.biomage.BioAssayData.BioDataCube.class);
575 this.put("BioDataValues",
576 org.biomage.BioAssayData.BioDataValues.class);
577 this.put("BioDataTuples",
578 org.biomage.BioAssayData.BioDataTuples.class);
579 this.put("BioAssayDimension",
580 org.biomage.BioAssayData.BioAssayDimension.class);
581 this.put("QuantitationTypeMap",
582 org.biomage.BioAssayData.QuantitationTypeMap.class);
583 this.put("Transformation",
584 org.biomage.BioAssayData.Transformation.class);
585 this.put("DesignElementMap",
586 org.biomage.BioAssayData.DesignElementMap.class);
587 this.put("BioAssayMap",
588 org.biomage.BioAssayData.BioAssayMap.class);
589 this.put("CompositeSequenceDimension",
590 org.biomage.BioAssayData.CompositeSequenceDimension.class);
591 this.put("ReporterDimension",
592 org.biomage.BioAssayData.ReporterDimension.class);
593 this.put("FeatureDimension",
594 org.biomage.BioAssayData.FeatureDimension.class);
595 this.put("Experiment",
596 org.biomage.Experiment.Experiment.class);
597 this.put("ExperimentDesign",
598 org.biomage.Experiment.ExperimentDesign.class);
599 this.put("ExperimentalFactor",
600 org.biomage.Experiment.ExperimentalFactor.class);
601 this.put("FactorValue",
602 org.biomage.Experiment.FactorValue.class);
603 this.put("Protocol",
604 org.biomage.Protocol.Protocol.class);
605 this.put("Parameter",
606 org.biomage.Protocol.Parameter.class);
607 this.put("ParameterValue",
608 org.biomage.Protocol.ParameterValue.class);
609 this.put("ProtocolApplication",
610 org.biomage.Protocol.ProtocolApplication.class);
611 this.put("Software",
612 org.biomage.Protocol.Software.class);
613 this.put("Hardware",
614 org.biomage.Protocol.Hardware.class);
615 this.put("HardwareApplication",
616 org.biomage.Protocol.HardwareApplication.class);
617 this.put("SoftwareApplication",
618 org.biomage.Protocol.SoftwareApplication.class);
619 this.put("Parameterizable",
620 org.biomage.Protocol.Parameterizable.class);
621 this.put("ParameterizableApplication",
622 org.biomage.Protocol.ParameterizableApplication.class);
623 this.put("Description",
624 org.biomage.Description.Description.class);
625 this.put("DatabaseEntry",
626 org.biomage.Description.DatabaseEntry.class);
627 this.put("Database",
628 org.biomage.Description.Database.class);
629 this.put("ExternalReference",
630 org.biomage.Description.ExternalReference.class);
631 this.put("OntologyEntry",
632 org.biomage.Description.OntologyEntry.class);
633 this.put("Measurement",
634 org.biomage.Measurement.Measurement.class);
635 this.put("Unit",
636 org.biomage.Measurement.Unit.class);
637 this.put("TimeUnit",
638 org.biomage.Measurement.TimeUnit.class);
639 this.put("DistanceUnit",
640 org.biomage.Measurement.DistanceUnit.class);
641 this.put("TemperatureUnit",
642 org.biomage.Measurement.TemperatureUnit.class);
643 this.put("QuantityUnit",
644 org.biomage.Measurement.QuantityUnit.class);
645 this.put("MassUnit",
646 org.biomage.Measurement.MassUnit.class);
647 this.put("VolumeUnit",
648 org.biomage.Measurement.VolumeUnit.class);
649 this.put("ConcentrationUnit",
650 org.biomage.Measurement.ConcentrationUnit.class);
651 this.put("BioEvent",
652 org.biomage.BioEvent.BioEvent.class);
653 this.put("Map",
654 org.biomage.BioEvent.Map.class);
655 this.put("BibliographicReference",
656 org.biomage.BQS.BibliographicReference.class);
657 this.put("SeqFeature",
658 org.biomage.BioSequence.SeqFeature.class);
659 this.put("SeqFeatureLocation",
660 org.biomage.BioSequence.SeqFeatureLocation.class);
661 this.put("BioSequence",
662 org.biomage.BioSequence.BioSequence.class);
663 this.put("SequencePosition",
664 org.biomage.BioSequence.SequencePosition.class);
665 this.put("StandardQuantitationType",
666 org.biomage.QuantitationType.StandardQuantitationType.class);
667 this.put("QuantitationType",
668 org.biomage.QuantitationType.QuantitationType.class);
669 this.put("SpecializedQuantitationType",
670 org.biomage.QuantitationType.SpecializedQuantitationType.class);
671 this.put("DerivedSignal",
672 org.biomage.QuantitationType.DerivedSignal.class);
673 this.put("MeasuredSignal",
674 org.biomage.QuantitationType.MeasuredSignal.class);
675 this.put("Error",
676 org.biomage.QuantitationType.Error.class);
677 this.put("PValue",
678 org.biomage.QuantitationType.PValue.class);
679 this.put("ExpectedValue",
680 org.biomage.QuantitationType.ExpectedValue.class);
681 this.put("Ratio",
682 org.biomage.QuantitationType.Ratio.class);
683 this.put("ConfidenceIndicator",
684 org.biomage.QuantitationType.ConfidenceIndicator.class);
685 this.put("PresentAbsent",
686 org.biomage.QuantitationType.PresentAbsent.class);
687 this.put("DesignElement",
688 org.biomage.DesignElement.DesignElement.class);
689 this.put("Position",
690 org.biomage.DesignElement.Position.class);
691 this.put("Reporter",
692 org.biomage.DesignElement.Reporter.class);
693 this.put("ReporterPosition",
694 org.biomage.DesignElement.ReporterPosition.class);
695 this.put("CompositePosition",
696 org.biomage.DesignElement.CompositePosition.class);
697 this.put("CompositeSequence",
698 org.biomage.DesignElement.CompositeSequence.class);
699 this.put("Feature",
700 org.biomage.DesignElement.Feature.class);
701 this.put("MismatchInformation",
702 org.biomage.DesignElement.MismatchInformation.class);
703 this.put("FeatureInformation",
704 org.biomage.DesignElement.FeatureInformation.class);
705 this.put("CompositeCompositeMap",
706 org.biomage.DesignElement.CompositeCompositeMap.class);
707 this.put("FeatureReporterMap",
708 org.biomage.DesignElement.FeatureReporterMap.class);
709 this.put("ReporterCompositeMap",
710 org.biomage.DesignElement.ReporterCompositeMap.class);
711 this.put("FeatureLocation",
712 org.biomage.DesignElement.FeatureLocation.class);
713 this.put("Describable",
714 org.biomage.Common.Describable.class);
715 this.put("Identifiable",
716 org.biomage.Common.Identifiable.class);
717 this.put("Extendable",
718 org.biomage.Common.Extendable.class);
719 this.put("NameValueType",
720 org.biomage.Common.NameValueType.class);
721 this.put("BioEvent_package",
722 org.biomage.BioEvent.BioEvent_package.class);
723 this.put("Array_package",
724 org.biomage.Array.Array_package.class);
725 this.put("BioAssayData_package",
726 org.biomage.BioAssayData.BioAssayData_package.class);
727 this.put("BioAssay_package",
728 org.biomage.BioAssay.BioAssay_package.class);
729 this.put("Description_package",
730 org.biomage.Description.Description_package.class);
731 this.put("QuantitationType_package",
732 org.biomage.QuantitationType.QuantitationType_package.class);
733 this.put("Protocol_package",
734 org.biomage.Protocol.Protocol_package.class);
735 this.put("Measurement_package",
736 org.biomage.Measurement.Measurement_package.class);
737 this.put("BioSequence_package",
738 org.biomage.BioSequence.BioSequence_package.class);
739 this.put("BQS_package",
740 org.biomage.BQS.BQS_package.class);
741 this.put("Experiment_package",
742 org.biomage.Experiment.Experiment_package.class);
743 this.put("AuditAndSecurity_package",
744 org.biomage.AuditAndSecurity.AuditAndSecurity_package.class);
745 this.put("HigherLevelAnalysis_package",
746 org.biomage.HigherLevelAnalysis.HigherLevelAnalysis_package.class);
747 this.put("DesignElement_package",
748 org.biomage.DesignElement.DesignElement_package.class);
749 this.put("ArrayDesign_package",
750 org.biomage.ArrayDesign.ArrayDesign_package.class);
751 this.put("BioMaterial_package",
752 org.biomage.BioMaterial.BioMaterial_package.class);
753 this.put("HasArray",
754 org.biomage.Interface.HasArray.class);
755 this.put("HasArrayManufactureDeviations",
756 org.biomage.Interface.HasArrayManufactureDeviations.class);
757 this.put("HasFeatureLocation",
758 org.biomage.Interface.HasFeatureLocation.class);
759 this.put("HasScale",
760 org.biomage.Interface.HasScale.class);
761 this.put("HasContacts",
762 org.biomage.Interface.HasContacts.class);
763 this.put("HasFactorValues",
764 org.biomage.Interface.HasFactorValues.class);
765 this.put("HasBioAssay",
766 org.biomage.Interface.HasBioAssay.class);
767 this.put("HasBioAssayCreation",
768 org.biomage.Interface.HasBioAssayCreation.class);
769 this.put("HasBioAssays",
770 org.biomage.Interface.HasBioAssays.class);
771 this.put("HasBioAssayTupleData",
772 org.biomage.Interface.HasBioAssayTupleData.class);
773 this.put("HasFeatureShape",
774 org.biomage.Interface.HasFeatureShape.class);
775 this.put("HasSeqFeatures",
776 org.biomage.Interface.HasSeqFeatures.class);
777 this.put("HasPhysicalBioAssay",
778 org.biomage.Interface.HasPhysicalBioAssay.class);
779 this.put("HasMeasurement",
780 org.biomage.Interface.HasMeasurement.class);
781 this.put("HasControlFeatures",
782 org.biomage.Interface.HasControlFeatures.class);
783 this.put("HasBibliographicReferences",
784 org.biomage.Interface.HasBibliographicReferences.class);
785 this.put("HasSourcesQuantitationType",
786 org.biomage.Interface.HasSourcesQuantitationType.class);
787 this.put("HasBioAssayFactorValues",
788 org.biomage.Interface.HasBioAssayFactorValues.class);
789 this.put("HasClusterBioAssayData",
790 org.biomage.Interface.HasClusterBioAssayData.class);
791 this.put("HasSecurity",
792 org.biomage.Interface.HasSecurity.class);
793 this.put("HasSubregions",
794 org.biomage.Interface.HasSubregions.class);
795 this.put("HasFeatures",
796 org.biomage.Interface.HasFeatures.class);
797 this.put("HasNodeContents",
798 org.biomage.Interface.HasNodeContents.class);
799 this.put("HasType",
800 org.biomage.Interface.HasType.class);
801 this.put("HasQuantitationTypeMapping",
802 org.biomage.Interface.HasQuantitationTypeMapping.class);
803 this.put("HasAdjustments",
804 org.biomage.Interface.HasAdjustments.class);
805 this.put("HasHardwareApplications",
806 org.biomage.Interface.HasHardwareApplications.class);
807 this.put("HasQuantitationDimension",
808 org.biomage.Interface.HasQuantitationDimension.class);
809 this.put("HasComponentCompounds",
810 org.biomage.Interface.HasComponentCompounds.class);
811 this.put("HasParent",
812 org.biomage.Interface.HasParent.class);
813 this.put("HasImmobilizedCharacteristics",
814 org.biomage.Interface.HasImmobilizedCharacteristics.class);
815 this.put("HasBioAssayDataSources",
816 org.biomage.Interface.HasBioAssayDataSources.class);
817 this.put("HasPosition",
818 org.biomage.Interface.HasPosition.class);
819 this.put("HasFeatureGroup",
820 org.biomage.Interface.HasFeatureGroup.class);
821 this.put("HasMeasuredBioAssayTarget",
822 org.biomage.Interface.HasMeasuredBioAssayTarget.class);
823 this.put("HasDesignElementDimension",
824 org.biomage.Interface.HasDesignElementDimension.class);
825 this.put("HasArrayGroup",
826 org.biomage.Interface.HasArrayGroup.class);
827 this.put("HasDesignElementMaps",
828 org.biomage.Interface.HasDesignElementMaps.class);
829 this.put("HasBioAssayDimension",
830 org.biomage.Interface.HasBioAssayDimension.class);
831 this.put("HasQualityControlStatistics",
832 org.biomage.Interface.HasQualityControlStatistics.class);
833 this.put("HasZoneGroups",
834 org.biomage.Interface.HasZoneGroups.class);
835 this.put("HasNormalizationDescription",
836 org.biomage.Interface.HasNormalizationDescription.class);
837 this.put("HasWriteGroups",
838 org.biomage.Interface.HasWriteGroups.class);
839 this.put("HasZoneLocations",
840 org.biomage.Interface.HasZoneLocations.class);
841 this.put("HasExperimentDesign",
842 org.biomage.Interface.HasExperimentDesign.class);
843 this.put("HasPositionDelta",
844 org.biomage.Interface.HasPositionDelta.class);
845 this.put("HasDistanceUnit",
846 org.biomage.Interface.HasDistanceUnit.class);
847 this.put("HasQuantitationTypeMaps",
848 org.biomage.Interface.HasQuantitationTypeMaps.class);
849 this.put("HasDerivedBioAssayDataTarget",
850 org.biomage.Interface.HasDerivedBioAssayDataTarget.class);
851 this.put("HasReplicateDescription",
852 org.biomage.Interface.HasReplicateDescription.class);
853 this.put("HasSurfaceType",
854 org.biomage.Interface.HasSurfaceType.class);
855 this.put("HasTargetQuantitationType",
856 org.biomage.Interface.HasTargetQuantitationType.class);
857 this.put("HasPhysicalBioAssayData",
858 org.biomage.Interface.HasPhysicalBioAssayData.class);
859 this.put("HasTarget",
860 org.biomage.Interface.HasTarget.class);
861 this.put("HasDesignProviders",
862 org.biomage.Interface.HasDesignProviders.class);
863 this.put("HasMismatchInformation",
864 org.biomage.Interface.HasMismatchInformation.class);
865 this.put("HasFailTypes",
866 org.biomage.Interface.HasFailTypes.class);
867 this.put("HasAnalysisResults",
868 org.biomage.Interface.HasAnalysisResults.class);
869 this.put("HasDataType",
870 org.biomage.Interface.HasDataType.class);
871 this.put("HasBiologicalCharacteristics",
872 org.biomage.Interface.HasBiologicalCharacteristics.class);
873 this.put("HasPhysicalBioAssaySource",
874 org.biomage.Interface.HasPhysicalBioAssaySource.class);
875 this.put("HasArrayDesign",
876 org.biomage.Interface.HasArrayDesign.class);
877 this.put("HasMaterialType",
878 org.biomage.Interface.HasMaterialType.class);
879 this.put("HasCategory",
880 org.biomage.Interface.HasCategory.class);
881 this.put("HasCoordinate",
882 org.biomage.Interface.HasCoordinate.class);
883 this.put("HasImages",
884 org.biomage.Interface.HasImages.class);
885 this.put("HasCompositeCompositeMaps",
886 org.biomage.Interface.HasCompositeCompositeMaps.class);
887 this.put("HasDescriptions",
888 org.biomage.Interface.HasDescriptions.class);
889 this.put("HasSourceBioAssays",
890 org.biomage.Interface.HasSourceBioAssays.class);
891 this.put("HasHardware",
892 org.biomage.Interface.HasHardware.class);
893 this.put("HasSubstrateType",
894 org.biomage.Interface.HasSubstrateType.class);
895 this.put("HasTechnologyType",
896 org.biomage.Interface.HasTechnologyType.class);
897 this.put("HasPerformers",
898 org.biomage.Interface.HasPerformers.class);
899 this.put("HasDerivedBioAssayData",
900 org.biomage.Interface.HasDerivedBioAssayData.class);
901 this.put("HasDatabaseReferences",
902 org.biomage.Interface.HasDatabaseReferences.class);
903 this.put("HasReporter",
904 org.biomage.Interface.HasReporter.class);
905 this.put("HasQuantitationType",
906 org.biomage.Interface.HasQuantitationType.class);
907 this.put("HasTopLevelBioAssays",
908 org.biomage.Interface.HasTopLevelBioAssays.class);
909 this.put("HasContainedFeatures",
910 org.biomage.Interface.HasContainedFeatures.class);
911 this.put("HasBioMaterial",
912 org.biomage.Interface.HasBioMaterial.class);
913 this.put("HasProtocolApplications",
914 org.biomage.Interface.HasProtocolApplications.class);
915 this.put("HasPerformer",
916 org.biomage.Interface.HasPerformer.class);
917 this.put("HasExperimentalFactor",
918 org.biomage.Interface.HasExperimentalFactor.class);
919 this.put("HasParameterTypes",
920 org.biomage.Interface.HasParameterTypes.class);
921 this.put("HasChannels",
922 org.biomage.Interface.HasChannels.class);
923 this.put("HasOntologyEntries",
924 org.biomage.Interface.HasOntologyEntries.class);
925 this.put("HasExternalReference",
926 org.biomage.Interface.HasExternalReference.class);
927 this.put("HasFeatureDefects",
928 org.biomage.Interface.HasFeatureDefects.class);
929 this.put("HasDefectType",
930 org.biomage.Interface.HasDefectType.class);
931 this.put("HasQualityControlDescription",
932 org.biomage.Interface.HasQualityControlDescription.class);
933 this.put("HasBioAssayMapping",
934 org.biomage.Interface.HasBioAssayMapping.class);
935 this.put("HasRoles",
936 org.biomage.Interface.HasRoles.class);
937 this.put("HasCompositePositionSources",
938 org.biomage.Interface.HasCompositePositionSources.class);
939 this.put("HasOntologyReference",
940 org.biomage.Interface.HasOntologyReference.class);
941 this.put("HasBioAssayMapTarget",
942 org.biomage.Interface.HasBioAssayMapTarget.class);
943 this.put("HasSpecies",
944 org.biomage.Interface.HasSpecies.class);
945 this.put("HasCompositeGroups",
946 org.biomage.Interface.HasCompositeGroups.class);
947 this.put("HasPropertySets",
948 org.biomage.Interface.HasPropertySets.class);
949 this.put("HasHardwareManufacturers",
950 org.biomage.Interface.HasHardwareManufacturers.class);
951 this.put("HasCharacteristics",
952 org.biomage.Interface.HasCharacteristics.class);
953 this.put("HasControlType",
954 org.biomage.Interface.HasControlType.class);
955 this.put("HasOwner",
956 org.biomage.Interface.HasOwner.class);
957 this.put("HasQuantitationTypes",
958 org.biomage.Interface.HasQuantitationTypes.class);
959 this.put("HasReporters",
960 org.biomage.Interface.HasReporters.class);
961 this.put("HasNodes",
962 org.biomage.Interface.HasNodes.class);
963 this.put("HasProducerTransformation",
964 org.biomage.Interface.HasProducerTransformation.class);
965 this.put("HasReporterPositionSources",
966 org.biomage.Interface.HasReporterPositionSources.class);
967 this.put("HasFeatureReporterMaps",
968 org.biomage.Interface.HasFeatureReporterMaps.class);
969 this.put("HasFeatureLIMSs",
970 org.biomage.Interface.HasFeatureLIMSs.class);
971 this.put("HasArrays",
972 org.biomage.Interface.HasArrays.class);
973 this.put("HasSoftwares",
974 org.biomage.Interface.HasSoftwares.class);
975 this.put("HasInformation",
976 org.biomage.Interface.HasInformation.class);
977 this.put("HasParameterValues",
978 org.biomage.Interface.HasParameterValues.class);
979 this.put("HasAction",
980 org.biomage.Interface.HasAction.class);
981 this.put("HasActionMeasurement",
982 org.biomage.Interface.HasActionMeasurement.class);
983 this.put("HasAnnotations",
984 org.biomage.Interface.HasAnnotations.class);
985 this.put("HasMerckIndex",
986 org.biomage.Interface.HasMerckIndex.class);
987 this.put("HasProviders",
988 org.biomage.Interface.HasProviders.class);
989 this.put("HasBioAssayTreatments",
990 org.biomage.Interface.HasBioAssayTreatments.class);
991 this.put("HasZone",
992 org.biomage.Interface.HasZone.class);
993 this.put("HasCompound",
994 org.biomage.Interface.HasCompound.class);
995 this.put("HasSoftware",
996 org.biomage.Interface.HasSoftware.class);
997 this.put("HasMembers",
998 org.biomage.Interface.HasMembers.class);
999 this.put("HasSequenceDatabases",
1000 org.biomage.Interface.HasSequenceDatabases.class);
1001 this.put("HasBioDataValues",
1002 org.biomage.Interface.HasBioDataValues.class);
1003 this.put("HasBioAssayData",
1004 org.biomage.Interface.HasBioAssayData.class);
1005 this.put("HasNodeValue",