<?xml version="1.0" encoding="UTF-8"?>
<maWebServiceDocument>

 <dataTypes>

   <MANodeDetail>
      A MouseAtlas anatomy ontology node
     <element>name="accession" type="string" 
              description="MouseAtlas anatomy ontology node accession. Examples: EMAP:20, EMAP:1300, et al" </element>
     <element>name=""group" type="boolean" 
              description="false for component node, true for group node" </element>
     <element>name="name" type="string" 
              description="node name. Examples: inner cell mass, eye, et al" </element>
     <element>name="fullPath" type="string" 
              description="full path name of the node, Examples: mouse.embryo.tail, et al"  </element>
     <element>name="primaryPath" type="boolean" 
              description="true means the fullPath is the unique primary path (no group node in the path) while false means any other path (at least one group node in the path)"  </element>
     <element>name="parentAccession" type="string" 
              description="the node's parent's accession" </element>
     <element>name="stage" type="string" 
              description="stage of the node if it is a timed node or empty if it is a abstract node" </element>
     <element>name="startStage" type="string" 
              description="start stage of (its/the) abstract node" </element>
     <element>name="endStage" type="string" 
              description="end stage of (its/the) abstract node" </element>
   </MANodeDetail>

   <MAGene>
     <element>name="symbol" type="string" 
              description="gene symbol" </element>
     <element>name="name" type="string" 
              description="gene name" </element>
     <element>name="accession" type="string" 
              description="gene MGI accession" </element>
   </MAGene>

   <MAOrganization>
     <element>name="name" type="string" </element>
     <element>name="address" type="string" </element>
     <element>name="city" type="string" </element>
     <element>name="postcode" type="string" </element>
     <element>name="country" type="string" </element>
     <element>name="tel" type="string" </element>
     <element>name="fax" type="string" </element>
     <element>name="url" type="string" </element>
   </MAOrganization>

   <MAPerson>
     <element>name="name" type="string" </element>
     <element>name="tel" type="string" </element>
     <element>name="email" type="string" </element>
     <element>name="organization" type="MAOrganization" </element>
   </MAPerson>


   <MAMutant>
     <element>name="gene" type="string"  </element>
     <element>name="parentOne" type="string"  </element>
     <element>name="parentTwo" type="string"  </element>
   </MAMutant>

   <MAOrganism>
     <element>name="species" type="string"  </element>
     <element>name="strain" type="string"  </element>
     <element>name="sex" type="string"  </element>
     <element>name="wildType" type="boolean"  </element>
     <element>name="mutants" type="array of MAMutant"  </element>
     <element>name="stageMethod" type="string" 
              description="such as TS, dpc" </element>
     <element>name="stageValue" type="string" 
              description="stage value such as 01, 26" </element>
     <element>name="name" type="string"  </element>
     <element>name="accession" type="string"  </element>
   </MAOrganism>

   <MAExperiment>
     <element>name="clearingMethod" type="string"  </element>
     <element>name="embeddingReagent" type="string"  </element>
     <element>name="fixationReagent" type="string"  </element>
     <element>name="gene" type="MAGene"  </element>
     <element> name="signalDetectionMethod" type="string"  </element>
     <element> name="probeNote" type="string"  </element>
     <element> name="specimen" type="MAOrganism"   </element>
     <element> name="specimenNote" type="string"  </element>
     <element> name="specimenType" type="string" 
              description="such as section, wholemount, sectioned wholemount et al" </element>
   </MAExperiment>

   <MAExperimentReporter>
      <extension base="MAExperiment" />
      <element> name="experimentID" type="string"  </element>
      <element> name="reporter" type="string"  </element>
   </MAExperimentReporter>

   <MALink>
      Other linked information of one EMAGE submission
     <element>name="type" type="string" 
              description="link reason such as the same experiment" </element>
     <element>name="accession" type="string" </element>
     <element>name="url" type="string" </element>
   </MALink>

   <MAPublicationVolume>
     <element>name="authors" type="string"  </element>
     <element>name="name" type="string"  </element>
     <element>name="volume" type="string"  </element>
     <element>name="issue" type="string"  </element>
     <element>name="year" type="short"  </element>
     <element>name="publisher" type="short"  </element>
   </MAPublicationVolume>

   <MAPublication>
     <element>name="authors" type="string"  </element>
     <element>name="title" type="string"  </element>
     <element>name="pages" type="string"  </element>
     <element>name="accession" type="string" 
              description="the accession of the article in the Pub Med database" </element>
     <element>name="publicationInfo" type="MAPublicationVolume"  </element>
   </MAPublication>

   <MAProbeISH>
     <extension base="MAProbe" />
     <element>name="cloneName" type="string"  </element>
     <element>name="templateType" type="string" 
              description="cDNA or genomic" </element>
     <element>name="regions" type="array of string" 
              description="5'UTR, 3 UTR and/or ORF" </element>
     <element>name="chemistry" type="string" 
              description="RNA or DNA" </element>
     <element>name="sequences" type="array of MASequence" </element>
   </MAProbeISH>

   <MAExperimentISH>
     <extension base="MAExperiment" />
     <element>name="probe" type="MAProbeISH"  </element>
     <element>name="direction" type="string" 
              description="cDNA or genomic" </element>
     <element>name="label" type="string" 
              description="if the primary detection reagent (i.e. the probe or antibody) was labelled, it is the identity of this label" </element>
   </MAExperimentISH>

   <MAAntibody>
     <extension base="MAProbe" />
     <element>name="antibodyType" type="string"  </element>
     <element>name="sequence" type="MASequence"  </element>
     <element>name="label" type="string" 
              description="if the antibody was labelled, it is the identity of this label" </element>
     <element>name="raisedIn" type="string"  </element>
     <element>name="supplier" type="string" 
              description="antibody supplier name" </element>
     <element>name="catalogueNo" type="string" 
              description="antibody catalogue number" </element>
     <element>name="sequence" type="MASequence" </element>
   </MAAntibody>

   <MAExperimentIHC>
     <extension base="MAExperiment" />
     <element>name="probe" type="MAAntibody"  </element>
     <element>name="antibodyReagents" type="array of string" </element>
   </MAExperimentIHC>

   <MACellLine>
     <element> name="accession" type="string" </element>
     <element> name="name" type="string" </element>
     <element> name="note" type="string" </element>
   </MACellLine>

   <MAMAProbe>
     <element> name="accession" type="string" </element>
     <element> name="name" type="string" </element>
     <element> name="originType" type="string" 
              description="mouse, cellline or other species" </element>
     <element> name="sequenceType" type="string" </element>
     <element>name="cellLine" type="MACellLine"  </element>
     <element>name="organism" type="organism"  </element>
   </MAMAProbe>

   <MASequence>
     <element> name="accession" type="string" </element>
     <element> name="endLoc" type="long" </element>
     <element> name="endLoc" type="long" </element>
     <element> name="sequence" type="string" </element>
   </MASequence>

   <MAAcknowledgement>
     <element>name="person" type="MAPerson" 
              description="person/organisation/group" </element>
     <element>name="project" type="string"  </element>
     <element>name="reason" type="string" </element>
   </MAAcknowledgement>

   <MASubmission>
     <element>name="accession" type="string" 
              description="EMAGE accession such as EMAGE:10" </element>
     <element>name="acknowledgements" type="array of MAAcknowledgement" </element>
     <element>name="stagingQuality" type="string" 
              description="1 for poor, 2 for good and 3 for very good" </element>
     <element>name="assayQuality" type="string" 
              description="1 for poor, 2 for good and 3 for very good" </element>
     <element>name="referenceStage" type="string" 
              description="theiler stage" </element>
     <element>name="status" type="string" 
              description="such as public, editing et al" </element>
     <element>name="history" type="MAHistory" </element>
     <element>name="validation" type="string" 
              description="editor or submitter" </element>
     <element>name="project" type="string"  </element>
     <element>name="authors" type="string"  </element>
     <element>name="investigator" type="MAPerson" </element>
     <element>name="curator" type="MAPerson" </element>
     <element>name="links" type="array of MALink" </element>
     <element>name="publications" type="array of MAPublication" </element>
     <element>name="experiment" type="MAExperiment" 
              description="its instance type determines whether it is ISH, IHC or Repoter experiment" </element>
     <element>name="expressionTexts" type="array of MAExpressionText" 
              description="manual ontology annotations" </element>
     <element>name="comments" type="array of string"  </element>
   </MASubmission>

   <MASubmissionSummary>
      Summary of one EMAGE submission
     <element>name="gene" type="string" 
              description="gene symbol or MGI accession" </element>
     <element>name="stage" type="string" 
              description="theiler stage value such as 01, 10" </element>
     <element>name="accession" type="string" 
              description="EMAGE accession such as EMAGE:10" </element>
     <element>name="stagingQuality" type="string" 
              description="1 for poor, 2 for good and 3 for very good" </element>
     <element>name="assayQuality" type="string" 
              description="1 for poor, 2 for good and 3 for very good" </element>
     <element>name="recentHistory" type="string" </element>
     <element>name="specimenStrain" type="string"  </element>
     <element>name="specimentType" type="string"  </element>
     <element>name="userStage" type="string"
              description="such as TS14, 12 dpc, 12-13 Somit No. et al"  </element>
     <element>name="experimentType" type="string"
              description="such as ish, ihc, reporter"  </element>
     <element>name="genotype" type="string"  </element>
     <element>name="probeName" type="string"  </element>
   </MASubmissionSummary>

   <MAExpressionText>
     <element>name="tissueAccession" type="string" 
              description="ontology node accession such as EMAP:987" </element>
     <element>name="pattern" type="string" 
              description="not applicable, homogeneous, graded, regional, spotted, single cell" </element>
     <element>name="strength" type="string" 
              description="not examined, not detected, detected, strong, moderate, weak, possible" </element>
     <element>name="location" type="string"  </element>
     <element>name="notes" type="string"  </element>
   </MAExpressionText>

   <MAHistory>
     <element>name="accession" type="string"  </element>
     <element>name="resource" type="string"  </element>
     <element>name="type" type="string"  </element>
     <element>name="url" type="string"  </element>
   </MAHistory>

   <MATissueQueryResult>
     <element>name="tissueAccession" type="string" 
              description="ontology node accession such as EMAP:987" </element>
     <element>name="submission" type="array of MASubmissionSummary" </element>
   </MATissueQueryResult>

 </dataTypes>
 
 <WebServiceOperations>

    <getNodeAccession>
       <input>type="array of string" 
              description="its element can be node accession, timed node accession, or a string which may be (part of) the name/synonym of some node" </input>

       <input>type="boolean" 
              description="it is only relevant for non-accession element in the 1st input parameter. true means node name/synonym while false means part of node name/synonym" </input>

       <input>type="boolean" 
              description="it is only relevant for non-accession element in the 1st input parameter. true means node synonym is cosidered while false means node synonym is excluded" </input>

       <output>type="array of string" </output>
    </getNodeAccession>

    <getRootAccession>
       <input>type="string" 
              description="empty: root node accession will be returned. valid stage value or name: root timed node accession will be returned. invalid stage: null will be returned" </input>

       <output>type="string" </output>
    </getRootAccession>

    <getOntology>
       <input>type="string" 
              description="empty: node information will be returned. valid stage value or name: timed node information will be returned. invalid stage: null will be returned" </input>

       <input>type="string" 
              description="stage value of a Theiler stage such as 01, 24" </input>

       <output>type="array of MANodeDetail"
              description="all (timed) node detail information except the root one" </output>
    </getOntology>

    <getOntologyTerm>
       <input>type="boolean" 
              description="true: include synonym, otherwise, exclude them" </input>

       <input>type="string" 
              description="start stage value/name. empty means the 1st stage" </input>

       <input>type="string" 
              description="end stage value/name. empty means the last stage" </input>

       <output>type="string" </output>
    </getOntologyTerm>

    <getTimedNodeAccession>
       <input>type="array of string" 
              description="its element can be node accession, timed node accession, or a string which may be (part of) the name/synonym of some node" </input>

       <input>type="boolean" 
              description="it is only relevant for non-accession element in the 1st input parameter. true means node name/synonym while false means part of node name/synonym" </input>

       <input>type="boolean" 
              description="it is only relevant for non-accession element in the 1st input parameter. true means node synonym is cosidered while false means node synonym is excluded" </input>

       <input>type="array of string" 
              description="stage value/name. empty means all stages" </input>

       <output>type="array of string" </output>
    </getTimedNodeAccession>

    <getAllStageName>
       <output>type="array of Strings"
              description="a list of all possible stage names in order, such as theiler stage names for mouse" </output>
    </getAllStageName>

    <getStageName>
       <input>type="string" 
              description="start stage value/name. empty means the 1st stage" </input>

       <input>type="string" 
              description="end stage value/name. empty means the last stage" </input>

       <output>type="array of string" 
              description="a list of required stage names in order, such as theiler stage names for mouse" </output>
    </getStageName>

    <getAllGene>
       <output>type="array of strig"
              description="a list of all genes (accession or symbol) which have expression data in the EMAGE database" </output>
    </getAllGene>

    <getSubmissionWithoutImage>
       <input>type="String"
              description="EMAGE accession" </input>

       <output>type="MASubmission"
              description="all text information of the EMAGE submission" </output>
    </getSubmissionWithoutImage>

    <getAllSubmissions>
       <output>type="array of MASubmissionSummary"
              description="a list of summary information of all EMAGE submissions in the EMAGE database" </output>
    </getAllSubmissions>

    <getAllSubmissionAccession>
       <output>type="array of string"
              description="all EMAGE submission accessions in the EMAGE database" </output>
    </getAllSubmissionAccession>

    <getAllSubmissionAccession>
       <input>type="String"
              description="EMAGE accession" </input>

       <output>type="array of MAExpressionText"
              description="all of ontology annotation of the specific EMAGE submission" </output>
    </getAllSubmissionAccession>

    <whatEntry>
       <input>type="array of Strings"
              description="a list of gene (accesison or symbol). empty means any gene" </input>

       <input>type="boolean"
              description="only meaningful if the 1st parameter is not empty. true means match gene string exactly, false means case insensitive and partial match" </input>

       <input>type="boolean"
              description="only meaningful if the 1st parameter is not empty. true means to consider gene synonym, false means otherwise" </input>

       <input>type="array of String"
              description="a list of ontology term, timed node accession or node accession". empty means any ontology term or node </input>

       <input>type="boolean"
              description="only meaningful if the 4th parameter is not empty. true means match ontology string exactly, false means case insensitive and partial match" </input>

       <input>type="boolean"
              description="only meaningful if the 4th parameter is not empty. true means to consider ontology synonym, false means otherwise" </input>

       <input>type="array of string"
              description="stage value/name. empty means any stage" </input>

       <input>type="array of string"
              description="expression strength such as strong, detected et al. empty means any gene expression" </input>

       <output>type="array of MASubmissionSummary"
              description="a list of EMAGE submissions which meet the query conditions" </output>
    </whatEntry>

    <whatTissue>
       <input>type="array of Strings"
              description="a list of gene (accesison or symbol). empty means any gene" </input>

       <input>type="boolean"
              description="only meaningful if the 1st parameter is not empty. true means match gene string exactly, false means case insensitive and partial match" </input>

       <input>type="boolean"
              description="only meaningful if the 1st parameter is not empty. true means to consider gene synonym, false means otherwise" </input>

       <input>type="array of string"
              description="stage value/name. empty means any stage" </input>

       <input>type="array of string"
              description="expression strength such as strong, detected et al. empty means any gene expression" </input>

       <output>type="array of MATissueQueryResult"
              description="a list of anatomy node accessions and corresponding EMAGE submissions which are about the specific genes within the specific stage range" </output>
    </whatTissue>

    <getAllAnnotatedTissueAccession>
       <output>type="array of string"
              description="all timed nodes in which there are gene expressions </output>
    </getAllAnnotatedTissueAccession>

 </WebServiceOperations>
</maWebServiceDocument>

