From 7de9d4731d106256526eb3ca8fcf32e2f213ed28 Mon Sep 17 00:00:00 2001 From: bbimber Date: Wed, 26 Nov 2025 11:09:21 -0800 Subject: [PATCH 01/12] Use absolute location of cellrange executable --- .../src/org/labkey/singlecell/run/CellRangerGexCountStep.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java b/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java index 2c60cdc5f..2496c1775 100644 --- a/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java +++ b/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java @@ -650,7 +650,7 @@ public File getInclusionListFile(Logger logger) throws PipelineJobException } } - File il = new File(exe.getParentFile(), "lib/python/cellranger/barcodes/" + _inclusionListFile); + File il = new File(exe.getAbsoluteFile().getParentFile(), "lib/python/cellranger/barcodes/" + _inclusionListFile); if (!il.exists()) { throw new PipelineJobException("Unable to find file: " + il.getPath()); From 137d896e9d8f143fe3fb98b64885b754ca7031ec Mon Sep 17 00:00:00 2001 From: bbimber Date: Wed, 26 Nov 2025 13:17:01 -0800 Subject: [PATCH 02/12] Debug location of cellrange executable --- .../org/labkey/singlecell/run/CellRangerGexCountStep.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java b/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java index 2496c1775..761e4a822 100644 --- a/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java +++ b/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java @@ -637,12 +637,14 @@ public enum Chemistry public File getInclusionListFile(Logger logger) throws PipelineJobException { - File exe = new CellRangerWrapper(logger).getExe(); + File exe = new CellRangerWrapper(logger).getExe().getAbsoluteFile(); + logger.debug("cellranger executable: " + exe.getPath()); if (Files.isSymbolicLink(exe.toPath())) { try { - exe = Files.readSymbolicLink(exe.toPath()).toFile(); + exe = Files.readSymbolicLink(exe.toPath()).toRealPath().toFile(); + logger.debug("cellranger symlink target: " + exe.getPath()); } catch (IOException e) { @@ -650,7 +652,7 @@ public File getInclusionListFile(Logger logger) throws PipelineJobException } } - File il = new File(exe.getAbsoluteFile().getParentFile(), "lib/python/cellranger/barcodes/" + _inclusionListFile); + File il = new File(exe.getParentFile(), "lib/python/cellranger/barcodes/" + _inclusionListFile); if (!il.exists()) { throw new PipelineJobException("Unable to find file: " + il.getPath()); From 845757b954d9d08b6616fdbf1b2f4f6f842b2a96 Mon Sep 17 00:00:00 2001 From: bbimber Date: Wed, 26 Nov 2025 15:21:42 -0800 Subject: [PATCH 03/12] Debug cellranger/symlink --- .../src/org/labkey/singlecell/run/CellRangerGexCountStep.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java b/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java index 761e4a822..a19318331 100644 --- a/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java +++ b/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java @@ -643,7 +643,7 @@ public File getInclusionListFile(Logger logger) throws PipelineJobException { try { - exe = Files.readSymbolicLink(exe.toPath()).toRealPath().toFile(); + exe = Files.readSymbolicLink(exe.toPath()).resolve(exe.getParentFile().toPath()).toFile(); logger.debug("cellranger symlink target: " + exe.getPath()); } catch (IOException e) From d75cf73f468fab5bd52a304c6c9b8319a3dba009 Mon Sep 17 00:00:00 2001 From: bbimber Date: Wed, 26 Nov 2025 16:57:26 -0800 Subject: [PATCH 04/12] Debug cellranger/symlinks --- .../labkey/singlecell/run/CellRangerGexCountStep.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java b/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java index a19318331..a421af51d 100644 --- a/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java +++ b/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java @@ -52,6 +52,7 @@ import java.io.File; import java.io.IOException; import java.nio.file.Files; +import java.nio.file.Path; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -643,8 +644,13 @@ public File getInclusionListFile(Logger logger) throws PipelineJobException { try { - exe = Files.readSymbolicLink(exe.toPath()).resolve(exe.getParentFile().toPath()).toFile(); - logger.debug("cellranger symlink target: " + exe.getPath()); + Path exePath = Files.readSymbolicLink(exe.toPath()); + logger.debug("cellranger symlink target: " + exePath.toString()); + logger.debug("cellranger symlink absolute path: " + exePath.toAbsolutePath()); + logger.debug("cellranger symlink realpath path: " + exePath.toRealPath()); + + exe = exePath.toFile(); + logger.debug("cellranger resolved symlink target: " + exe.getPath()); } catch (IOException e) { From 89f4d547af2afa905158e73b798f25056d307a65 Mon Sep 17 00:00:00 2001 From: bbimber Date: Fri, 28 Nov 2025 07:43:37 -0800 Subject: [PATCH 05/12] Debug cellranger/symlinks --- .../org/labkey/singlecell/run/CellRangerGexCountStep.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java b/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java index a421af51d..f998f3242 100644 --- a/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java +++ b/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java @@ -646,10 +646,7 @@ public File getInclusionListFile(Logger logger) throws PipelineJobException { Path exePath = Files.readSymbolicLink(exe.toPath()); logger.debug("cellranger symlink target: " + exePath.toString()); - logger.debug("cellranger symlink absolute path: " + exePath.toAbsolutePath()); - logger.debug("cellranger symlink realpath path: " + exePath.toRealPath()); - - exe = exePath.toFile(); + exe = FileUtil.resolveFile(exePath.toFile()); logger.debug("cellranger resolved symlink target: " + exe.getPath()); } catch (IOException e) From 2d3d620851d163ebe1b183b08807b0708455cfa4 Mon Sep 17 00:00:00 2001 From: bbimber Date: Fri, 28 Nov 2025 07:57:53 -0800 Subject: [PATCH 06/12] Add hifiask to script --- .../pipeline_code/extra_tools_install.sh | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/SequenceAnalysis/pipeline_code/extra_tools_install.sh b/SequenceAnalysis/pipeline_code/extra_tools_install.sh index 5ba95e5dd..bfb71465b 100755 --- a/SequenceAnalysis/pipeline_code/extra_tools_install.sh +++ b/SequenceAnalysis/pipeline_code/extra_tools_install.sh @@ -350,3 +350,32 @@ then else echo "Already installed" fi + + +echo "" +echo "" +echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" +echo "Install hifiasm" +echo "" +cd $LKSRC_DIR +if [[ ! -e ${LKTOOLS_DIR}/primer3_core || ! -z $FORCE_REINSTALL ]]; +then + echo "Cleaning up previous installs" + rm -Rf $LKTOOLS_DIR/hifiasm* + rm -Rf $LKTOOLS_DIR/yak* + rm -Rf hifiasm* + rm -Rf yak* + + git clone https://github.com/chhylp123/hifiasm + cd hifiasm + make + install hifiasm $LKTOOLS_DIR/ + cd ../ + + git clone https://github.com/lh3/yak + cd yak + make + install yak $LKTOOLS_DIR/ +else + echo "Already installed" +fi From 2e6c8193f460108b5ace04d87f27ce7037c1da4f Mon Sep 17 00:00:00 2001 From: bbimber Date: Fri, 28 Nov 2025 11:17:56 -0800 Subject: [PATCH 07/12] Debug symlink --- .../labkey/singlecell/run/CellRangerGexCountStep.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java b/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java index f998f3242..ff75c8270 100644 --- a/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java +++ b/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java @@ -645,8 +645,14 @@ public File getInclusionListFile(Logger logger) throws PipelineJobException try { Path exePath = Files.readSymbolicLink(exe.toPath()); - logger.debug("cellranger symlink target: " + exePath.toString()); - exe = FileUtil.resolveFile(exePath.toFile()); + logger.debug("cellranger symlink target: " + exePath); + if (!exePath.isAbsolute()) + { + exePath = exe.getParentFile().toPath().resolve(exePath); + logger.debug("resolved symlink target: " + exePath); + } + + exe = exePath.toFile(); logger.debug("cellranger resolved symlink target: " + exe.getPath()); } catch (IOException e) From af83b5211436e7eb99c6ed35c4da7ed6c7366339 Mon Sep 17 00:00:00 2001 From: bbimber Date: Fri, 28 Nov 2025 12:44:21 -0800 Subject: [PATCH 08/12] Bugfix to symlink --- .../org/labkey/singlecell/run/CellRangerGexCountStep.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java b/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java index ff75c8270..1ee56c9cb 100644 --- a/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java +++ b/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java @@ -648,7 +648,13 @@ public File getInclusionListFile(Logger logger) throws PipelineJobException logger.debug("cellranger symlink target: " + exePath); if (!exePath.isAbsolute()) { - exePath = exe.getParentFile().toPath().resolve(exePath); + File parent = exe.getParentFile(); + if (parent.getPath().endsWith("bin")) + { + parent = parent.getParentFile(); + } + + exePath = parent.toPath().resolve(exePath); logger.debug("resolved symlink target: " + exePath); } From 8ffb5703fd421215c0b9170c7a39df31e67362d8 Mon Sep 17 00:00:00 2001 From: bbimber Date: Fri, 28 Nov 2025 21:25:10 -0800 Subject: [PATCH 09/12] Update dependencies --- jbrowse/package-lock.json | 26 +++++++++---------- .../run/CellRangerGexCountStep.java | 7 +---- 2 files changed, 13 insertions(+), 20 deletions(-) diff --git a/jbrowse/package-lock.json b/jbrowse/package-lock.json index 43ebbed52..b968b65f6 100644 --- a/jbrowse/package-lock.json +++ b/jbrowse/package-lock.json @@ -3172,10 +3172,9 @@ } }, "node_modules/@labkey/api": { - "version": "1.43.0", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.43.0.tgz", - "integrity": "sha512-4hOQz+pM/QaCey6ooJEmEbElnR9+TDEzWG+8caFfeIX1iAg1335NXW3+/Xzs6a+L9ysRKds8bNgFPu2sxjPzfg==", - "license": "Apache-2.0" + "version": "1.44.0", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/api/-/@labkey/api-1.44.0.tgz", + "integrity": "sha512-qfHSWENWN2E1KTRACDj/Qq4Rq/tq8KIr5l6XOnMGLEoepUe8DneAnfcIVD5239oxwFDxMLEFCH83EKeat0C/9g==" }, "node_modules/@labkey/build": { "version": "8.7.0", @@ -3214,15 +3213,14 @@ } }, "node_modules/@labkey/components": { - "version": "6.63.0", - "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/components/-/@labkey/components-6.63.0.tgz", - "integrity": "sha512-E1tFkF6/erpzefo3b2Ot+jwFSlgRfeGalIuHGKXENPrubHOr5XkLXmu9lgGeyPD95fCx9Ff3dNHGxiokxsupwQ==", - "license": "SEE LICENSE IN LICENSE.txt", + "version": "6.72.1", + "resolved": "https://labkey.jfrog.io/artifactory/api/npm/libs-client/@labkey/components/-/@labkey/components-6.72.1.tgz", + "integrity": "sha512-ef3/BCqUrUHXIkkdTqcnhM1usj80GvR+SfTSEwi30pyIkiUVMDToqnbpzdKXR84cN+ZrwT4b98+YE79G9R4qyw==", "dependencies": { "@hello-pangea/dnd": "18.0.1", - "@labkey/api": "1.43.0", - "@testing-library/dom": "~10.4.0", - "@testing-library/jest-dom": "~6.6.3", + "@labkey/api": "1.44.0", + "@testing-library/dom": "~10.4.1", + "@testing-library/jest-dom": "~6.9.1", "@testing-library/react": "~16.3.0", "@testing-library/user-event": "~14.6.1", "bootstrap": "~3.4.1", @@ -8703,9 +8701,9 @@ "dev": true }, "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.2.tgz", + "integrity": "sha512-6xKiQ+cph9KImrRh0VsjH2d8/GXA4FIMlgU4B757iI1ApvcyA9VlouP0yZJha01V+huImO+kKMU7ih+2+E14fw==", "dev": true, "engines": { "node": ">= 6.13.0" diff --git a/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java b/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java index 2447a8461..471b89a7f 100644 --- a/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java +++ b/singlecell/src/org/labkey/singlecell/run/CellRangerGexCountStep.java @@ -649,11 +649,6 @@ public File getInclusionListFile(Logger logger) throws PipelineJobException if (!exePath.isAbsolute()) { File parent = exe.getParentFile(); - if (parent.getPath().endsWith("bin")) - { - parent = parent.getParentFile(); - } - exePath = parent.toPath().resolve(exePath); logger.debug("resolved symlink target: " + exePath); } @@ -667,7 +662,7 @@ public File getInclusionListFile(Logger logger) throws PipelineJobException } } - File il = new File(exe.getParentFile(), "lib/python/cellranger/barcodes/" + _inclusionListFile); + File il = new File(exe.getParentFile(), "../lib/python/cellranger/barcodes/" + _inclusionListFile); if (!il.exists()) { throw new PipelineJobException("Unable to find file: " + il.getPath()); From 2b26ae1b85373d7e0e0e3b414b9d9539ec9ee0b2 Mon Sep 17 00:00:00 2001 From: bbimber Date: Sat, 29 Nov 2025 08:11:01 -0800 Subject: [PATCH 10/12] Change Dependabot update interval to weekly --- .github/dependabot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 583decfd1..6fddca0d6 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,4 +4,4 @@ updates: - package-ecosystem: "github-actions" directory: "/" schedule: - interval: "daily" \ No newline at end of file + interval: "weekly" From 7f02232fc28a23a99d127f7ac1b168cbcb8a530e Mon Sep 17 00:00:00 2001 From: bbimber Date: Sat, 29 Nov 2025 09:46:42 -0800 Subject: [PATCH 11/12] Minor code cleanup --- cluster/src/org/labkey/cluster/pipeline/ClusterPipelineJob.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/cluster/src/org/labkey/cluster/pipeline/ClusterPipelineJob.java b/cluster/src/org/labkey/cluster/pipeline/ClusterPipelineJob.java index 2ff235f9c..f48dafea2 100644 --- a/cluster/src/org/labkey/cluster/pipeline/ClusterPipelineJob.java +++ b/cluster/src/org/labkey/cluster/pipeline/ClusterPipelineJob.java @@ -169,8 +169,6 @@ public Task createTask(PipelineJob job) @Override public RecordedActionSet run() throws PipelineJobException { - job.setStatus(TaskStatus.running, "I am running!"); - ((ClusterPipelineJob)getJob()).getRunnable().run(getJob().getLogger()); return new RecordedActionSet(); From 696a4ba8b59e77fb52fc6f9efa289814f954c585 Mon Sep 17 00:00:00 2001 From: bbimber Date: Mon, 1 Dec 2025 09:41:06 -0800 Subject: [PATCH 12/12] Augment view --- .../sequenceanalysis/sequence_readsets/SRA Info.qview.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/SequenceAnalysis/resources/queries/sequenceanalysis/sequence_readsets/SRA Info.qview.xml b/SequenceAnalysis/resources/queries/sequenceanalysis/sequence_readsets/SRA Info.qview.xml index 10a6f3edf..9678d647b 100644 --- a/SequenceAnalysis/resources/queries/sequenceanalysis/sequence_readsets/SRA Info.qview.xml +++ b/SequenceAnalysis/resources/queries/sequenceanalysis/sequence_readsets/SRA Info.qview.xml @@ -20,6 +20,7 @@ +