Region Search
#
Configurationstruts-config-model.xml
tiles-defs-model.xml
struts-config-form-model.xml
model.properties
web.properties
Update defaultOrganisms property as needed
to disable genomic region search, set
genomicRegionSearch.display =
false
also add
genomicRegionSearch
tolayout.fixed
, e.g.
- add to '''genomic_precompute.properties''', note: do not duplicate the query number
#
Region Search V2Search page
This page can be kept as it is, but the query can be constructed and sent to the server side by webservice. The Structs elements can be removed.
GenomicRegionSearchService
This class has the methods to:
- generate data (JSON) for search page
- parse search form and valid input
- generate search queries (one region with one query)
- generate results table and download/galaxy links
This class can be basically replaced by webservices + html
Update IQL query to pathquery
Currently, region query is constructed by lQL (Intermine Query Language) due to lack of implementation on range constraint in pathquery at the time we developed it. Update IQL to pathqueries and send by webserive, the output will be a list of results tables or a single results table grouped by region.
See GenomicRegionSearchUtil.java#L270-497
Query fields:
In the IQL see GenomicRegionSearchUtil.java#L318-323
In ResultRow see GenomicRegionSearchQueryRunner.java#L186-212
In Results table see GenomicRegionSearchService.java#L1106-1112
Polling
We created a synchronizedMap to hold all the query results and put it in an http request. On the results page, there is a checker (javascript) checking the size of the map, so a progress bar will be updating. The results table will be generated once 10 results return, the pager will be updated dynamically. The whole part will be replaced by InterMine results table.
See GenomicRegionSearchQueryRunner.java#L129-223
Results table and download links. Replaced by InterMine results table.
#
Adding the strand specific search optionSince InterMine 1.7, there is an additional feature on the Region Search page to restrict searches to a specific strand. The user activates this by ticking a checkbox. For example, Chr1:12345-23456 indicates a region on the + strand; Chr1:23456-12345 indicates a region on the - strand. One situation in which this is useful is when you have a series of BLAST-generated regions on which you'd like to search for upstream gene flanking regions. In this case, there is no point in matching with gene flanking regions on the opposite strand.
However, adding this feature to the Region Search page requires a new entry in an InterMine installation's struts-config-form-model.xml
file. A new InterMine installation will have this entry but existing updated InterMine installations will not. Therefore, to add this feature for an existing InterMine installation, the steps are to
Add a strandSpecific form property to the installations Region Search form in $MINE/webapp/resources/struts-config-form-model.xml
Activate this by setting the following property in
web.properties
If this feature is not present or the checkbox is unchecked, then the default behaviour remains, i.e. to search both strands.