Skip to content

Commit 4ee2f52

Browse files
authored
Merge pull request #223 from LabKey/fb_merge_23.3_to_develop
Merge discvr-23.3 to develop
2 parents e1703f7 + 299d6a9 commit 4ee2f52

File tree

9 files changed

+55
-10
lines changed

9 files changed

+55
-10
lines changed

SequenceAnalysis/resources/schemas/sequenceanalysis.xml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1154,7 +1154,6 @@
11541154
<isReadOnly>true</isReadOnly>
11551155
<isHidden>true</isHidden>
11561156
<isUserEditable>false</isUserEditable>
1157-
<isUnselectable>true</isUnselectable>
11581157
<fk>
11591158
<fkColumnName>ObjectUri</fkColumnName>
11601159
<fkTable>Object</fkTable>
@@ -2751,7 +2750,6 @@
27512750
<isReadOnly>true</isReadOnly>
27522751
<isHidden>true</isHidden>
27532752
<isUserEditable>false</isUserEditable>
2754-
<isUnselectable>true</isUnselectable>
27552753
<fk>
27562754
<fkColumnName>ObjectUri</fkColumnName>
27572755
<fkTable>Object</fkTable>
@@ -2855,7 +2853,6 @@
28552853
<isReadOnly>true</isReadOnly>
28562854
<isHidden>true</isHidden>
28572855
<isUserEditable>false</isUserEditable>
2858-
<isUnselectable>true</isUnselectable>
28592856
<fk>
28602857
<fkColumnName>ObjectUri</fkColumnName>
28612858
<fkTable>Object</fkTable>

SequenceAnalysis/src/org/labkey/sequenceanalysis/analysis/LiftoverHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ public void liftOverVcf(JobContext ctx, ReferenceGenome targetGenome, ReferenceG
307307
else
308308
{
309309
SelectVariantsWrapper wrapper = new SelectVariantsWrapper(job.getLogger());
310-
wrapper.execute(sourceGenome.getWorkingFastaFile(), currentVCF, outputFile, List.of("--sites_only"));
310+
wrapper.execute(sourceGenome.getWorkingFastaFile(), currentVCF, outputFile, List.of("--sites-only-vcf-output"));
311311
}
312312
currentVCF = outputFile;
313313

SequenceAnalysis/src/org/labkey/sequenceanalysis/run/variant/KingInferenceStep.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,9 @@ public Output processVariants(File inputVCF, File outputDirectory, ReferenceGeno
7777
plinkArgs.add(inputVCF.getPath());
7878

7979
plinkArgs.add("--make-bed");
80+
81+
// Added since KING is designed for plink1.9. This avoids the "Too many first alleles as the major allele" error.
82+
plinkArgs.add("--maj-ref");
8083

8184
boolean limitToChromosomes = getProvider().getParameterByName("limitToChromosomes").extractValue(getPipelineCtx().getJob(), getProvider(), getStepIdx(), Boolean.class, true);
8285
if (limitToChromosomes)

SequenceAnalysis/src/org/labkey/sequenceanalysis/util/ChainFileValidator.java

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,18 @@ private String resolveSequenceId(String refName, int genomeId)
295295
@Override
296296
public void exec(ResultSet rs) throws SQLException
297297
{
298-
cachedReferences.put(rs.getString("name"), rs.getString("name"));
298+
String name = rs.getString("name");
299+
cachedReferences.put(name, name);
300+
301+
// Always store the numeric version, if present:
302+
if (name.startsWith("chr0"))
303+
{
304+
cachedReferences.put(name.replaceFirst("chr0", ""), name);
305+
}
306+
else if (name.startsWith("chr"))
307+
{
308+
cachedReferences.put(name.replaceFirst("chr", ""), name);
309+
}
299310

300311
if (StringUtils.trimToNull(rs.getString("genbank")) != null)
301312
{
@@ -338,6 +349,22 @@ public void exec(Results rs) throws SQLException
338349

339350
//UCSC is a main source of chain files, so deal with their quirks:
340351
// https://genome.ucsc.edu/cgi-bin/hgGateway
352+
if (refName.startsWith("chr0"))
353+
{
354+
// Allow chr01, chr1 -> 1
355+
String toTest = refName.replaceFirst("chr0", "");
356+
if (cachedReferences.containsKey(toTest))
357+
{
358+
return cachedReferences.get(toTest);
359+
}
360+
361+
toTest = refName.replaceFirst("chr0", "chr");
362+
if (cachedReferences.containsKey(toTest))
363+
{
364+
return cachedReferences.get(toTest);
365+
}
366+
}
367+
341368
if (refName.startsWith("chr"))
342369
{
343370
String toTest = refName.replaceFirst("chr", "");

blast/src/org/labkey/blast/model/BlastJob.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import org.apache.logging.log4j.Logger;
55
import org.apache.logging.log4j.LogManager;
66
import org.jetbrains.annotations.Nullable;
7+
import org.json.JSONException;
78
import org.json.JSONObject;
89
import org.labkey.api.data.Container;
910
import org.labkey.api.data.ContainerManager;
@@ -105,7 +106,14 @@ public void setParams(String params)
105106
if (params == null)
106107
_params = null;
107108

108-
_params = new HashMap<>(new JSONObject(params).toMap());
109+
try
110+
{
111+
_params = new HashMap<>(new JSONObject(params).toMap());
112+
}
113+
catch (JSONException e)
114+
{
115+
_log.error("Unable to parse BlastJob config for: " + _objectid + " in container: " + ContainerManager.getForId(_container).getPath() + ", was: " + _params);
116+
}
109117
}
110118

111119
public void addParam(String name, String value)

jbrowse/src/org/labkey/jbrowse/model/JsonFile.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -544,7 +544,7 @@ private JSONObject getVcfTrack(Logger log, ExpData targetFile, ReferenceGenome r
544544
JSONObject json = getExtraTrackConfig();
545545
if (json != null && json.has("additionalFeatureMsg"))
546546
{
547-
getJSONObject("renderer").put("message", json.getString("message"));
547+
getJSONObject("renderer").put("message", json.getString("additionalFeatureMsg"));
548548
}
549549
}});
550550
}});

singlecell/api-src/org/labkey/api/singlecell/pipeline/AbstractSingleCellPipelineStep.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@
2929
import java.util.ArrayList;
3030
import java.util.Arrays;
3131
import java.util.Collection;
32+
import java.util.HashSet;
3233
import java.util.List;
34+
import java.util.Set;
3335
import java.util.stream.Collectors;
3436

3537
abstract public class AbstractSingleCellPipelineStep extends AbstractPipelineStep implements SingleCellStep
@@ -89,6 +91,7 @@ public Output execute(SequenceOutputHandler.JobContext ctx, List<SeuratObjectWra
8991
try (CSVReader reader = new CSVReader(Readers.getReader(tracker), '\t'))
9092
{
9193
String[] line;
94+
Set<String> encounteredFiles = new HashSet<>();
9295
while ((line = reader.readNext()) != null)
9396
{
9497
File f = new File(ctx.getOutputDir(), line[2]);
@@ -97,6 +100,14 @@ public Output execute(SequenceOutputHandler.JobContext ctx, List<SeuratObjectWra
97100
throw new PipelineJobException("File not found: " + f.getPath());
98101
}
99102

103+
String key = line[0] + " / " + line[1] + " / "+ f.getName() + " / " + line[3] + " / " + line[4];
104+
if (encounteredFiles.contains(key))
105+
{
106+
ctx.getLogger().error("Duplicate output found: " + key);
107+
continue;
108+
}
109+
encounteredFiles.add(key);
110+
100111
getPipelineCtx().getLogger().debug("Output seurat: " + line[0] + " / " + line[1] + " / "+ f.getName() + " / " + line[3] + " / " + line[4]);
101112

102113
String outputIdVal = "NA".equals(line[3]) ? null : StringUtils.trimToNull(line[3]);

singlecell/resources/chunks/Functions.R

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,13 @@ file.create('/work/savedSeuratObjects.txt')
7070
print(paste0('Total lines in savedSeuratObjects.txt on job start:', length(readLines('savedSeuratObjects.txt'))))
7171

7272
saveData <- function(seuratObj, datasetId) {
73+
message(paste0('Saving dataset: ', datasetId, ' with ', ncol(seuratObj), ' cells'))
7374
print(paste0('Saving dataset: ', datasetId))
7475
print(seuratObj)
7576

7677
datasetIdForFile <- makeLegalFileName(datasetId)
7778
fn <- paste0(outputPrefix, '.', datasetIdForFile, '.seurat.rds')
79+
message(paste0('Filename: ', fn))
7880

7981
message(paste0('Saving RDS file: ', fn, ' with ', ncol(seuratObj), ' cells'))
8082
barcodeFile <- paste0(outputPrefix, '.', datasetIdForFile, '.cellBarcodes.csv')

singlecell/resources/schemas/singlecell.xml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@
7676
<isReadOnly>true</isReadOnly>
7777
<isHidden>true</isHidden>
7878
<isUserEditable>false</isUserEditable>
79-
<isUnselectable>true</isUnselectable>
8079
<fk>
8180
<fkColumnName>ObjectUri</fkColumnName>
8281
<fkTable>Object</fkTable>
@@ -174,7 +173,6 @@
174173
<isReadOnly>true</isReadOnly>
175174
<isHidden>true</isHidden>
176175
<isUserEditable>false</isUserEditable>
177-
<isUnselectable>true</isUnselectable>
178176
<fk>
179177
<fkColumnName>ObjectUri</fkColumnName>
180178
<fkTable>Object</fkTable>
@@ -296,7 +294,6 @@
296294
<isReadOnly>true</isReadOnly>
297295
<isHidden>true</isHidden>
298296
<isUserEditable>false</isUserEditable>
299-
<isUnselectable>true</isUnselectable>
300297
<fk>
301298
<fkColumnName>ObjectUri</fkColumnName>
302299
<fkTable>Object</fkTable>

0 commit comments

Comments
 (0)