From 593dd6c60f535df9b01987efe543f473a1c924ff Mon Sep 17 00:00:00 2001 From: eugenefischer <66030419+eugenefischer@users.noreply.github.com> Date: Fri, 30 Sep 2022 02:58:15 -0500 Subject: [PATCH] Add sample cell filename, cell sample size, and sample plate size to metadata --- src/main/java/CellFileReader.java | 4 +++- src/main/java/CellSample.java | 6 ++++++ src/main/java/GraphMLFileWriter.java | 2 +- src/main/java/GraphWithMapData.java | 20 +++++++++++++++----- src/main/java/Simulator.java | 13 ++++++++++--- 5 files changed, 35 insertions(+), 10 deletions(-) diff --git a/src/main/java/CellFileReader.java b/src/main/java/CellFileReader.java index 41a1b1f..17e85cd 100644 --- a/src/main/java/CellFileReader.java +++ b/src/main/java/CellFileReader.java @@ -58,7 +58,9 @@ public class CellFileReader { } public CellSample getCellSample() { - return new CellSample(distinctCells, cdr1Freq); + CellSample sample = new CellSample(distinctCells, cdr1Freq); + sample.setFilename(filename); + return sample; } public String getFilename() { return filename;} diff --git a/src/main/java/CellSample.java b/src/main/java/CellSample.java index b32e912..681d3ef 100644 --- a/src/main/java/CellSample.java +++ b/src/main/java/CellSample.java @@ -7,6 +7,7 @@ public class CellSample { private List cells; private Integer cdr1Freq; + private String filename; public CellSample(Integer numDistinctCells, Integer cdr1Freq){ this.cdr1Freq = cdr1Freq; @@ -38,6 +39,7 @@ public class CellSample { distinctCells.add(tmp); } this.cells = distinctCells; + this.filename = filename; } public CellSample(List cells, Integer cdr1Freq){ @@ -57,4 +59,8 @@ public class CellSample { return cells.size(); } + public String getFilename() { return filename; } + + public void setFilename(String filename) { this.filename = filename; } + } diff --git a/src/main/java/GraphMLFileWriter.java b/src/main/java/GraphMLFileWriter.java index 18e16b0..e709620 100644 --- a/src/main/java/GraphMLFileWriter.java +++ b/src/main/java/GraphMLFileWriter.java @@ -43,7 +43,7 @@ public class GraphMLFileWriter { private Map createGraphAttributes(){ Map attributes = new HashMap<>(); //Sample plate filename - attributes.put("sample plate filename", DefaultAttribute.createAttribute(data.getSourceFilename())); + attributes.put("sample plate filename", DefaultAttribute.createAttribute(data.getPlateFilename())); // Number of wells attributes.put("well count", DefaultAttribute.createAttribute(data.getNumWells().toString())); //Well populations diff --git a/src/main/java/GraphWithMapData.java b/src/main/java/GraphWithMapData.java index d9720b1..5321324 100644 --- a/src/main/java/GraphWithMapData.java +++ b/src/main/java/GraphWithMapData.java @@ -9,7 +9,9 @@ import java.util.Map; //Custom vertex class means a lot of the map data can now be encoded in the graph itself public class GraphWithMapData implements java.io.Serializable { - private String sourceFilename; + private String cellFilename; + private int cellSampleSize; + private String plateFilename; private final SimpleWeightedGraph graph; private final int numWells; private final Integer[] wellPopulations; @@ -112,12 +114,20 @@ public class GraphWithMapData implements java.io.Serializable { return time; } - public void setSourceFilename(String filename) { - this.sourceFilename = filename; + public void setCellFilename(String filename) { this.cellFilename = filename; } + + public String getCellFilename() { return this.cellFilename; } + + public Integer getCellSampleSize() { return this.cellSampleSize; } + + public void setCellSampleSize(int size) { this.cellSampleSize = size;} + + public void setPlateFilename(String filename) { + this.plateFilename = filename; } - public String getSourceFilename() { - return sourceFilename; + public String getPlateFilename() { + return plateFilename; } public Double getReadErrorRate() { diff --git a/src/main/java/Simulator.java b/src/main/java/Simulator.java index 2fd5c64..8a0702e 100644 --- a/src/main/java/Simulator.java +++ b/src/main/java/Simulator.java @@ -137,8 +137,12 @@ public class Simulator implements GraphModificationFunctions { //create GraphWithMapData object GraphWithMapData output = new GraphWithMapData(graph, numWells, samplePlate.getPopulations(), distCellsMapAlphaKey, alphaCount, betaCount, samplePlate.getError(), readDepth, readErrorRate, errorCollisionRate, realSequenceCollisionRate, time); - //Set source file name in graph to name of sample plate - output.setSourceFilename(samplePlate.getFilename()); + //Set cell sample file name in graph to name of cell sample + output.setCellFilename(cellSample.getFilename()); + //Set cell sample size in graph + output.setCellSampleSize(cellSample.getCellCount()); + //Set sample plate file name in graph to name of sample plate + output.setPlateFilename(samplePlate.getFilename()); //return GraphWithMapData object return output; } @@ -304,7 +308,10 @@ public class Simulator implements GraphModificationFunctions { Map metadata = new LinkedHashMap<>(); - metadata.put("sample plate filename", data.getSourceFilename()); + metadata.put("cell sample filename", data.getCellFilename()); + metadata.put("cell sample size", data.getCellSampleSize().toString()); + metadata.put("sample plate filename", data.getPlateFilename()); + metadata.put("sample plate well count", data.getNumWells().toString()); metadata.put("sequence dropout rate", data.getDropoutRate().toString()); metadata.put("graph filename", dataFilename); metadata.put("MWM algorithm type", algoType);