Skip to content

Commit

Permalink
Added object metadata to modules
Browse files Browse the repository at this point in the history
This allows text items to be stored with objects and exported to Excel
  • Loading branch information
sjcross committed May 9, 2024
1 parent 6685859 commit 66c6d03
Show file tree
Hide file tree
Showing 232 changed files with 2,003 additions and 170 deletions.
4 changes: 2 additions & 2 deletions mia-algorithms/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@
<parent>
<groupId>io.github.mianalysis</groupId>
<artifactId>pom-mia</artifactId>
<version>1.5.3-SNAPSHOT</version>
<version>1.6.0-SNAPSHOT</version>
</parent>

<groupId>io.github.mianalysis</groupId>
<artifactId>mia-algorithms</artifactId>
<version>1.5.3-SNAPSHOT</version>
<version>1.6.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>mia-algorithms</name>
<url>https://github.com/mianalysis/mia</url>
Expand Down
4 changes: 2 additions & 2 deletions mia-bonej/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@
<parent>
<groupId>io.github.mianalysis</groupId>
<artifactId>pom-mia</artifactId>
<version>1.5.3-SNAPSHOT</version>
<version>1.6.0-SNAPSHOT</version>
</parent>

<groupId>io.github.mianalysis</groupId>
<artifactId>mia-bonej</artifactId>
<version>1.5.3-SNAPSHOT</version>
<version>1.6.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>mia-bonej</name>
<url>https://github.com/mianalysis/mia</url>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import io.github.mianalysis.mia.object.refs.collections.ImageMeasurementRefs;
import io.github.mianalysis.mia.object.refs.collections.MetadataRefs;
import io.github.mianalysis.mia.object.refs.collections.ObjMeasurementRefs;
import io.github.mianalysis.mia.object.refs.collections.ObjMetadataRefs;
import io.github.mianalysis.mia.object.refs.collections.ParentChildRefs;
import io.github.mianalysis.mia.object.refs.collections.PartnerRefs;
import io.github.mianalysis.mia.process.exceptions.IntegerOverflowException;
Expand Down Expand Up @@ -502,6 +503,11 @@ public ObjMeasurementRefs updateAndGetObjectMeasurementRefs() {

}

@Override
public ObjMetadataRefs updateAndGetObjectMetadataRefs() {
return null;
}

@Override
public MetadataRefs updateAndGetMetadataReferences() {
return null;
Expand Down
4 changes: 2 additions & 2 deletions mia-coordinates/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@
<parent>
<groupId>io.github.mianalysis</groupId>
<artifactId>pom-mia</artifactId>
<version>1.5.3-SNAPSHOT</version>
<version>1.6.0-SNAPSHOT</version>
</parent>

<groupId>io.github.mianalysis</groupId>
<artifactId>mia-coordinates</artifactId>
<version>1.5.3-SNAPSHOT</version>
<version>1.6.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>mia-coordinates</name>
<url>https://github.com/mianalysis/mia</url>
Expand Down
4 changes: 2 additions & 2 deletions mia-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@
<parent>
<groupId>io.github.mianalysis</groupId>
<artifactId>pom-mia</artifactId>
<version>1.5.3-SNAPSHOT</version>
<version>1.6.0-SNAPSHOT</version>
</parent>

<groupId>io.github.mianalysis</groupId>
<artifactId>mia-core</artifactId>
<version>1.5.3-SNAPSHOT</version>
<version>1.6.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>mia-core</name>
<url>https://github.com/mianalysis/mia</url>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,14 @@
import io.github.mianalysis.mia.object.refs.ImageMeasurementRef;
import io.github.mianalysis.mia.object.refs.MetadataRef;
import io.github.mianalysis.mia.object.refs.ObjMeasurementRef;
import io.github.mianalysis.mia.object.refs.ObjMetadataRef;
import io.github.mianalysis.mia.object.refs.ParentChildRef;
import io.github.mianalysis.mia.object.refs.PartnerRef;
import io.github.mianalysis.mia.object.refs.abstrakt.Ref;
import io.github.mianalysis.mia.object.refs.collections.ImageMeasurementRefs;
import io.github.mianalysis.mia.object.refs.collections.MetadataRefs;
import io.github.mianalysis.mia.object.refs.collections.ObjMeasurementRefs;
import io.github.mianalysis.mia.object.refs.collections.ObjMetadataRefs;
import io.github.mianalysis.mia.object.refs.collections.ParentChildRefs;
import io.github.mianalysis.mia.object.refs.collections.PartnerRefs;
import io.github.mianalysis.mia.object.system.Status;
Expand All @@ -44,6 +46,7 @@ public abstract class Module extends Ref implements Comparable, SciJavaPlugin {
protected Parameters parameters = new Parameters();
protected ImageMeasurementRefs imageMeasurementRefs = new ImageMeasurementRefs();
protected ObjMeasurementRefs objectMeasurementRefs = new ObjMeasurementRefs();
protected ObjMetadataRefs objectMetadataRefs = new ObjMetadataRefs();
protected MetadataRefs metadataRefs = new MetadataRefs();
protected ParentChildRefs parentChildRefs = new ParentChildRefs();
protected PartnerRefs partnerRefs = new PartnerRefs();
Expand Down Expand Up @@ -150,6 +153,18 @@ public Module(String name, Modules modules) {
*/
public abstract ObjMeasurementRefs updateAndGetObjectMeasurementRefs();

/**
* Metadata added to any objects by this module are reported by adding their
* reference to an ObjMetadataRefs collection. When no metadata items are added
* by this module, this method can simply return "null". These references tell
* downstream modules what metadata items are available for each object of a
* specific object collection. Returned references should be the original copies
* stored in the local "objectMetadataRefs" object.
*
* @return Object metadata references currently active for this module
*/
public abstract ObjMetadataRefs updateAndGetObjectMetadataRefs();

/**
* Values added to the workspace's metadata collection by this module are
* reported by adding their reference to a MetadataRefs collection. When no
Expand Down Expand Up @@ -245,6 +260,10 @@ public void addObjectMeasurementRef(ObjMeasurementRef ref) {
objectMeasurementRefs.add(ref);
}

public void addObjectMetadataRef(ObjMetadataRef ref) {
objectMetadataRefs.add(ref);
}

public ImageMeasurementRef getImageMeasurementRef(String name) {
return imageMeasurementRefs.getOrPut(name);
}
Expand All @@ -257,6 +276,10 @@ public ObjMeasurementRef getObjectMeasurementRef(String name) {
return objectMeasurementRefs.getOrPut(name);
}

public ObjMetadataRef getObjectMetadataRef(String name) {
return objectMetadataRefs.getOrPut(name);
}

public MetadataRef getMetadataRef(String name) {
return metadataRefs.getOrPut(name);
}
Expand Down Expand Up @@ -501,6 +524,14 @@ public Module duplicate(Modules newModules) {
newObjMeasurementRefs.add(newRef);
}

ObjMetadataRefs newObjMetadataRefs = newModule.objectMetadataRefs;
for (ObjMetadataRef ref : objectMetadataRefs.values()) {
ObjMetadataRef newRef = ref.duplicate();
if (newRef == null)
continue;
newObjMetadataRefs.add(newRef);
}

ImageMeasurementRefs newImageMeasurementRefs = newModule.imageMeasurementRefs;
for (ImageMeasurementRef ref : imageMeasurementRefs.values()) {
ImageMeasurementRef newRef = ref.duplicate();
Expand Down Expand Up @@ -621,7 +652,7 @@ public void setAttributesFromXML(Node node) {
MIA.log.writeWarning(" Module name: \"" + name + "\"");
MIA.log.writeWarning(" Workflow version: " + workflowVersion);
MIA.log.writeWarning(" Plugin version: " + getVersionNumber());
MIA.log.writeWarning(" Status: " + resultsWarning+".");
MIA.log.writeWarning(" Status: " + resultsWarning + ".");

}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,11 @@
import io.github.mianalysis.mia.object.parameters.objects.RemovedObjectsP;
import io.github.mianalysis.mia.object.refs.ImageMeasurementRef;
import io.github.mianalysis.mia.object.refs.ObjMeasurementRef;
import io.github.mianalysis.mia.object.refs.ObjMetadataRef;
import io.github.mianalysis.mia.object.refs.collections.ImageMeasurementRefs;
import io.github.mianalysis.mia.object.refs.collections.MetadataRefs;
import io.github.mianalysis.mia.object.refs.collections.ObjMeasurementRefs;
import io.github.mianalysis.mia.object.refs.collections.ObjMetadataRefs;
import io.github.mianalysis.mia.object.refs.collections.ParentChildRefs;
import io.github.mianalysis.mia.object.refs.collections.PartnerRefs;
import io.github.mianalysis.mia.object.refs.collections.Refs;
Expand Down Expand Up @@ -264,6 +266,64 @@ void addObjectMeasurementRefs(Module module, ObjMeasurementRefs measurementRefs,
}
}

public ObjMetadataRefs getObjectMetadataRefs(String objectName) {
return getObjectMetadataRefs(objectName, null);

}

public ObjMetadataRefs getObjectMetadataRefs(String objectName, Module cutoffModule) {
ObjMetadataRefs metadataRefs = new ObjMetadataRefs();

// If this is a distant relative there will be "//" in the name that need to be
// removed
if (objectName.contains("//"))
objectName = objectName.substring(objectName.lastIndexOf("//") + 3);

addObjectMetadataRefs(inputControl, metadataRefs, objectName);
addObjectMetadataRefs(outputControl, metadataRefs, objectName);

// Iterating over all modules, collecting any measurements for the current
// objects
for (Module module : this) {
if (module == cutoffModule)
break;
if (!module.isEnabled() | !module.isRunnable())
continue;
addObjectMetadataRefs(module, metadataRefs, objectName);
}

return metadataRefs;

}

public boolean objectsExportMetadata(String objectName) {
ObjMetadataRefs refCollection = getObjectMetadataRefs(objectName);

for (ObjMetadataRef ref : refCollection.values()) {
if (ref.isExportIndividual() && ref.isExportGlobal())
return true;
}

return false;

}

void addObjectMetadataRefs(Module module, ObjMetadataRefs metadataRefs, String objectName) {
if (!module.isEnabled())
return;
ObjMetadataRefs currentMetadataRefs = module.updateAndGetObjectMetadataRefs();
if (currentMetadataRefs == null)
return;

for (ObjMetadataRef ref : currentMetadataRefs.values()) {
if (ref.getObjectsName() == null)
continue;
if (ref.getObjectsName().equals(objectName))
metadataRefs.put(ref.getName(), ref);

}
}

public MetadataRefs getMetadataRefs() {
return getMetadataRefs(null);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import io.github.mianalysis.mia.object.refs.collections.ImageMeasurementRefs;
import io.github.mianalysis.mia.object.refs.collections.MetadataRefs;
import io.github.mianalysis.mia.object.refs.collections.ObjMeasurementRefs;
import io.github.mianalysis.mia.object.refs.collections.ObjMetadataRefs;
import io.github.mianalysis.mia.object.refs.collections.ParentChildRefs;
import io.github.mianalysis.mia.object.refs.collections.PartnerRefs;
import io.github.mianalysis.mia.object.system.Status;
Expand Down Expand Up @@ -550,6 +551,11 @@ public ObjMeasurementRefs updateAndGetObjectMeasurementRefs() {
return null;
}

@Override
public ObjMetadataRefs updateAndGetObjectMetadataRefs() {
return null;
}

@Override
public MetadataRefs updateAndGetMetadataReferences() {
MetadataRefs returnedRefs = new MetadataRefs();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import io.github.mianalysis.mia.object.refs.collections.ImageMeasurementRefs;
import io.github.mianalysis.mia.object.refs.collections.MetadataRefs;
import io.github.mianalysis.mia.object.refs.collections.ObjMeasurementRefs;
import io.github.mianalysis.mia.object.refs.collections.ObjMetadataRefs;
import io.github.mianalysis.mia.object.refs.collections.ParentChildRefs;
import io.github.mianalysis.mia.object.refs.collections.PartnerRefs;
import io.github.mianalysis.mia.object.system.Status;
Expand Down Expand Up @@ -701,6 +702,11 @@ public ObjMeasurementRefs updateAndGetObjectMeasurementRefs() {
return null;
}

@Override
public ObjMetadataRefs updateAndGetObjectMetadataRefs() {
return null;
}

@Override
public MetadataRefs updateAndGetMetadataReferences() {
return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import io.github.mianalysis.mia.object.parameters.objects.OutputObjectsP;
import io.github.mianalysis.mia.object.refs.ObjMeasurementRef;
import io.github.mianalysis.mia.object.refs.collections.ObjMeasurementRefs;
import io.github.mianalysis.mia.object.refs.collections.ObjMetadataRefs;
import io.github.mianalysis.mia.object.refs.collections.ParentChildRefs;
import io.github.mianalysis.mia.object.refs.collections.PartnerRefs;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
import io.github.mianalysis.mia.object.refs.collections.ImageMeasurementRefs;
import io.github.mianalysis.mia.object.refs.collections.MetadataRefs;
import io.github.mianalysis.mia.object.refs.collections.ObjMeasurementRefs;
import io.github.mianalysis.mia.object.refs.collections.ObjMetadataRefs;
import io.github.mianalysis.mia.object.refs.collections.ParentChildRefs;
import io.github.mianalysis.mia.object.refs.collections.PartnerRefs;
import io.github.mianalysis.mia.object.system.Status;
Expand Down Expand Up @@ -372,6 +373,11 @@ public ObjMeasurementRefs updateAndGetObjectMeasurementRefs() {
return null;
}

@Override
public ObjMetadataRefs updateAndGetObjectMetadataRefs() {
return null;
}

@Override
public MetadataRefs updateAndGetMetadataReferences() {
return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
import io.github.mianalysis.mia.object.refs.collections.ImageMeasurementRefs;
import io.github.mianalysis.mia.object.refs.collections.MetadataRefs;
import io.github.mianalysis.mia.object.refs.collections.ObjMeasurementRefs;
import io.github.mianalysis.mia.object.refs.collections.ObjMetadataRefs;
import io.github.mianalysis.mia.object.refs.collections.ParentChildRefs;
import io.github.mianalysis.mia.object.refs.collections.PartnerRefs;
import io.github.mianalysis.mia.object.system.Status;
Expand Down Expand Up @@ -361,7 +362,12 @@ public ObjMeasurementRefs updateAndGetObjectMeasurementRefs() {
}

@Override
public MetadataRefs updateAndGetMetadataReferences() {
public ObjMetadataRefs updateAndGetObjectMetadataRefs() {
return null;
}

@Override
public MetadataRefs updateAndGetMetadataReferences() {
return null;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import io.github.mianalysis.mia.object.refs.collections.ImageMeasurementRefs;
import io.github.mianalysis.mia.object.refs.collections.MetadataRefs;
import io.github.mianalysis.mia.object.refs.collections.ObjMeasurementRefs;
import io.github.mianalysis.mia.object.refs.collections.ObjMetadataRefs;
import io.github.mianalysis.mia.object.refs.collections.ParentChildRefs;
import io.github.mianalysis.mia.object.refs.collections.PartnerRefs;
import io.github.mianalysis.mia.object.system.Status;
Expand Down Expand Up @@ -168,7 +169,12 @@ public ObjMeasurementRefs updateAndGetObjectMeasurementRefs() {
}

@Override
public MetadataRefs updateAndGetMetadataReferences() {
public ObjMetadataRefs updateAndGetObjectMetadataRefs() {
return null;
}

@Override
public MetadataRefs updateAndGetMetadataReferences() {
return null;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import io.github.mianalysis.mia.object.refs.collections.ImageMeasurementRefs;
import io.github.mianalysis.mia.object.refs.collections.MetadataRefs;
import io.github.mianalysis.mia.object.refs.collections.ObjMeasurementRefs;
import io.github.mianalysis.mia.object.refs.collections.ObjMetadataRefs;
import io.github.mianalysis.mia.object.refs.collections.ParentChildRefs;
import io.github.mianalysis.mia.object.refs.collections.PartnerRefs;
import io.github.mianalysis.mia.object.system.Status;
Expand Down Expand Up @@ -266,6 +267,11 @@ public ObjMeasurementRefs updateAndGetObjectMeasurementRefs() {
return null;
}

@Override
public ObjMetadataRefs updateAndGetObjectMetadataRefs() {
return null;
}

@Override
public MetadataRefs updateAndGetMetadataReferences() {
Workspace workspace = null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import io.github.mianalysis.mia.object.refs.collections.ImageMeasurementRefs;
import io.github.mianalysis.mia.object.refs.collections.MetadataRefs;
import io.github.mianalysis.mia.object.refs.collections.ObjMeasurementRefs;
import io.github.mianalysis.mia.object.refs.collections.ObjMetadataRefs;
import io.github.mianalysis.mia.object.refs.collections.ParentChildRefs;
import io.github.mianalysis.mia.object.refs.collections.PartnerRefs;
import io.github.mianalysis.mia.object.system.Status;
Expand Down Expand Up @@ -149,7 +150,12 @@ public ObjMeasurementRefs updateAndGetObjectMeasurementRefs() {
}

@Override
public MetadataRefs updateAndGetMetadataReferences() {
public ObjMetadataRefs updateAndGetObjectMetadataRefs() {
return null;
}

@Override
public MetadataRefs updateAndGetMetadataReferences() {
return null;
}

Expand Down
Loading

0 comments on commit 66c6d03

Please sign in to comment.