From: Adrian R. T. <ar...@sa...> - 2002-10-28 00:52:14
|
Hi, Following on from our discussion on Thursday this is to announce where to find our latest code/site. http://www2.genedb.org/gusapp/servlet?page=boolq is a good place to start (Please don't advertise!). It should be running again later today, but we currently have system problems and I can only log in intermittenly. Future plans ============ At the moment it's not tied in properly via the navbar, and there's a couple of extra queries/bug fixes we want to get working. Once they're there and it's been tested a bit we'll switch it onto www.genedb.org. Our hope is this can be virtually frozen from a development point of view, with weekly data updates. Then we can start focussing our efforts on GUS3. Ideally we'd like to keep the hybrid pointing at our copy of GUSdev simply to save migrating to GUS3. Our development targets are then loading all our data into GUS3 and continue to work on the new web front-end/schema. Once the web front-end is sufficiently developed we can switch www over to the new code/schema. The only downside is that it doesn't look like anything is happening to GeneDB over this period as all the changes are happening behind the scenes. Changes to the GUS code - why ============================= The curators felt that the query options should be more organism specific eg if you're a tryp person and choose "GO component" you should only see the GO terms curated to features in T. brucei. Changes to the GUS code - technical =================================== The changes to the CBIL code are pretty minimal. The real change is moving some of the object creation away from the configFile into Factories. The configFile is still used to control the Factories. Deferring the object creation to runtime allows us to modify the objects based on organism. The code is stored at: http://cvs.sanger.ac.uk/cgi-bin/cvsweb.cgi/genedb/hybrid/?cvsroot=Pathogen Please let us know if you have trouble accessing it. I was originally planning to store any modified code in the org.gene.hybrid package but a couple of the classes were hard-coded or required package-private access. In the former I've modified the classes in situ, in the latter added new versions in the cbil heirachy called GeneDB... GeneDBQueryPage: Based heavily on BooleanQueryPage. First checks if a organism has been selected and sends you away (currently to a static list) to choose one if not. The other change is, just before finally evaluating the query tree, to add a new root node which is "select all features for given organism" and "AND"ing that in. (It'd possibly be more efficient to restrict each query to be organism specific, but doing it like this means the organism shows up on the result page and the history page) SqlQuerySetFactory: rather than passing a SqlQuerySet to the query page, you pass a factory. This factory is configured using the configFile as normal. You pass it a QuerySet which is a superset of all the queries available across all organisms. You can also pass in Options which is a list of which queries are available for which organism. If an organism isn't specifed here it's assumed to want the entire range of queries. (Format queryFactory.Options=org1,queryName1:qn2:qn3,\ org2,qn3,qn4,\ etc) SqlQueryParamFactory: the SqlQuerySetFactory also has a reference to a SqlQueryParamFactory. It uses this to replace the parameter names in the query with real Params. For most types this is a trivial substitution, the only case I've overridden is SqlEnumParam. By convention this now has a substitution for organism name in the SQl query. The factory makes the substitution and returns an organism-specific SqlEnumParam (which is slotted into the SqlQuery which is put into an organism-specific SqlQuerySet, which is passed back to the QueryPage, which treats it as usual) There were a few other minor changes (eg to SqlQuery to allow it to take either Params or names of Params) If you have any questions please don't hesitate to ask. Adrian |