Skip to content
This repository was archived by the owner on Apr 27, 2021. It is now read-only.

Commit

Permalink
Rearranged the architecture of the module by removing the src subfold…
Browse files Browse the repository at this point in the history
…er alltogether

Added xml version and encoding to every XML file

Included a generic/standard build.xml file

Added queries metadata files where appropriate, modified existing ones by adding descriptions

Added Axes and Projection queries and corresponding metadata files instead of clumsy inline SQL code and 'manual' array stores

Added ParentPopulation query and corresponding metadata, moved the generic Population query to OpenCytoPreprocessing module

StudyVars.sql : added AnalysisId to the query

Load.R :
- removed legacy code
- included a snippet that allows for an existing session with an already loaded gating set list to be reused

Plot.R :
- removed lagacy code
- included a snippet that allows for an existing session with an already loaded gating set list to be reused
- changed concatenated string with a fixed token into a JSON-encoded format
- added inputing of a binning parameter
- added inputing of an overlay parameter
- streamlined the code

Added Load.report.xml and Plot.report.xml metafile to hide the Load.R report

begin.html :
- removed unconditional jQuery inclusion, added conditional jQuery if it's not present yet, also added FancyBox plug-in
- changed to newer system API

begin.view.xml :
- added FancyBox, Spinner, and GridFilters and removed LovCombo and SuperBoxSelect CSS dependencies
- removed SuperBoxSelect, LovCombo (and it extension) JS libraries dependencies
- added FancyBox, Spinner, GridFilters, MsgBus, and Ext3 libraries dependencies
- combined Resizable and Clearable Combo libraries into one ExtendedComboBox JS one

OpenCytoVisualization.js :
- added plot options for 1) enabling/disabling binning with 5 options, powers of 2 from 32 to 512; and 2) enabling/disabling aspect ratio controls
- added customized robust loadexception handler to FilteredTable store as well as regular loadexception handler to all other Labkey stores
- added functionality so that if an Rserve session dedicated to this module already exists, then reuse it
- created a custom onRender() function for CheckBoxes to allow for inclusion of a custom CSS class
- added 'built-in' filtering capability into the GridPanel instead of separate combo boxes
- added a button to swap the values of the x-y axes
- replaced HTML generation with a more streamlined layout containers
- added MsgBus to detect changes in OpenCytoPreprocessing's state
- added CheckBoxMemory plugin to make sure selected checkboxes are preserved across reloads and filtering
- added dynamic width determination for all of the panels when resizing the browser window
- created mechanisms, so that if an error occurs either during disk data load or during database data load, this is handled appropriately
- added custom renderers for the columns of the GridPanel, so the column headers as well as individual cells now have quick tips and files column contains links to Labkey pages with a file's detailed information
- added FancyBox functionality to the displayed image
- addded custom toolbar functionality, which allows proper overflow capability, close #32
- changed concatenated string with a fixed token into a JSON-encoded format, close #31
- added custom sorting capability to ParentPopulation combo box so that sorting is such that 'root' is always on top, close #30
- rewrote the image generation from the old web part based approach to the new execute() one, close #29
- added filtering to the overlay combo box so that only populations, which are downstream from the selected in the ParentPopulation combo box, close #28
- made appropriate changes to reflect the fixes to the generated image ids, close #27
- no longer relevant, close #26, close #25, close #21, close #10, close #9, close #8, close #7, close #6
  • Loading branch information
Lev Dashevskiy committed Mar 27, 2014
1 parent 53a03d5 commit b7874d1
Show file tree
Hide file tree
Showing 33 changed files with 2,309 additions and 2,050 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
src/config/module.xml
config/module.xml

# OS generated files #
######################
Expand Down
97 changes: 49 additions & 48 deletions build.xml
Original file line number Diff line number Diff line change
@@ -1,50 +1,51 @@
<project name="OpenCytoVisualization" basedir="." default="deploy">

<property environment="env"/>
<property name="project.root" value="../../.."/>
<property name="staging.modules.dir" value="${project.root}/build/staging/modules"/>
<property name="deploy.modules.dir" value="${project.root}/build/deploy/modules"/>

<property name="module.name" value="OpenCytoVisualization"/>
<property name="module.file" value="OpenCytoVisualization.module"/>
<property name="module.src.dir" value="${basedir}/src"/>

<target name="init">
<ant target="query_svn_number" dir="${project.root}/server" inheritall="false"/>
<tstamp>
<format property="buildtime" pattern="MMMM d yyyy, h:mm aa" />
</tstamp>
</target>

<target name="module.properties" depends="init">
<mkdir dir="${module.src.dir}/config"/>
<copy tofile="${module.src.dir}/config/module.xml" file="${basedir}/module.template.xml" overwrite="true">
<filterset begintoken="@@" endtoken="@@">
<filtersfile file="${basedir}/module.properties" />
<filtersfile file="${project.root}/build/svn.properties"/>
<filter token="RequiredServerVersion" value="${RequiredServerVersion}" />
<filter token="ModuleDependencies" value="" />
<filter token="BuildTime" value="${buildtime}" />
<filter token="BuildOS" value="${os.name}" />
<filter token="BuildUser" value="${user.name}" />
<filter token="BuildPath" value="${deploy.modules.dir}/${module.name}" />
<filter token="SourcePath" value="${basedir}/src" />
<filter token="URL" value="Not built from a Subversion source tree" />
<filter token="Revision" value="Not built from a Subversion source tree" />
</filterset>
</copy>
</target>

<target name="stage" depends="module.properties">
<jar jarfile="${staging.modules.dir}/${module.file}">
<fileset dir="${module.src.dir}">
<include name="**/*"/>
</fileset>
</jar>
</target>

<target name="deploy" depends="stage">
<copy todir="${deploy.modules.dir}" file="${staging.modules.dir}/${module.file}" />
</target>
<?xml version='1.0' encoding='UTF-8'?>

<project name='LabKeyModules' default='deploy' basedir='.'>

<property environment='env'/>

<target name='init'>
<property name='modules.dir' value='${env.MODULES_DIR}'/>
<property name='moduleDir' location='${basedir}'/>
<basename property='module.name' file='${moduleDir}'/>
<property name='module.src.dir' value='${basedir}'/>
<property name='build.modules.dir' location='${basedir}/..'/>
</target>

<target name='module.properties' depends='init'>
<mkdir dir='${module.src.dir}/config'/>
<tstamp>
<format property='buildtime' pattern='MMMM d yyyy, h:mm aa'/>
</tstamp>
<copy tofile='${module.src.dir}/config/module.xml' file='${basedir}/module.template.xml' overwrite='true'>
<filterset begintoken='@@' endtoken='@@'>
<filtersfile file='${basedir}/module.properties'/>
<filter token='RequiredServerVersion' value='${RequiredServerVersion}'/>
<filter token='ModuleDependencies' value=''/>
<filter token='BuildTime' value='${buildtime}'/>
<filter token='BuildOS' value='${os.name}'/>
<filter token='BuildUser' value='${user.name}'/>
<filter token='BuildPath' value='${build.modules.dir}/${module.name}.module'/>
<filter token='SourcePath' value='${moduleDir}'/>
<filter token='URL' value='Not built from a Subversion source tree'/>
<filter token='Revision' value='Not built from a Subversion source tree'/>
</filterset>
</copy>
</target>

<target name='build' depends='module.properties'>
<zip destfile='${build.modules.dir}/${module.name}.module'>
<zipfileset dir='.'/>
</zip>

<available property='modulesDirExists' file='${modules.dir}'/>
</target>

<target name='deploy' depends='build' if='modulesDirExists'>
<echo message='Deploying ${module.name}.module to ${modules.dir}'/>
<copy file='${build.modules.dir}/${module.name}.module' overwrite='true' tofile='${modules.dir}/${module.name}.module'/>
<delete file='${build.modules.dir}/${module.name}.module'/>
</target>

</project>

2 changes: 1 addition & 1 deletion module.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Name: OpenCytoVisualization
ModuleClass: org.labkey.api.module.SimpleModule
RequiredServerVersion: 12.10
RequiredServerVersion: 13.3
Version: 0.01
ModuleDependencies: OpenCytoPreprocessing
36 changes: 18 additions & 18 deletions module.template.xml
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="moduleBean" class="@@ModuleClass@@">
<constructor-arg index="0"><value type="java.lang.String">@@Name@@</value></constructor-arg>
<property name="name" value="@@Name@@"/>
<property name="version" value="@@Version@@"/>
<property name="requiredServerVersion" value="@@RequiredServerVersion@@"/>
<property name="moduleDependencies" value="@@ModuleDependencies@@"/>
<property name="svnRevision" value="@@Revision@@"/>
<property name="svnUrl" value="@@URL@@"/>
<property name="buildUser" value="@@BuildUser@@"/>
<property name="buildTime" value="@@BuildTime@@"/>
<property name="buildOS" value="@@BuildOS@@"/>
<property name="buildPath" value="@@BuildPath@@"/>
<property name="sourcePath" value="@@SourcePath@@"/>
<?xml version='1.0' encoding='UTF-8'?>
<beans xmlns='http://www.springframework.org/schema/beans'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns:util='http://www.springframework.org/schema/util'
xsi:schemaLocation='http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd'>
<bean id='moduleBean' class='@@ModuleClass@@'>
<constructor-arg index='0'><value type='java.lang.String'>@@Name@@</value></constructor-arg>
<property name='name' value='@@Name@@'/>
<property name='version' value='@@Version@@'/>
<property name='requiredServerVersion' value='@@RequiredServerVersion@@'/>
<property name='moduleDependencies' value='@@ModuleDependencies@@'/>
<property name='svnRevision' value='@@Revision@@'/>
<property name='svnUrl' value='@@URL@@'/>
<property name='buildUser' value='@@BuildUser@@'/>
<property name='buildTime' value='@@BuildTime@@'/>
<property name='buildOS' value='@@BuildOS@@'/>
<property name='buildPath' value='@@BuildPath@@'/>
<property name='sourcePath' value='@@SourcePath@@'/>
</bean>
</beans>
6 changes: 6 additions & 0 deletions queries/opencyto_preprocessing/AnalysisFiles.query.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<query name='AnalysisFiles' schemaName='opencyto_preprocessing' xmlns='http://labkey.org/data/xml/query'>
<description>
Contains the files associated with each of the generated analysis.
</description>
</query>
5 changes: 5 additions & 0 deletions queries/opencyto_preprocessing/AnalysisFiles.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
SELECT
gsid AS AnalysisId,
fileid.name AS name
FROM
files
6 changes: 6 additions & 0 deletions queries/opencyto_preprocessing/Axes.query.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<query name='Axes' schemaName='opencyto_preprocessing' xmlns='http://labkey.org/data/xml/query'>
<description>
Contains the axes choices associated with each of the generated analysis.
</description>
</query>
19 changes: 19 additions & 0 deletions queries/opencyto_preprocessing/Axes.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
SELECT DISTINCT
x_key AS Key,
x_axis AS Display,
gsid AS AnalysisId
FROM
projections
WHERE
x_key != ' ' AND
x_axis != 'Time'
UNION
SELECT DISTINCT
y_key AS Key,
y_axis AS Display,
gsid AS AnalysisId
FROM
projections
WHERE
y_key != ' ' AND
y_axis != 'Time'
6 changes: 6 additions & 0 deletions queries/opencyto_preprocessing/ParentPopulation.query.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<query name='ParentPopulation' schemaName='opencyto_preprocessing' xmlns='http://labkey.org/data/xml/query'>
<description>
Contains the 'parent' populations (those having children) associated with each of the generated analysis.
</description>
</query>
8 changes: 8 additions & 0 deletions queries/opencyto_preprocessing/ParentPopulation.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
SELECT DISTINCT
path AS Path,
index AS Index,
gsid AS AnalysisId
FROM
projections
WHERE
y_key != ' '
6 changes: 6 additions & 0 deletions queries/opencyto_preprocessing/Projection.query.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<query name='Projection' schemaName='opencyto_preprocessing' xmlns='http://labkey.org/data/xml/query'>
<description>
Contains the projections associated with each of the generated analysis.
</description>
</query>
9 changes: 9 additions & 0 deletions queries/opencyto_preprocessing/Projection.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
SELECT
x_axis || ' / ' || y_axis AS Projection,
gsid AS AnalysisId,
path AS Path,
index AS Index
FROM
projections
WHERE
y_key != ' '
6 changes: 6 additions & 0 deletions queries/opencyto_preprocessing/StudyVars.query.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<query name='StudyVars' schemaName='opencyto_preprocessing' xmlns='http://labkey.org/data/xml/query'>
<description>
Contains the study variables associated with each of the generated analysis.
</description>
</query>
8 changes: 8 additions & 0 deletions queries/opencyto_preprocessing/StudyVars.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
SELECT
svid AS StudyVarId,
svname AS StudyVarName,
gsid AS AnalysisId
FROM
study_vars
ORDER BY
svid
41 changes: 41 additions & 0 deletions reports/schemas/Load.r
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# vim: sw=4:ts=4:nu:nospell:fdc=4
#
# Copyright 2013 Fred Hutchinson Cancer Research Center
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

gsPath <- labkey.url.params$gsPath;

ptm <- proc.time();
print( 'LOADING LIBRARIES ETC.' );

suppressMessages( library( flowWorkspace ) );
suppressMessages( library( ncdfFlow ) );

print( proc.time() - ptm ); # LOADING LIBRARIES ETC.

if ( gsPath == '' ){
stop('The path to the analysis data was not properly specified.');
} else {
print('LOADING DATA');
ptm <- proc.time();

G <- suppressMessages( load_gslist( gsPath ) );
currentGsPath <- gsPath;

txt <- 'gating set loaded';

print( proc.time() - ptm );
}

write(txt, file='${txtout:textOutput}');
5 changes: 5 additions & 0 deletions reports/schemas/Load.report.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version='1.0' encoding='UTF-8'?>
<ReportDescriptor>
<hidden>true</hidden>
<category>OpenCytoVisualization module script</category>
</ReportDescriptor>
Loading

0 comments on commit b7874d1

Please sign in to comment.