Recording source file names in output files, allowing output of intermediate results
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
import java.util.List;
|
||||
import java.util.Scanner;
|
||||
import java.util.InputMismatchException;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
//
|
||||
public class UserInterface {
|
||||
@@ -142,7 +144,7 @@ public class UserInterface {
|
||||
stdDev = Math.sqrt(cellReader.getCellCount()); //gaussian with square root of elements approximates poisson
|
||||
}
|
||||
Plate samplePlate = new Plate(numWells, dropOutRate, concentrations, stdDev);
|
||||
samplePlate.fillWells(cellReader.getCells());
|
||||
samplePlate.fillWells(cellReader.getFilename(), cellReader.getCells());
|
||||
PlateFileWriter writer = new PlateFileWriter(filename, samplePlate);
|
||||
writer.writePlateFile();
|
||||
}
|
||||
@@ -175,7 +177,7 @@ public class UserInterface {
|
||||
}
|
||||
CellFileReader cellReader = new CellFileReader(cellFile);
|
||||
PlateFileReader plateReader = new PlateFileReader(plateFile);
|
||||
Plate plate = new Plate(plateReader.getWells());
|
||||
Plate plate = new Plate(plateReader.getFilename(), plateReader.getWells());
|
||||
if (cellReader.getCells().size() == 0){
|
||||
System.out.println("No cell sample found.");
|
||||
System.out.println("Returning to main menu.");
|
||||
@@ -192,8 +194,7 @@ public class UserInterface {
|
||||
List<Integer[]> cells = cellReader.getCells();
|
||||
MatchingResult results = Simulator.matchCDR3s(cells, plate, lowThreshold, highThreshold);
|
||||
//result writer
|
||||
MatchingFileWriter writer = new MatchingFileWriter(filename, results.getComments(),
|
||||
results.getHeaders(), results.getAllResults());
|
||||
MatchingFileWriter writer = new MatchingFileWriter(filename, results);
|
||||
writer.writeResultsToFile();
|
||||
}
|
||||
}
|
||||
@@ -205,12 +206,14 @@ public class UserInterface {
|
||||
match
|
||||
*/
|
||||
String filename = null;
|
||||
String preliminaryResultsFilename = null;
|
||||
String cellFile = null;
|
||||
String plateFile = null;
|
||||
Integer lowThresholdCDR3 = 0;
|
||||
Integer highThresholdCDR3 = Integer.MAX_VALUE;
|
||||
Integer lowThresholdCDR1 = 0;
|
||||
Integer highThresholdCDR1 = Integer.MAX_VALUE;
|
||||
boolean outputCDR3Matches = false;
|
||||
try {
|
||||
System.out.println("\nSimulated experiment requires a cell sample file and a sample plate file.");
|
||||
System.out.print("Please enter name of an existing cell sample file: ");
|
||||
@@ -234,13 +237,28 @@ public class UserInterface {
|
||||
}
|
||||
System.out.println("What is the maximum number of CDR3/CDR1 overlap wells to attempt matching?");
|
||||
highThresholdCDR1 = sc.nextInt();
|
||||
System.out.println("Matching CDR3s to CDR1s requires first matching CDR3 alpha/betas.");
|
||||
System.out.println("Output a file for CDR3 alpha/beta match results as well?");
|
||||
System.out.print("Please enter y/n: ");
|
||||
String ans = sc.next();
|
||||
Pattern pattern = Pattern.compile("(?:yes|y)", Pattern.CASE_INSENSITIVE);
|
||||
Matcher matcher = pattern.matcher(ans);
|
||||
if(matcher.matches()){
|
||||
outputCDR3Matches = true;
|
||||
System.out.println("Please enter filename for CDR3 alpha/beta match results");
|
||||
preliminaryResultsFilename = sc.next();
|
||||
System.out.println("CDR3 alpha/beta matches will be output to file");
|
||||
}
|
||||
else{
|
||||
System.out.println("CDR3 alpha/beta matches will not be output to file");
|
||||
}
|
||||
} catch (InputMismatchException ex) {
|
||||
System.out.println(ex);
|
||||
sc.next();
|
||||
}
|
||||
CellFileReader cellReader = new CellFileReader(cellFile);
|
||||
PlateFileReader plateReader = new PlateFileReader(plateFile);
|
||||
Plate plate = new Plate(plateReader.getWells());
|
||||
Plate plate = new Plate(plateReader.getFilename(), plateReader.getWells());
|
||||
if (cellReader.getCells().size() == 0){
|
||||
System.out.println("No cell sample found.");
|
||||
System.out.println("Returning to main menu.");
|
||||
@@ -261,14 +279,14 @@ public class UserInterface {
|
||||
MatchingResult preliminaryResults = Simulator.matchCDR3s(cells, plate, lowThresholdCDR3, highThresholdCDR3);
|
||||
MatchingResult[] results = Simulator.matchCDR1s(cells, plate, lowThresholdCDR1,
|
||||
highThresholdCDR1, preliminaryResults);
|
||||
|
||||
//result writer
|
||||
MatchingFileWriter writer = new MatchingFileWriter(filename + "First", results[0].getComments(),
|
||||
results[0].getHeaders(), results[0].getAllResults());
|
||||
MatchingFileWriter writer = new MatchingFileWriter(filename + "_FirstPass", results[0]);
|
||||
writer.writeResultsToFile();
|
||||
writer = new MatchingFileWriter(filename + "Dual", results[1].getComments(),
|
||||
results[1].getHeaders(), results[1].getAllResults());
|
||||
writer = new MatchingFileWriter(filename + "_SecondPass", results[1]);
|
||||
writer.writeResultsToFile();
|
||||
if(outputCDR3Matches){
|
||||
writer = new MatchingFileWriter(preliminaryResultsFilename, preliminaryResults);
|
||||
writer.writeResultsToFile();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user