[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