[DAS] maxbins in DAS1.6?

Andy Jenkinson andy.jenkinson at ebi.ac.uk
Tue Sep 15 13:34:01 UTC 2009


On 15 Sep 2009, at 13:43, Thomas Down wrote:

> On Tue, Sep 15, 2009 at 12:40 PM, Andy Jenkinson <andy.jenkinson at ebi.ac.uk 
> > wrote:
> Yep, it should now be a little easier to tell. Also, the 1.6- 
> compliant version of ProServer will only pass the parameter through  
> to a SourceAdaptor if the adaptor declares support for it. This is  
> one of the ways I hope to encourage compliance with the parts of the  
> spec that usually get neglected - i.e. metadata. Ideally clients  
> would work on the same principle, i.e. if maxbins is not declared as  
> a capability, it won't be sent in the request. More tolerant clients  
> tend to result in inconsistent implementations in servers. Another  
> way is that the registry will check for capabilities that are  
> supported but not declared. Hopefully we can establish both  
> incentive and necessity to describe sources accurately.
>
> Thanks.  I've just patched svn-latest Dazzle so it sends X-DAS- 
> Capabilities: maxbins/1.0 iff the datasource is advertising support  
> (specifically, if it implements the TilingFeatureSource interface),  
> so I guess that's now fairly comparable to how ProServer is behaving?
>
> A couple of issues which come to mind, though:
>
>           1. This is all dependent on multiple-datasource servers  
> being able to return differernt cap-sets for different datasources.   
> Dazzle already has the plumbing for this (and, in fact, has returned  
> different cap-sets for reference and annotation sources for a long  
> time now), but I don't actually see anything in the spec. which  
> explicitly allows this.  Might be worth stating that capabilities  
> are per-datasource?

ProServer also does this, I think this is probably one of those areas  
that when you're immersed in using it on a daily basis like I am seems  
obvious but actually is not! The 1.6 spec has slightly more  
explanation of the server/source paradigm, and I will add some  
examples to the 'capabilities' section to illustrate that the  
capabilities in the header will depend on the request. I can already  
think of one possible area of ambiguity - it is not stated that data  
sources shouldn't report support server-level commands (i.e. the  
sources and dsn commands).

>            2. For some DAS clients (including the one that currently  
> interests me), it's quite likely that a "features" request might  
> well be the first contact the client has with a given server.  But  
> until that first request comes back, how does the client know  
> whether maxbins is appropriate or not?  Right now, I'm probably  
> going to just go ahead, stick maxbins on the first request, then  
> leave it off subsequent requests if the capability is missing from  
> the first response, but that isn't really a good fit to your "strict  
> client" principle.  I suppose the ideal would be some kind of fast  
> "pre-flight" request that can be issued to check a datasource's cap- 
> set, but it's not totally obvious what to use.  A dsn/sources  
> request is definitely no use here, if capabilites are per- 
> datasource.  'types' might not be a bad idea, but I'm a bit  
> reluctant to depend on it because, at least in the past, it's not  
> been widely used (and can be a bit slow if servers want to return  
> type-counts but don't have an efficient way of calculating these).   
> I suppose 'stylesheet' might be to logical choice.  Or just  
> 'features' on a 1-base segment.  Or am I missing something?

Capabilities are stated in the sources document:
<CAPABILITY type="das1:maxbins" />

The only snag is that right now you have to parse all sources.  
Technically both the registry and proserver allow you do do:
http://www.ebi.ac.uk/das-srv/genomicdas/das/sources/eqtl_rat_cis_fat

But IIRC I didn't include this in the spec to keep things simple.



More information about the DAS mailing list