Flow Module Schema

2024-03-28

Premium Feature — Available with all Premium Editions of LabKey Server. Learn more or contact LabKey.

LabKey modules expose their data to the LabKey query engine in one or more schemas. This reference topic outlines the schema used by the Flow module to assist you when writing custom Flow queries.

Flow Module

The Flow schema has the following tables in it:

  Runs Table

This table shows experiment runs for all three of the Flow protocol steps. It has the following columns:
RowId A unique identifier for the run. Also, when this column is used in a query, it is a lookup back to the same row in the Runs table. That is, including this column in a query will allow the user to display columns from the Runs table that have not been explicitly SELECTed into the query
Flag The flag column. It is displayed as an icon which the user can use to add a comment to this run. The flag column is a lookup to a table which has a text column “comment”. The icon appears different depending on whether the comment is null.
Name The name of the run. In flow, the name of the run is always the name of the directory which the FCS files were found in.
Created The date that this run was created.
CreatedBy The user who created this run.
Folder The folder or project in which this run is stored.
FilePathRoot (hidden) The directory on the server's file system where this run's data files come from.
LSID The life sciences identifier for this run.
ProtocolStep The flow protocol step of this run. One of “keywords”, “compensation”, or “analysis”
RunGroups A unique ID for this run.
AnalysisScript The AnalysisScript that was used in this run. It is a lookup to the AnalysisScripts table. It will be null if the protocol step is “keywords”
Workspace  
CompensationMatrix The compensation matrix that was used in this run. It is a lookup to the CompensationMatrices table.
TargetStudy  
WellCount The number of FCSFiles that we either inputs or outputs of this run.
FCSFileCount  
CompensationControlCount  
FCSAnalysisCount  

  CompensationMatrices Table

This table shows all of the compensation matrices that have either been calculated in a compensation protocol step, or uploaded. It has the following columns in it:
RowId A unique identifier for the compensation matrix.
Name The name of the compensation matrix. Compensation matrices have the same name as the run which created them. Uploaded compensation matrices have a user-assigned name.
Flag A flag column to allow the user to add a comment to this compensation matrix
Created The date the compensation matrix was created or uploaded.
Protocol (hidden) The protocol that was used to create this compensation matrix. This will be null for uploaded compensation matrices. For calculated compensation matrices, it will be the child protocol “Compensation”
Run The run which created this compensation matrix. This will be null for uploaded compensation matrices.
Value A column set with the values of compensation matrix. Compensation matrix values have names which are of the form “spill(channel1:channel2)”

 In addition, the CompensationMatrices table defines a method Value which returns the corresponding spill value.

The following are equivalent:

CompensationMatrices.Value."spill(FL-1:FL-2) "
CompensationMatrices.Value('spill(FL-1:FL-2)')

The Value method would be used when the name of the statistic is not known when the QueryDefinition is created, but is found in some other place (such as a table with a list of spill values that should be displayed).

  FCSFiles Table

The FCSFiles table lists all of the FCS files in the folder. It has the following columns:
RowId A unique identifier for the FCS file
Name The name of the FCS file in the file system.
Flag A flag column for the user to add a comment to this FCS file on the server.
Created The date that this FCS file was loaded onto the server. This is unrelated to the date of the FCS file in the file system.
Protocol (hidden) The protocol step that created this FCS file. It will always be the Keywords child protocol.
Run The experiment run that this FCS file belongs to. It is a lookup to the Runs table.
Keyword A column set for the keyword values. Keyword names are case sensitive. Keywords which are not present are null.
Sample The sample description which is linked to this FCS file. If the user has not uploaded sample descriptions (i.e. defined the target table), this column will be hidden. This column is a lookup to the samples.Samples table.

 In addition, the FCSFiles table defines a method Keyword which can be used to return a keyword value where the keyword name is determined at runtime.

  FCSAnalyses Table

The FCSAnalyses table lists all of the analyses of FCS files. It has the following columns:
RowId A unique identifier for the FCSAnalysis
Name The name of the FCSAnalysis. The name of an FCSAnalysis defaults to the same name as the FCSFile.  This is a setting which may be changed.
Flag A flag column for the user to add a comment to this FCSAnalysis.
Created The date that this FCSAnalysis was created.
Protocol (hidden) The protocol step that created this FCSAnalysis. It will always be the Analysis child protocol.
Run The run that this FCSAnalysis belongs to. Note that FCSAnalyses.Run and FCSAnalyses.FCSFile.Run refer to different runs.
Statistic A column set for statistics that were calculated for this FCSAnalysis.
Graph A column set for graphs that were generated for this FCSAnalysis. Graph columns display nicely on LabKey, but their underlying value is not interesting. They are a lookup where the display field is the name of the graph if the graph exists, or null if the graph does not exist.
FCSFile The FCSFile that this FCSAnalysis was performed on. This is a lookup to the FCSFiles table.

In addition, the FCSAnalyses table defines the methods Graph, and Statistic.

  CompensationControls Table

The CompensationControls table lists the analyses of the FCS files that were used to calculate compensation matrices. Often (as in the case of a universal negative) multiple CompensationControls are created for a single FCS file. The CompensationControls table has the following columns in it:
RowId A unique identifier for the compensation control
Name The name of the compensation control. This is the channel that it was used for, followed by either “+”, or “-“
Flag A flag column for the user to add a comment to this compensation control.
Created The date that this compensation control was created.
Protocol (hidden)
Run The run that this compensation control belongs to. This is the run for the compensation calculation, not the run that the FCS file belongs to.
Statistic A column set for statistics that were calculated for this compensation control. The following statistics are calculated for a compensation control:
comp:Count The number of events in the relevant population.
comp:Freq_Of_Parent The fraction of events that made it through the last gate that was applied in the compensation calculation. This value will be 0 if no gates were applied to the compensation control.
comp:Median(channelName) The median value of the channelName

 

Graph A column set for graphs that were generated for this compensation control. The names of graphs for compensation controls are of the form:

comp(channelName)

or

comp(<channelName>)

The latter is shows the post-compensation graph.

In addition, the CompensationControls table defines the methods Statistic and Graph.

  AnalysisScripts Table

The AnalysisScripts table lists the analysis scripts in the folder. This table has the following columns:
RowId A unique identifier for this analysis script.
Name The user-assigned name of this analysis script
Flag A flag column for the user to add a comment to this analysis script.
Created The date this analysis script was created.
Protocol (hidden)
Run (hidden)

  Analyses Table

The Analyses table lists the experiments in the folder with the exception of the one named Flow Experiment Runs. This table has the following columns:
RowId A unique identifier
LSID (hidden)
Name  
Hypothesis  
Comments  
Created  
CreatedBy  
Modified  
ModifiedBy  
Container  
CompensationRunCount The number of compensation calculations in this analysis. It is displayed as a hyperlink to the list of compensation runs.
AnalysisRunCount The number of runs that have been analyzed in this analysis. It is displayed as a hyperlink to the list of those run analyses