From 8dac8ee62998ffa25fa3cab55133a455243edfd9 Mon Sep 17 00:00:00 2001 From: Fahimeh Mirhaj Date: Tue, 19 Aug 2025 10:35:39 -0400 Subject: [PATCH 1/2] processing all the wells in a column before going to next column --- .../IndexBarcodeToSampleAutoAssigner.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/velox/sloan/cmo/workflows/kapalibrary/IndexBarcodeToSampleAutoAssigner.java b/src/main/java/com/velox/sloan/cmo/workflows/kapalibrary/IndexBarcodeToSampleAutoAssigner.java index b92975b3..9cdbb963 100644 --- a/src/main/java/com/velox/sloan/cmo/workflows/kapalibrary/IndexBarcodeToSampleAutoAssigner.java +++ b/src/main/java/com/velox/sloan/cmo/workflows/kapalibrary/IndexBarcodeToSampleAutoAssigner.java @@ -265,17 +265,20 @@ private void setLastIndexUsed(List indexAssignmentConfigs, Integer o * @param indexAssignmentConfigs * @return int */ - private int getStartIndexAssignmentConfigPosition(int lastUsedIndexPosition, List indexAssignmentConfigs) throws ServerException, NotFound, RemoteException { + private int getStartIndexAssignmentConfigPosition(int lastUsedIndexPosition, List indexAssignmentConfigs, + int plateSize) throws ServerException, NotFound, RemoteException { if (lastUsedIndexPosition >= indexAssignmentConfigs.size() - 1) { logInfo("Reached last Index, will start from first index position."); return 0; } int nextIndexToUse = lastUsedIndexPosition + 1; //start with one index position after last index used. - for (int i = nextIndexToUse; i < indexAssignmentConfigs.size(); i++) - if (indexAssignmentConfigs.get(i).getStringVal("WellId", user).toUpperCase().contains("A")) { - return i; - } - return 0; + if ((plateSize == 96 && nextIndexToUse > 8) || (plateSize == 384 && nextIndexToUse > 16)) { + for (int i = nextIndexToUse; i < indexAssignmentConfigs.size(); i++) + if (indexAssignmentConfigs.get(i).getStringVal("WellId", user).toUpperCase().contains("A")) { + return i; + } + } + return nextIndexToUse; } /** @@ -474,7 +477,7 @@ private void assignIndicesToSamples(List indexAssignmentProtocolReco boolean isCrisprOrAmpliconSeq = recipes.stream().anyMatch(RECIPES_TO_USE_SPECIAL_ADAPTERS::contains); Integer positionOfLastUsedIndex = getPositionOfLastUsedIndex(indexAssignmentConfigs); Double maxPlateVolume = autoHelper.getMaxVolumeLimit(plateSize); - Integer updatedLastIndexUsed = getStartIndexAssignmentConfigPosition(positionOfLastUsedIndex, indexAssignmentConfigs); + Integer updatedLastIndexUsed = getStartIndexAssignmentConfigPosition(positionOfLastUsedIndex, indexAssignmentConfigs, plateSize); Set indexAssignmentConfigPlatesToUse = new HashSet<>(); for (int i = updatedLastIndexUsed, j = 0; i < indexAssignmentConfigs.size() && j < indexAssignmentProtocolRecordsSortedColumnWise.size(); i++, j++) { DataRecord indexAssignmentConfig = indexAssignmentConfigs.get(i); From 7ddfefd9c8e5327befea3a65044c70d54dfde295 Mon Sep 17 00:00:00 2001 From: Fahimeh Mirhaj Date: Thu, 21 Aug 2025 11:41:52 -0400 Subject: [PATCH 2/2] Fixed the logic --- .../kapalibrary/IndexBarcodeToSampleAutoAssigner.java | 3 ++- .../workflows/SmartSeq/CreateSequencingRequirments.java | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/velox/sloan/cmo/workflows/kapalibrary/IndexBarcodeToSampleAutoAssigner.java b/src/main/java/com/velox/sloan/cmo/workflows/kapalibrary/IndexBarcodeToSampleAutoAssigner.java index 9cdbb963..fa377cd8 100644 --- a/src/main/java/com/velox/sloan/cmo/workflows/kapalibrary/IndexBarcodeToSampleAutoAssigner.java +++ b/src/main/java/com/velox/sloan/cmo/workflows/kapalibrary/IndexBarcodeToSampleAutoAssigner.java @@ -272,7 +272,8 @@ private int getStartIndexAssignmentConfigPosition(int lastUsedIndexPosition, Lis return 0; } int nextIndexToUse = lastUsedIndexPosition + 1; //start with one index position after last index used. - if ((plateSize == 96 && nextIndexToUse > 8) || (plateSize == 384 && nextIndexToUse > 16)) { + if ((plateSize == 96 && indexAssignmentConfigs.get(lastUsedIndexPosition).getStringVal("WellId", user).toUpperCase().contains("H")) + || (plateSize == 384 && indexAssignmentConfigs.get(lastUsedIndexPosition).getStringVal("WellId", user).toUpperCase().contains("P"))) { for (int i = nextIndexToUse; i < indexAssignmentConfigs.size(); i++) if (indexAssignmentConfigs.get(i).getStringVal("WellId", user).toUpperCase().contains("A")) { return i; diff --git a/src/main/java/com/velox/sloan/cmo/workflows/workflows/SmartSeq/CreateSequencingRequirments.java b/src/main/java/com/velox/sloan/cmo/workflows/workflows/SmartSeq/CreateSequencingRequirments.java index 09fecf0e..fbb94aed 100644 --- a/src/main/java/com/velox/sloan/cmo/workflows/workflows/SmartSeq/CreateSequencingRequirments.java +++ b/src/main/java/com/velox/sloan/cmo/workflows/workflows/SmartSeq/CreateSequencingRequirments.java @@ -35,7 +35,6 @@ public PluginResult run() throws Exception { Map values = new HashMap<>(); String sampleId = sample.getStringVal("SampleId", user); String sampleName = sample.getStringVal("OtherSampleId", user); - String otherSampleId = sample.getStringVal("OtherSampleId", user); String tumorOrNormal = sample.getStringVal("TumorOrNormal", user); values.put("SampleId", sampleId); values.put("SequencingRunType","PE100");