PacBioBaseDataModel

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="xs3p.xsl"?>
<!-- edited with XMLSpy v2016 (x64) (http://www.altova.com) by efayad@pacificbiosciences.com (Pacific Biosciences) -->
<!--W3C XML Schema generated by XMLSpy v2014 sp1 (x64) (http://www.altova.com)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://pacificbiosciences.com/PacBioBaseDataModel.xsd" targetNamespace="http://pacificbiosciences.com/PacBioBaseDataModel.xsd" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:complexType name="AnalogType">
		<xs:complexContent>
			<xs:extension base="BaseEntityType">
				<xs:sequence>
					<xs:element name="Spectrum">
						<xs:annotation>
							<xs:documentation>A vector of probabilities, given in the order of increasing filter-bin wavelength, that light emitted by the analog will fall in the corresponding filter bin of the instrument detection system. By convention, the values are normalized to sum to 1.</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence>
								<xs:element name="Values">
									<xs:complexType>
										<xs:sequence>
											<xs:element name="Value" type="xs:float" maxOccurs="unbounded">
												<xs:annotation>
													<xs:documentation>There should be as many values as specified in the Number of Filter Bins attribute.
Each value is a probability, in the range of [0, 1].</xs:documentation>
												</xs:annotation>
											</xs:element>
										</xs:sequence>
									</xs:complexType>
								</xs:element>
							</xs:sequence>
							<xs:attribute name="NumberFilterBins" type="xs:int" use="required">
								<xs:annotation>
									<xs:documentation>number of bins describing the spectrum, green to red</xs:documentation>
								</xs:annotation>
							</xs:attribute>
						</xs:complexType>
					</xs:element>
					<xs:element name="RelativeAmplitude" type="xs:float">
						<xs:annotation>
							<xs:documentation>Relative intensity of emission vs. a reference analog using standardized metrology – e.g., relative to the amplitude of the “542” analog as measured by the mean DWS pkMid on the Astro instrument.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="IntraPulseXsnCV" type="xs:float">
						<xs:annotation>
							<xs:documentation>The 1-sigma fractional variation of the intra-pulse signal, independent of any Shot noise associated with that signal</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="InterPulseXsnCV" type="xs:float">
						<xs:annotation>
							<xs:documentation>The 1-sigma fractional variation, pulse-to-pulse, of the mean signal level (i.e., the pkMid).</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="DiffusionXsnCV" type="xs:float"/>
				</xs:sequence>
				<xs:attribute name="Base" type="SupportedNucleotides">
					<xs:annotation>
						<xs:documentation>The base label, A, C, T, or G</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="Nucleotide" type="xs:string">
					<xs:annotation>
						<xs:documentation>The type and number of nucleotides on a given analog. e.g. (dT6P)6</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="Wavelength" type="xs:float">
					<xs:annotation>
						<xs:documentation>The peak emission wavelength associated with the dye label in nm.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="CompoundID" type="xs:string">
					<xs:annotation>
						<xs:documentation>Identification code of the final compound.  The suffix ‘N’ should be used to distinguish these values from enzyme identifiers.	e.g. 5031N</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="LotID" type="xs:string">
					<xs:annotation>
						<xs:documentation>Identification code for the build of the final compound, written as initials/date, where date is written as YYYY-MM-DD.	e.g. js/2014-06-30</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="BaseEntityType">
		<xs:annotation>
			<xs:documentation>This is the base element type for all types in this data model</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Extensions" minOccurs="0">
				<xs:complexType>
					<xs:sequence>
						<xs:element ref="ExtensionElement" minOccurs="0" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="Name" type="xs:string">
			<xs:annotation>
				<xs:documentation>A short text identifier; uniqueness not necessary</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="Description" type="xs:string">
			<xs:annotation>
				<xs:documentation>A long text description of the object</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="Tags" type="xs:string">
			<xs:annotation>
				<xs:documentation>A set of keywords assigned to the object to help describe it and allow it to be found via search</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="Format" type="xs:string">
			<xs:annotation>
				<xs:documentation>Optional, but recommended.  The MIME-Type of the referenced file.  See http://www.iana.org/assignments/media-types/media-types.xhtml for examples</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="ResourceId" type="xs:anyURI">
			<xs:annotation>
				<xs:documentation>A uniform resource identifier used to identify a "web" resource. e.g. svc://run/acquisition/alignment/gridding</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="Version" type="xs:string">
			<xs:annotation>
				<xs:documentation>An optional identifier denoting the revision of this particular entity</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="CreatedAt">
			<xs:annotation>
				<xs:documentation>Timestamp designating the creation of this object, relative to UTC; millisecond precision is expected.</xs:documentation>
			</xs:annotation>
			<xs:simpleType>
				<xs:restriction base="xs:dateTime"/>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="ModifiedAt">
			<xs:annotation>
				<xs:documentation>Timestamp designating the modification of this object, relative to UTC; millisecond precision is expected.</xs:documentation>
			</xs:annotation>
			<xs:simpleType>
				<xs:restriction base="xs:dateTime"/>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="StrictEntityType">
		<xs:annotation>
			<xs:documentation>This is the base element type for all types in this data model</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="BaseEntityType">
				<xs:attribute name="UniqueId" use="required">
					<xs:annotation>
						<xs:documentation>A unique identifier, such as a GUID - likely autogenerated</xs:documentation>
					</xs:annotation>
					<xs:simpleType>
						<xs:restriction base="xs:ID">
							<xs:pattern value="[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
				<xs:attribute name="MetaType" type="xs:string" use="required">
					<xs:annotation>
						<xs:documentation>Controlled Vocabulary, meant as a means to group similar entities; the type of the object, e.g. Instrument Run, Secondary Run, Assay, Sample, Barcode, Alignment File, Alarm, Exception, Metric, SystemEvent, etc.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="TimeStampedName" type="xs:string" use="required">
					<xs:annotation>
						<xs:documentation>This is NOT intended to be used as a unique field.  For uniqueness, use UniqueId.  In order to not utilize customer provided names, this attribute may be used as an alternative means of Human Readable ID, e.g. instrumentId-Run-150304_231155</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ConfigSetAnalog">
		<xs:annotation>
			<xs:documentation>An unlimited number of analogs listed for the purposes of hosting in a configuration file. e.g. a list of all possible analogs on the system</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="AnalogType"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="DataEntity" type="DataEntityType"/>
	<xs:complexType name="DataEntityType">
		<xs:annotation>
			<xs:documentation>Extends BaseEntityType and adds a value element.  The intent is to have only one of the value elements exist at any point in time; however, this is not enforced.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="BaseEntityType">
				<xs:sequence>
					<!--xs:element name="EncodedValue" type="xs:base64Binary" nillable="true" minOccurs="0">
						<xs:annotation>
							<xs:documentation>A complex data type element, such as an image, file, binary object, etc.</xs:documentation>
						</xs:annotation>
					</xs:element-->
					<xs:element name="CheckSum" type="xs:string" minOccurs="0">
						<xs:annotation>
							<xs:documentation>small-size datum of the attached value for the purpose of detecting errors or modification which may have been introduced during its transmission or storage</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="ValueDataType" type="SupportedDataTypes" default="Object">
					<xs:annotation>
						<xs:documentation>The datatype of the simple or encoded value.  If not specified, a string is assumed.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="SimpleValue" type="xs:anySimpleType">
					<xs:annotation>
						<xs:documentation>A simple data type element, such as a string, int, float, etc.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="MetaType" type="xs:string">
					<xs:annotation>
						<xs:documentation>Controlled Vocabulary, meant as a means to group similar entities; the type of the object, e.g. Instrument Run, Secondary Run, Assay, Sample, Barcode, Alignment File, Alarm, Exception, Metric, SystemEvent, etc.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="TimeStampedName" type="xs:string">
					<xs:annotation>
						<xs:documentation>This is NOT intended to be used as a unique field.  For uniqueness, use UniqueId.  In order to not utilize customer provided names, this attribute may be used as an alternative means of Human Readable ID, e.g. instrumentId-Run-150304_231155</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="DataPointers">
		<xs:annotation>
			<xs:documentation>Pointer list to UniqueIds in the system</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="DataPointer" type="xs:IDREF" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="DNABarcode">
		<xs:annotation>
			<xs:documentation>Composite of uuid, sequence, and name</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="BaseEntityType">
				<xs:attribute name="DNASequence">
					<xs:annotation>
						<xs:documentation>This is the sample's DNA barcode</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="DyeSetAnalog">
		<xs:annotation>
			<xs:documentation>A set of four analogs, one for each of the nucleotides, grouped together for the purposes of a single experiment.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="AnalogType"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="ExternalResources">
		<xs:annotation>
			<xs:documentation>Pointers to data that do not reside inside the parent structure</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="ExternalResource" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="InputOutputDataType">
		<xs:complexContent>
			<xs:extension base="StrictEntityType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="IndexedDataType">
		<xs:complexContent>
			<xs:extension base="InputOutputDataType">
				<xs:sequence>
					<xs:element name="FileIndices" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="FileIndex" type="InputOutputDataType" maxOccurs="unbounded">
									<xs:annotation>
										<xs:documentation>e.g. index for output files, allowing one to find information in the output file</xs:documentation>
									</xs:annotation>
								</xs:element>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element ref="ExternalResources" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="AutomationType">
		<xs:complexContent>
			<xs:extension base="BaseEntityType">
				<xs:sequence>
					<xs:element name="AutomationParameters" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element ref="AutomationParameter" maxOccurs="unbounded"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element ref="Defaults" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute name="PartNumber" type="xs:string" use="optional">
					<xs:annotation>
						<xs:documentation>Defines a part number, mainly for use in defining incompatibility with other PB kit PNs, if necessary</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="IsRestricted" type="xs:boolean" use="optional" default="false">
					<xs:annotation>
						<xs:documentation>Allows for an automation to be marked for internal use or by admin users only</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="IsObsolete" type="xs:boolean" use="optional" default="false">
					<xs:annotation>
						<xs:documentation>Allows for an automation to be marked as obsolete</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="IsDefault" type="xs:boolean" use="optional" default="false">
					<xs:annotation>
						<xs:documentation>Allows for an automation to be marked as a default for a kit with which it's compatible</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="AutomationParameter" type="DataEntityType">
		<xs:annotation>
			<xs:documentation>One or more collection parameters, such as MovieLength, InsertSize, UseStageStart, IsControl, etc..</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="IncompatiblePairType">
		<xs:annotation>
			<xs:documentation>Describes a bidirectional incompatibility between part numbers.

By default, any PN is compatible for use with other PNs in the system.  In order to exclude the usage of one or more PNs with this one, the pairwise incompatible PNs are listed here.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="BaseEntityType">
				<xs:attribute name="PartA" type="xs:string" use="required">
					<xs:annotation>
						<xs:documentation>An automation or kit Part Number that's incompatible with Part Number B</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="PartB" type="xs:string" use="required">
					<xs:annotation>
						<xs:documentation>An automation or kit Part Number that's incompatible with Part Number A</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="AutomationConstraintType">
		<xs:annotation>
			<xs:documentation>This data type defines constraints that an automation has.  The information here, along with the availability of an exclusionary list of automations in the PartNumberType, allows for defining a robust compatibility matrix.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="BaseEntityType">
				<xs:sequence>
					<xs:element name="Automations" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Names of automations that are all similarly constrained</xs:documentation>
						</xs:annotation>
						<xs:complexType>
							<xs:sequence>
								<xs:element name="Automation" type="AutomationType" maxOccurs="unbounded"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="SupportsCellReuse" type="xs:boolean">
					<xs:annotation>
						<xs:documentation>Does this automation support cell reuse?</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="SupportsStageStart" type="xs:boolean">
					<xs:annotation>
						<xs:documentation>Does this automation support hot-start on the stage?</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="MaxCollectionsPerCell" type="xs:int">
					<xs:annotation>
						<xs:documentation>If cell reuse is supported (i.e. above attribute is true) how many times can the cell be reused?</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="MinMovieLength" type="xs:int">
					<xs:annotation>
						<xs:documentation>Minimum length of movie acquisition</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="MaxMovieLength" type="xs:int">
					<xs:annotation>
						<xs:documentation>Maximum length of movie acquisition</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="MinInsertSize" type="xs:int">
					<xs:annotation>
						<xs:documentation>Minimum recommended insert size</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="MaxInsertSize" type="xs:int">
					<xs:annotation>
						<xs:documentation>Maximum recommended insert size</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="PartNumberType">
		<xs:annotation>
			<xs:documentation>Generic representation of a supply kit. 

If the part number has an NFC associated with it, the contents of the NFC may be encoded here.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="DataEntityType">
				<xs:sequence>
					<xs:element ref="Defaults" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute name="PartNumber" type="xs:string">
					<xs:annotation>
						<xs:documentation>The kit part number</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="LotNumber" type="xs:string">
					<xs:annotation>
						<xs:documentation>The kit lot number</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="Barcode" type="xs:string">
					<xs:annotation>
						<xs:documentation>The kit barcode; used for tracking purposes.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="ExpirationDate" type="xs:date">
					<xs:annotation>
						<xs:documentation>The kit's shelf life</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="IsObsolete" type="xs:boolean" default="false"/>
				<xs:attribute name="IsRestricted" type="xs:boolean" default="false"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="RecordedEventType">
		<xs:annotation>
			<xs:documentation>Metrics, system events, alarms, and logs may utilize this type</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="DataEntityType">
				<xs:attribute name="Context" type="xs:string">
					<xs:annotation>
						<xs:documentation>The part of the system in effect when the event was recorded</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="SequencingChemistry">
		<xs:annotation>
			<xs:documentation>A container for a set of analogs</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="DataEntityType">
				<xs:sequence>
					<xs:element name="DyeSet">
						<xs:complexType>
							<xs:complexContent>
								<xs:extension base="BaseEntityType">
									<xs:sequence>
										<xs:element name="Analogs">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Analog" type="AnalogType" maxOccurs="4"/>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:extension>
							</xs:complexContent>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="PacBioSequencingChemistry">
		<xs:annotation>
			<xs:documentation>Root element for document containing the container of analog set, SequencingChemistryConfig</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="ChemistryConfig"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="SequencingChemistryConfig">
		<xs:annotation>
			<xs:documentation>A container for a set of analogs</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="DataEntityType">
				<xs:sequence>
					<xs:element name="Analogs">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="Analog" type="AnalogType" maxOccurs="4"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="DefaultLaserSetPoint" type="xs:float">
						<xs:annotation>
							<xs:documentation>The laser power at the input couple, needed to achieve predefined performance requirements based on a median 'golden' SMRT Cell.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="SNRCut" type="xs:float">
						<xs:annotation>
							<xs:documentation>The SNRCut is applied in PPA (baz2bam) as a read-quality filter.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="TargetSNR">
						<xs:complexType>
							<xs:attribute name="SNR_A" type="xs:float" use="required"/>
							<xs:attribute name="SNR_C" type="xs:float" use="required"/>
							<xs:attribute name="SNR_G" type="xs:float" use="required"/>
							<xs:attribute name="SNR_T" type="xs:float" use="required"/>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="StatsContinuousDistType">
		<xs:annotation>
			<xs:documentation>Continuous distribution class</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="BaseEntityType">
				<xs:sequence>
					<xs:element name="SampleSize" type="xs:int"/>
					<xs:element name="SampleMean" type="xs:float"/>
					<xs:element name="SampleMed" type="xs:float"/>
					<xs:element name="SampleStd" type="xs:float"/>
					<xs:element name="Sample95thPct" type="xs:float"/>
					<xs:element name="NumBins" type="xs:int"/>
					<xs:element name="BinCounts">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="BinCount" type="xs:int" maxOccurs="unbounded"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="BinWidth" type="xs:float"/>
					<xs:element name="MinOutlierValue" type="xs:float" minOccurs="0"/>
					<xs:element name="MinBinValue" type="xs:float" minOccurs="0"/>
					<xs:element name="MaxBinValue" type="xs:float" minOccurs="0"/>
					<xs:element name="MaxOutlierValue" type="xs:float" minOccurs="0"/>
					<xs:element name="MetricDescription" type="xs:string"/>
				</xs:sequence>
				<xs:attribute name="Channel" type="xs:string"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="StatsDiscreteDistType">
		<xs:annotation>
			<xs:documentation>Discrete distribution class</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="BaseEntityType">
				<xs:sequence>
					<xs:element name="NumBins" type="xs:int"/>
					<xs:element name="BinCounts">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="BinCount" type="xs:int" maxOccurs="unbounded"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="MetricDescription" type="xs:string"/>
					<xs:element name="BinLabels">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="BinLabel" type="xs:string" maxOccurs="unbounded"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="StatsTimeSeriesType">
		<xs:annotation>
			<xs:documentation>Time series (for time-dependent metrics)</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="BaseEntityType">
				<xs:sequence>
					<xs:element name="TimeUnits" type="xs:string"/>
					<xs:element name="ValueUnits" type="xs:string"/>
					<xs:element name="StartTime" type="xs:float"/>
					<xs:element name="MeasInterval" type="xs:float"/>
					<xs:element name="Values" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="Val" type="xs:float" minOccurs="0" maxOccurs="unbounded"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="SupplyKitBinding">
		<xs:annotation>
			<xs:documentation>A more specific binding kit representation (includes SupplyKit fields). </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="PartNumberType">
				<xs:sequence>
					<xs:element name="Control" type="SupplyKitControl" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Defines the binding kit internal control name.  Present when used, otherwise not used if not defined. </xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="IsControlUsed" type="xs:boolean" minOccurs="0">
						<xs:annotation>
							<xs:documentation>True if the control was used during run, otherwise false. </xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="SupplyKitCellPack">
		<xs:annotation>
			<xs:documentation>Represents the package of cells. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="PartNumberType">
				<xs:sequence>
					<xs:element name="ChipLayout" type="xs:string" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Defines the internal chip layout name, if any. </xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="SupportsCellReuse">
					<xs:annotation>
						<xs:documentation>If SupportsCellReuse is true, it can be used for regular sequencing as well as in a reuse scenario.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="SupplyKitControl">
		<xs:annotation>
			<xs:documentation>Represents the DNA control complex. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="PartNumberType">
				<xs:sequence>
					<xs:element name="InternalControlName" type="xs:string" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Defines the internal control name, if any. </xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="CustomSequence" type="xs:string" nillable="true" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="SupplyKitTemplate">
		<xs:annotation>
			<xs:documentation>A more specific template kit representation (includes SupplyKit fields). </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="PartNumberType">
				<xs:sequence>
					<xs:element name="LeftAdaptorSequence" type="xs:string" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Left adapter DNA sequence.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="LeftPrimerSequence" type="xs:string" minOccurs="0"/>
					<xs:element name="RightAdaptorSequence" type="xs:string" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Right adapter DNA sequence.  If not specified, a symmetric adapter model is inferred, where the left adapter sequence is used wherever needed.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="RightPrimerSequence" type="xs:string" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Right primaer sequence.  If not specified, a symmetric model is inferred, where the left primer sequence is used wherever needed.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="MinInsertSize" type="xs:int">
					<xs:annotation>
						<xs:documentation>Minimum recommended insert size</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="MaxInsertSize" type="xs:int">
					<xs:annotation>
						<xs:documentation>Maximum recommended insert size</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:simpleType name="SupportedAcquisitionStates">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Ready"/>
			<xs:enumeration value="Initializing"/>
			<xs:enumeration value="SocketDiagnostics"/>
			<xs:enumeration value="Acquiring"/>
			<xs:enumeration value="Aligning"/>
			<xs:enumeration value="Aligned"/>
			<xs:enumeration value="Aborting"/>
			<xs:enumeration value="Aborted"/>
			<xs:enumeration value="Failed"/>
			<xs:enumeration value="Completing"/>
			<xs:enumeration value="Complete"/>
			<xs:enumeration value="Calibrating"/>
			<xs:enumeration value="Unknown"/>
			<xs:enumeration value="Pending"/>
			<xs:enumeration value="ReadyToCalibrate"/>
			<xs:enumeration value="CalibrationComplete"/>
			<xs:enumeration value="ReadyToAcquire"/>
			<xs:enumeration value="FinishingAnalysis"/>
			<xs:enumeration value="PostPrimaryPending"/>
			<xs:enumeration value="PostPrimaryAnalysis"/>
			<xs:enumeration value="TransferPending"/>
			<xs:enumeration value="TransferringResults"/>
			<xs:enumeration value="Error"/>
			<xs:enumeration value="Stopped"/>
			<xs:enumeration value="TransferFailed"/>
			<xs:enumeration value="InPrep"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="SupportedDataTypes">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Int16"/>
			<xs:enumeration value="Int32"/>
			<xs:enumeration value="Int64"/>
			<xs:enumeration value="UInt16"/>
			<xs:enumeration value="UInt32"/>
			<xs:enumeration value="UInt64"/>
			<xs:enumeration value="Boolean"/>
			<xs:enumeration value="Single"/>
			<xs:enumeration value="Double"/>
			<xs:enumeration value="String"/>
			<xs:enumeration value="DateTime"/>
			<xs:enumeration value="Int16_1D"/>
			<xs:enumeration value="Int32_1D"/>
			<xs:enumeration value="Int64_1D"/>
			<xs:enumeration value="UInt16_1D"/>
			<xs:enumeration value="UInt32_1D"/>
			<xs:enumeration value="UInt64_1D"/>
			<xs:enumeration value="Boolean_1D"/>
			<xs:enumeration value="Single_1D"/>
			<xs:enumeration value="Double_1D"/>
			<xs:enumeration value="String_1D"/>
			<xs:enumeration value="DateTime_1D"/>
			<xs:enumeration value="Int16_2D"/>
			<xs:enumeration value="Int32_2D"/>
			<xs:enumeration value="Int64_2D"/>
			<xs:enumeration value="UInt16_2D"/>
			<xs:enumeration value="UInt32_2D"/>
			<xs:enumeration value="UInt64_2D"/>
			<xs:enumeration value="Boolean_2D"/>
			<xs:enumeration value="Single_2D"/>
			<xs:enumeration value="Double_2D"/>
			<xs:enumeration value="String_2D"/>
			<xs:enumeration value="DateTime_2D"/>
			<xs:enumeration value="XML"/>
			<xs:enumeration value="JSON"/>
			<xs:enumeration value="Object"/>
			<xs:enumeration value="Other"/>
			<xs:enumeration value="Unknown"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="SupportedNucleotides">
		<xs:restriction base="xs:string">
			<xs:enumeration value="A"/>
			<xs:enumeration value="C"/>
			<xs:enumeration value="T"/>
			<xs:enumeration value="G"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="SupportedRunStates">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Ready"/>
			<xs:enumeration value="Idle"/>
			<xs:enumeration value="System Test"/>
			<xs:enumeration value="Starting"/>
			<xs:enumeration value="Running"/>
			<xs:enumeration value="Aborting"/>
			<xs:enumeration value="Aborted"/>
			<xs:enumeration value="Terminated"/>
			<xs:enumeration value="Completing"/>
			<xs:enumeration value="Complete"/>
			<xs:enumeration value="Paused"/>
			<xs:enumeration value="Unknown"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="UserDefinedFieldsType">
		<xs:sequence>
			<xs:element name="DataEntities" type="DataEntityType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="ValueDataType" type="SupportedDataTypes"/>
	<!-- The base supply kit definition -->
	<xs:element name="ExtensionElement" type="xs:anyType">
		<xs:annotation>
			<xs:documentation>A generic element whose contents are undefined at the schema level.  This is used to extend the data model.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="FilterType">
		<xs:sequence>
			<xs:element name="Properties">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Property" maxOccurs="unbounded">
							<xs:complexType>
								<xs:attribute name="Name" type="xs:string" use="required"/>
								<xs:attribute name="Value" type="xs:string" use="required"/>
								<xs:attribute name="Operator" type="xs:string" use="required"/>
								<xs:attribute name="Feature" type="xs:string" use="optional"/>
								<xs:attribute name="Assignment" type="xs:string" use="optional"/>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="ExternalResource">
		<xs:annotation>
			<xs:documentation>for example, an output file could be the BAM file, which could be associated with multiple indices into it.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="IndexedDataType"/>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:element name="KeyValueMap">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="Items">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="Item" type="MapItemType" minOccurs="0" maxOccurs="unbounded"/>
						</xs:sequence>
					</xs:complexType>
					<xs:unique name="Item">
						<xs:selector xpath="Item"/>
						<xs:field xpath="Key"/>
					</xs:unique>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="MapType">
		<xs:sequence>
			<xs:element ref="KeyValueMap"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="MapItemType">
		<xs:sequence>
			<xs:element name="Key" type="xs:ID"/>
			<xs:element name="Value" type="xs:anyType"/>
			<xs:element name="Description" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="ChemistryConfig" type="SequencingChemistryConfig"/>
    <xs:element name="Defaults" type="DefaultsType" nillable="true">
        <xs:annotation>
            <xs:documentation>Default paramaters and filters which may be applied to PartNumber types in order to constrain them via parameterization</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:complexType name="DefaultsType">
        <xs:annotation>
            <xs:documentation>A data type that allows the definition of default paramaters and filters.  This structure may be applied to PartNumber types in order to constrain them via parameterization</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="AutomationParameters" nillable="true" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element ref="AutomationParameter" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="Filters" nillable="true" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Filter" type="FilterType" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
</xs:schema>