Module-based assays allow a developer to create a 
new assay type with a custom schema and custom views without becoming a Java developer. A module-based assay type consists of an assay config file, a set of domain descriptions, and view html files. The assay is added to a module by placing it in an assay directory at the top-level of the module. When the module is enabled in a folder, assay designs can be created based on the type defined in the module. For information on the applicable JS API, see: 
LABKEY.Experiment#saveBatch.
Topics
Examples: Module-Based Assays
File Structure
The assay consists of an assay config file, a set of domain descriptions, and view html files. The assay is added to a module by placing it in an assay directory at the top-level of the module. The assay has the following file structure:
<module-name>/
    assay/
          ASSAY_NAME/
              config.xml 
example
              domains/ - 
example
                  batch.xml 
                  run.xml 
                  result.xml 
              views/ - 
example
                  begin.html
                  upload.html
                  batches.html
                  batch.html
                  runs.html
                  run.html
                  results.html
                  result.html
              queries/ - 
example
                  Batches.query.xml 
                  Run.query.xml 
                  Data.query.xml 
                  CUSTOM_ASSAY_QUERY.query.xml 
                  CUSTOM_ASSAY_QUERY.sql 
                  CUSTOM_ASSAY_QUERY/
                      CUSTOM_VIEW.qview.xml 
              scripts/
                  script1.R 
                  script2.pl
The only required part of the assay is the <assay-name> directory. The config.xml, domain files, and view files are all optional. The CUSTOM_ASSAY_QUERY.sql will shows up in the schema for all assay designs of this provider type.
This diagram shows the relationship between the pages. The details link will only appear if the corresponding details html view is available.
 
How to Specify an Assay "Begin" Page
Module-based assays can be designed to jump to a "begin" page instead of a "runs" page. If an assay has a begin.html in the assay/<name>/views/ directory, users are directed to this page instead of the runs page when they click on the name of the assay in the assay list.
Related Topics