public interface Molecule extends JsonConvertibleRecord, MarsRecord
MoleculeArchive
s to allow for fast and
efficient retrieval and optimal organization.
Molecule records are designed to allow for storage of many different kinds of
single-molecule time-series data. They contain a primary MarsTable
with molecule properties typically with each row containing features of a
given time point. This may include position or intensity information. To
facilitate efficient and reproducible processing molecule records may also
contain calculated parameters, tags, notes, and kinetic change point segment
MarsTable
s generated by KCPCommand
. Molecule records are
assigned a random UID string at the time of creation derived from a base58
encoded UUID for readability. This serves as their primary identifier within
MoleculeArchive
s and for a range of transformations and merging
operations. Molecule records also have a UID string for corresponding
MarsMetadata
records, which contain the experiments metadata
information from.
Molecule records can be saved to Json for storage when done processing. They are then either stored as an array within MoleculeArchive .yama files or as individual sml or json files within .yama.store directories.
Modifier and Type | Method and Description |
---|---|
int |
getChannel()
Get the channel for this molecule record.
|
int |
getImage()
Get the image index for this molecule record.
|
java.lang.String |
getMetadataUID()
Get the UID of the
MarsMetadata record associated with this
molecule. |
MarsTable |
getSegmentsTable(java.util.List<java.lang.String> tableColumnNames)
Retrieve a segments table (
MarsTable ) generated using x column, y
column and region names provided in index positions 0, 1 and 2 of a List,
respectively. |
MarsTable |
getSegmentsTable(java.lang.String xColumn,
java.lang.String yColumn)
Retrieve a segments table (
MarsTable ) generated using xColumn and
yColumn. |
MarsTable |
getSegmentsTable(java.lang.String xColumn,
java.lang.String yColumn,
java.lang.String region)
Retrieve a Segments table (
MarsTable ) generated using xColum,
yColumn and region names. |
java.util.Set<java.util.List<java.lang.String>> |
getSegmentsTableNames()
/** Get the set of segment table names as lists of x and y column names.
|
MarsTable |
getTable()
Get the
MarsTable holding the primary data for this molecule
record. |
boolean |
hasSegmentsTable(java.lang.String xColumn,
java.lang.String yColumn)
Check if record has a segments table (
MarsTable ) generated using
xColumn and yColumn. |
boolean |
hasSegmentsTable(java.lang.String xColumn,
java.lang.String yColumn,
java.lang.String region)
Check if record has a Segments table (
MarsTable ) generated using
xColumn, yColumn and region names. |
void |
merge(Molecule molecule)
Used to merge another molecule record into this one.
|
void |
putSegmentsTable(java.lang.String xColumn,
java.lang.String yColumn,
MarsTable segmentsTable)
Add or update a segments table (
MarsTable ) generated using the x
column and y column names. |
void |
putSegmentsTable(java.lang.String xColumn,
java.lang.String yColumn,
java.lang.String region,
MarsTable segmentsTable)
Add or update a segments table (
MarsTable ) generated using the x
column, y column and region names. |
void |
removeSegmentsTable(java.util.List<java.lang.String> tableColumnNames)
Remove the segments table (
MarsTable ) generated using x column, y
column, and region names provided as a list. |
void |
removeSegmentsTable(java.lang.String xColumn,
java.lang.String yColumn)
Remove the segments table (
MarsTable ) generated using xColumn and y
Column. |
void |
removeSegmentsTable(java.lang.String xColumn,
java.lang.String yColumn,
java.lang.String region)
Remove the segments table (
MarsTable ) generated using x column, y
column, and region names provided. |
void |
setChannel(int channel)
Set the channel for this molecule record.
|
void |
setImage(int image)
Set the image position for this molecule record.
|
void |
setMetadataUID(java.lang.String metadataUID)
Set the UID of the
MarsMetadata record associated with this
molecule. |
void |
setTable(MarsTable table)
Set the
MarsTable holding the primary data for this molecule
record. |
addNote, addTag, getBooleanParameter, getNotes, getParameter, getParameters, getPosition, getPositionNames, getPositions, getRegion, getRegionNames, getRegions, getStringParameter, getTags, getTagsArray, getUID, hasBooleanParameter, hasDoubleParameter, hasNoTags, hasParameter, hasPosition, hasRegion, hasStringParameter, hasTag, merge, putPosition, putRegion, removeAllParameters, removeAllPositions, removeAllRegions, removeAllTags, removeParameter, removePosition, removeRegion, removeTag, setNotes, setParameter, setParameter, setParameter, setParent
dumpJSON, fromJSON, getJsonGenerator, getJsonParser, setJsonField, setShowWarnings, toJSON
void setMetadataUID(java.lang.String metadataUID)
MarsMetadata
record associated with this
molecule. The MarsMetadata
contains information about the data
collection (Timing of frames, colors, collection date, etc...)metadataUID
- The new metadata UID to set.java.lang.String getMetadataUID()
MarsMetadata
record associated with this
molecule. The MarsMetadata
contains information about the data
collection (Timing of frames, colors, collection date, etc...)void setImage(int image)
image
- The imageID.int getImage()
void setChannel(int channel)
channel
- The channel.int getChannel()
MarsTable getTable()
MarsTable
holding the primary data for this molecule
record.void setTable(MarsTable table)
MarsTable
holding the primary data for this molecule
record. Usually this is tracking or intensity as a function of time.table
- The MarsTable
to add or update in the molecule record.void putSegmentsTable(java.lang.String xColumn, java.lang.String yColumn, MarsTable segmentsTable)
MarsTable
) generated using the x
column and y column names. The KCPCommand
performs kinetic change
point analysis generating segments to fit regions of a trace. The
information about these segments is added using this method.xColumn
- The name of the column used for x for KCP analysis.yColumn
- The name of the column used for y for KCP analysis.segmentsTable
- The MarsTable
to add that contains the
segments.void putSegmentsTable(java.lang.String xColumn, java.lang.String yColumn, java.lang.String region, MarsTable segmentsTable)
MarsTable
) generated using the x
column, y column and region names. The KCPCommand
performs kinetic
change point analysis generating segments to fit regions of a trace. The
information about these segments is added using this method.xColumn
- The name of the column used for x for KCP analysis.yColumn
- The name of the column used for y for KCP analysis.region
- The name of the region used for analysis.segmentsTable
- The MarsTable
to add that contains the
segments.MarsTable getSegmentsTable(java.lang.String xColumn, java.lang.String yColumn)
MarsTable
) generated using xColumn and
yColumn.xColumn
- The name of the x column used for analysis.yColumn
- The name of the y column used for analysis.MarsTable getSegmentsTable(java.lang.String xColumn, java.lang.String yColumn, java.lang.String region)
MarsTable
) generated using xColum,
yColumn and region names.xColumn
- The name of the x column used for analysis.yColumn
- The name of the y column used for analysis.region
- The name of the region used for analysis.boolean hasSegmentsTable(java.lang.String xColumn, java.lang.String yColumn)
MarsTable
) generated using
xColumn and yColumn.xColumn
- The name of the x column used for analysis.yColumn
- The name of the y column used for analysis.boolean hasSegmentsTable(java.lang.String xColumn, java.lang.String yColumn, java.lang.String region)
MarsTable
) generated using
xColumn, yColumn and region names.xColumn
- The name of the x column used for analysis.yColumn
- The name of the y column used for analysis.region
- The name of the region used for analysis.MarsTable getSegmentsTable(java.util.List<java.lang.String> tableColumnNames)
MarsTable
) generated using x column, y
column and region names provided in index positions 0, 1 and 2 of a List,
respectively.tableColumnNames
- The list of x column, y column and region names.void removeSegmentsTable(java.util.List<java.lang.String> tableColumnNames)
MarsTable
) generated using x column, y
column, and region names provided as a list.tableColumnNames
- List of xColumn, yColumn, and Region of the segment
table to remove.void removeSegmentsTable(java.lang.String xColumn, java.lang.String yColumn)
MarsTable
) generated using xColumn and y
Column.xColumn
- The name of the x column used for analysis.yColumn
- The name of the y column used for analysis.void removeSegmentsTable(java.lang.String xColumn, java.lang.String yColumn, java.lang.String region)
MarsTable
) generated using x column, y
column, and region names provided.xColumn
- The name of the x column used for analysis.yColumn
- The name of the y column used for analysis.region
- The name of the region used for analysis.java.util.Set<java.util.List<java.lang.String>> getSegmentsTableNames()
void merge(Molecule molecule)
molecule
- Molecule to merge into this one.