[MOBY-dev] Service inputs: Required or optional?
Ola Spjuth
ola.spjuth at farmbio.uu.se
Thu Nov 1 21:51:46 UTC 2007
Hi,
I have a general question regarding what information is required and
which is optional for different services.
When trying to validatate primary inputs for the service
GeneticMap2GFF , which only takes a GeneticMap as input, I have some
questions how the following should be interpreted:
From Dashboard for reference:
GeneticMap
A genetic map contains mapped loci. The length component should
indicate the length of the map in map units, but does NOT have to be
zero-based; i.e. the length is simply the distance from the most
proximal to the most distal marker on the map, regardless of whether
or not the proximal marker is at position '0' on the map. It is
likely that, in many cases, the namespace and id of this GeneticMap
will be identical to the namespace and id of the 'chromosome'
component of the MappedLoci's MapPosition, but this isn't required if
the various Loci are more sensibly associated with another map.
HAS: MappedLocus [MappedLocus]
HASA: Length [Float]
MappedLocus
A locus that is mapped to a genetic map. the Locus component should
hold a Locus (with the associated namespace and id as appropriate),
while the MapPosition component should hold the chromosome, start,
and end position for that Locus. Start and end may be the same to
indicate point maps rather than range maps.
HASA: Locus [Locus]
HASA: MapPosition
Locus
Descr: A lightweight object representing a Locus. The namespace and
id should indicate the specific Locus being described. The contained
Allele objects may be used to indicate a series of Alleles for that
locus, if appropriate. If there is no Allele information, or if
specification of an Allele is not appropriate (e.g. in the case of a
MappedLocus object), then a single Allele object with blank
namespace, id, and description would be appropriate.
HAS: Allele[Allele]
Allele
Descr: A lightweight object representing an Allele. The namespace
and id should indicate the specific Allele being described. The
contained String object is a human-readable description of the Allele
in whatever form is most appropriate (e.g. the phenotype).
HASA: description [String]
MapPosition
Descr: A position on a genetic map.
HASA: chromosome [String]
HASA: start [Float]
HASA: end [Float]
Please correct me if I'm wrong with the following statements:
1) Primitive MobyObjects cannot have ID and NAMESPACE but must have a
VALUE.
2) A GeneticMap must have at least one (but could have many)
MappedLocus and must have a Length. It must also have an ID and a
Namespace, even though the description says something that it is not
a requirement
3) A MappedLocus must have a Locus and a MapPosition. Judging from
the Descrition it seems that no ID and no NAMESPACE is required. Is
this true, and how can this information be extracted from the DataType?
4) A Locus must have at least one Allele. It seems that it also needs
an ID and a NAMESPACE.
5) A HASA relationship indicates that this object is required, for
example it is not a valid MapPosition if it does not have a
chromosome string-value, and start and end float-values.
I guess my questions boil down to:
How can I tell what parameters are required and which can be omitted
when invoking a service? Can service providers specify that ID and
NAMESPACE are required or optional for a PrimaryInput or is the only
way of knowing this to read the Description (or sometimes comment)?
For simple services (like retrieval from a DB) this is trivial, but
for complex cases (like above) it is still a bit unclear for me. Hope
you can help me out!
Cheers,
.../Ola
More information about the MOBY-dev
mailing list