Skip to content

Commit cbc8197

Browse files
authored
Merge pull request #232 from LabKey/fb_merge_23.3_to_develop
Merge discvr-23.3 to develop
2 parents bd264de + 9bd8a69 commit cbc8197

File tree

37 files changed

+655
-60
lines changed

37 files changed

+655
-60
lines changed

SequenceAnalysis/api-src/org/labkey/api/sequenceanalysis/pipeline/ToolParameterDescriptor.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -141,12 +141,12 @@ private String getJsonParamName(PipelineStepProvider<?> provider, int stepIdx)
141141
return typeName + "." + provider.getName() + "." + getName() + (stepIdx == 0 ? "" : "." + stepIdx);
142142
}
143143

144-
public String extractValue(PipelineJob job, PipelineStepProvider provider, int stepIdx)
144+
public String extractValue(PipelineJob job, PipelineStepProvider<?> provider, int stepIdx)
145145
{
146146
return extractValue(job, provider, stepIdx, String.class);
147147
}
148148

149-
public List<Object> extractAllValues(PipelineJob job, PipelineStepProvider provider)
149+
public List<Object> extractAllValues(PipelineJob job, PipelineStepProvider<?> provider)
150150
{
151151
List<Object> ret = new ArrayList<>();
152152
String prefix = getJsonParamName(provider, 0);
@@ -177,12 +177,12 @@ public List<Object> extractAllValues(PipelineJob job, PipelineStepProvider provi
177177
* to perform last minute transforms, such as converted a boolean (which is better in the UI as a checkbox)
178178
* to 1 or 0
179179
*/
180-
public String extractValueForCommandLine(PipelineJob job, PipelineStepProvider provider, int stepIdx) throws PipelineJobException
180+
public String extractValueForCommandLine(PipelineJob job, PipelineStepProvider<?> provider, int stepIdx) throws PipelineJobException
181181
{
182182
return extractValue(job, provider, stepIdx);
183183
}
184184

185-
public <ParamType> ParamType extractValue(PipelineJob job, PipelineStepProvider provider, int stepIdx, Class<ParamType> clazz)
185+
public <ParamType> ParamType extractValue(PipelineJob job, PipelineStepProvider<?> provider, int stepIdx, Class<ParamType> clazz)
186186
{
187187
return this.extractValue(job, provider, stepIdx, clazz, null);
188188
}
@@ -200,7 +200,7 @@ public <ParamType> ParamType extractValue(PipelineJob job, PipelineStepProvider<
200200
jobParams = new JSONObject(job.getParameters());
201201
}
202202

203-
if (jobParams.has(key))
203+
if (jobParams.has(key) && !jobParams.isNull(key))
204204
{
205205
Object val = jobParams.get(key);
206206
if (val == JSONObject.NULL) {

SequenceAnalysis/pipeline_code/sequence_tools_install.sh

Lines changed: 41 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -223,9 +223,7 @@ cd $LKSRC_DIR
223223
if [[ ! -e ${LKTOOLS_DIR}/flash || ! -z $FORCE_REINSTALL ]];
224224
then
225225
echo "Cleaning up previous installs"
226-
rm -Rf FLASH-1.2.11.tar.gz
227-
rm -Rf FLASH-1.2.11.tar
228-
rm -Rf FLASH-1.2.11
226+
rm -Rf FLASH-1.2.11*
229227
rm -Rf $LKTOOLS_DIR/flash
230228

231229
wget $WGET_OPTS http://ccb.jhu.edu/software/FLASH/FLASH-1.2.11-Linux-x86_64.tar.gz
@@ -540,7 +538,7 @@ cd $LKSRC_DIR
540538
if [[ ! -e ${LKTOOLS_DIR}/tabix || ! -z $FORCE_REINSTALL ]];
541539
then
542540
echo "Cleaning up previous installs"
543-
rm -Rf tabix-0.2.6*
541+
rm -Rf tabix-*
544542
rm -Rf $LKTOOLS_DIR/tabix
545543
rm -Rf $LKTOOLS_DIR/bgzip
546544

@@ -688,8 +686,7 @@ cd $LKSRC_DIR
688686
if [[ ! -e $LKTOOLS_DIR/picard.jar || ! -z $FORCE_REINSTALL ]];
689687
then
690688
echo "Cleaning up previous installs"
691-
rm -Rf picard-tools-*
692-
rm -Rf snappy-java-1.0.3-rc3.jar
689+
rm -Rf picard*
693690
rm -Rf $LKTOOLS_DIR/picard-tools
694691
rm -Rf $LKTOOLS_DIR/picard*
695692
rm -Rf $LKTOOLS_DIR/htsjdk-*
@@ -716,9 +713,7 @@ if [[ ! -e ${LKTOOLS_DIR}/bowtie || ! -e ${LKTOOLS_DIR}/bowtie-build || ! -z $FO
716713
then
717714
echo "Cleaning up previous installs"
718715

719-
#old version
720-
rm -Rf bowtie-0.12.8*
721-
rm -Rf bowtie-1.0.1*
716+
rm -Rf bowtie-*
722717
rm -Rf $LKTOOLS_DIR/bowtie
723718
rm -Rf $LKTOOLS_DIR/bowtie-build
724719

@@ -747,7 +742,7 @@ then
747742
echo "Cleaning up previous installs"
748743

749744
#old version
750-
rm -Rf bowtie2-*
745+
rm -Rf bowtie2*
751746
rm -Rf $LKTOOLS_DIR/bowtie2
752747
rm -Rf $LKTOOLS_DIR/bowtie2-*
753748

@@ -860,7 +855,7 @@ then
860855
PIP_VERSION=`$PIP_EXE -V | cut -d '(' -f 2 | sed 's/python //' | cut -c 1 2>1`
861856
if [[ $PIP_VERSION == '2' ]];then
862857
echo 'Using python 2 compatible cutadapt'
863-
wget https://pypi.python.org/packages/source/c/cutadapt/cutadapt-1.8.1.tar.gz
858+
wget $WGET_OPTS https://pypi.python.org/packages/source/c/cutadapt/cutadapt-1.8.1.tar.gz
864859
gunzip cutadapt-1.8.1.tar.gz
865860
tar -xf cutadapt-1.8.1.tar
866861
gzip cutadapt-1.8.1.tar
@@ -1030,9 +1025,7 @@ cd $LKSRC_DIR
10301025

10311026
if [[ ! -e ${LKTOOLS_DIR}/clustalw2 || ! -z $FORCE_REINSTALL ]];
10321027
then
1033-
rm -Rf clustalw-2.1.tar.gz
1034-
rm -Rf clustalw-2.1.tar
1035-
rm -Rf clustalw-2.1
1028+
rm -Rf clustalw-*
10361029
rm -Rf $LKTOOLS_DIR/clustalw2
10371030

10381031
wget $WGET_OPTS http://www.clustal.org/download/current/clustalw-2.1.tar.gz
@@ -1063,9 +1056,7 @@ cd $LKSRC_DIR
10631056

10641057
if [[ ! -e ${LKTOOLS_DIR}/muscle || ! -z $FORCE_REINSTALL ]];
10651058
then
1066-
rm -Rf muscle3.8.31_i86linux64.tar.gz
1067-
rm -Rf muscle3.8.31_i86linux64.tar
1068-
rm -Rf muscle3.8.31_i86linux64
1059+
rm -Rf muscle3*
10691060
rm -Rf $LKTOOLS_DIR/muscle
10701061

10711062
wget $WGET_OPTS https://www.drive5.com/muscle/downloads3.8.31/muscle3.8.31_i86linux64.tar.gz
@@ -1122,11 +1113,38 @@ then
11221113
rm -Rf lofreq_star*
11231114
rm -Rf $LKTOOLS_DIR/lofreq_star*
11241115

1125-
wget https://github.com/CSB5/lofreq/raw/master/dist/lofreq_star-2.1.4_linux-x86-64.tgz
1116+
wget $WGET_OPTS https://github.com/CSB5/lofreq/raw/master/dist/lofreq_star-2.1.4_linux-x86-64.tgz
11261117
tar -xf lofreq_star-2.1.4_linux-x86-64.tgz
11271118

11281119
install ./lofreq_star-2.1.4_linux-x86-64/bin/lofreq* $LKTOOLS_DIR/
1120+
else
1121+
echo "Already installed"
1122+
fi
1123+
1124+
1125+
#
1126+
#Genrich
1127+
#
1128+
1129+
echo ""
1130+
echo ""
1131+
echo "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
1132+
echo "Installing Genrich"
1133+
echo ""
1134+
cd $LKSRC_DIR
1135+
1136+
if [[ ! -e ${LKTOOLS_DIR}/Genrich || ! -z $FORCE_REINSTALL ]];
1137+
then
1138+
rm -Rf Genrich*
1139+
rm -Rf v0.6.1*
1140+
rm -Rf $LKTOOLS_DIR/Genrich*
1141+
1142+
wget $WGET_OPTS https://github.com/jsh58/Genrich/archive/refs/tags/v0.6.1.tar.gz
1143+
tar -xf v0.6.1.tar.gz
1144+
cd Genrich-0.6.1
1145+
make
11291146

1147+
install ./Genrich $LKTOOLS_DIR/
11301148
else
11311149
echo "Already installed"
11321150
fi
@@ -1139,9 +1157,13 @@ then
11391157
chown -R ${LK_USER} $LKSRC_DIR
11401158
fi
11411159

1142-
if [ ! -z $CLEAN_SRC ]; then
1160+
if [ ! -z $CLEAN_SRC ];
1161+
then
11431162
echo "Cleaning up tool_src"
11441163
rm -Rf $LKSRC_DIR
1164+
else
1165+
echo "Contents of tool_src:"
1166+
ls $LKSRC_DIR
11451167
fi
11461168

11471169
echo ""

SequenceAnalysis/resources/web/SequenceAnalysis/panel/SequenceImportPanel.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2422,6 +2422,7 @@ Ext4.define('SequenceAnalysis.panel.SequenceImportPanel', {
24222422
sequencePanel: this,
24232423
targetGrid: grid,
24242424
readsetStore: this.readsetStore,
2425+
modal: true,
24252426
title: 'Infer Readset Id',
24262427
bodyStyle: 'padding: 5px;',
24272428
width: 500,

SequenceAnalysis/src/org/labkey/sequenceanalysis/ScatterGatherUtils.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ public static void possiblyCacheSupportFiles(SequenceOutputHandler.JobContext ct
3838
{
3939
for (String param : Arrays.asList("exclude_intervals", "forceSitesFile"))
4040
{
41-
if (ctx.getParams().get("variantCalling.GenotypeGVCFs." + param) != null)
41+
if (!ctx.getParams().isNull("variantCalling.GenotypeGVCFs." + param))
4242
{
43-
File inputFile = ctx.getSequenceSupport().getCachedData(ctx.getParams().getInt("variantCalling.GenotypeGVCFs." + param));
43+
File inputFile = ctx.getSequenceSupport().getCachedData(ctx.getParams().optInt("variantCalling.GenotypeGVCFs." + param));
4444
if (!inputFile.exists())
4545
{
4646
throw new PipelineJobException("Unable to find file: " + inputFile.getPath());

SequenceAnalysis/src/org/labkey/sequenceanalysis/SequenceAnalysisController.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4152,25 +4152,27 @@ public ApiResponse execute(ImportOutputFilesForm form, BindException errors) thr
41524152
}
41534153

41544154
Map<String, Object> params = new CaseInsensitiveHashMap<>();
4155-
if (o.get("name") == null)
4155+
if (o.isNull("name"))
41564156
{
41574157
errors.reject(ERROR_MSG, "Missing name for file: " + file.getName());
41584158
return null;
41594159
}
41604160

4161-
if (o.get("libraryId") == null)
4161+
if (o.isNull("libraryId"))
41624162
{
41634163
errors.reject(ERROR_MSG, "Missing genome Id for file: " + file.getName());
41644164
return null;
41654165
}
41664166

41674167
params.put("name", o.getString("name"));
4168-
params.put("description", o.getString("description"));
4168+
params.put("description", o.optString("description"));
41694169

4170-
params.put("library_id", o.getInt("libraryId"));
4171-
if (StringUtils.trimToNull(o.getString("readset")) != null)
4170+
params.put("library_id", o.optInt("libraryId"));
4171+
if (!o.isNull("readset") && StringUtils.trimToNull(o.optString("readset")) != null)
4172+
{
41724173
params.put("readset", o.getInt("readset"));
4173-
params.put("category", o.getString("category"));
4174+
}
4175+
params.put("category", o.optString("category"));
41744176

41754177
params.put("container", getContainer().getId());
41764178
params.put("created", new Date());

SequenceAnalysis/src/org/labkey/sequenceanalysis/SequenceAnalysisModule.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@
7979
import org.labkey.sequenceanalysis.run.alignment.VulcanWrapper;
8080
import org.labkey.sequenceanalysis.run.analysis.BamIterator;
8181
import org.labkey.sequenceanalysis.run.analysis.ExportOverlappingReadsAnalysis;
82+
import org.labkey.sequenceanalysis.run.analysis.GenrichStep;
8283
import org.labkey.sequenceanalysis.run.analysis.HaplotypeCallerAnalysis;
8384
import org.labkey.sequenceanalysis.run.analysis.ImmunoGenotypingAnalysis;
8485
import org.labkey.sequenceanalysis.run.analysis.LofreqAnalysis;
@@ -113,6 +114,7 @@
113114
import org.labkey.sequenceanalysis.run.preprocessing.CutadaptWrapper;
114115
import org.labkey.sequenceanalysis.run.preprocessing.DownsampleFastqWrapper;
115116
import org.labkey.sequenceanalysis.run.preprocessing.FastqcProcessingStep;
117+
import org.labkey.sequenceanalysis.run.preprocessing.FilterReadsStep;
116118
import org.labkey.sequenceanalysis.run.preprocessing.FlashPipelineStep;
117119
import org.labkey.sequenceanalysis.run.preprocessing.PrintReadsContainingStep;
118120
import org.labkey.sequenceanalysis.run.preprocessing.TagPcrSummaryStep;
@@ -224,6 +226,7 @@ public static void registerPipelineSteps()
224226
SequencePipelineService.get().registerPipelineStep(new TrimmomaticWrapper.CropReadsProvider());
225227
SequencePipelineService.get().registerPipelineStep(new FlashPipelineStep.Provider());
226228
SequencePipelineService.get().registerPipelineStep(new PrintReadsContainingStep.Provider());
229+
SequencePipelineService.get().registerPipelineStep(new FilterReadsStep.Provider());
227230
SequencePipelineService.get().registerPipelineStep(new TrimmomaticWrapper.HeadCropReadsProvider());
228231
SequencePipelineService.get().registerPipelineStep(new TrimmomaticWrapper.MaxInfoTrimmingProvider());
229232
SequencePipelineService.get().registerPipelineStep(new TrimmomaticWrapper.AdapterTrimmingProvider());
@@ -283,6 +286,7 @@ public static void registerPipelineSteps()
283286
SequencePipelineService.get().registerPipelineStep(new LofreqAnalysis.Provider());
284287
SequencePipelineService.get().registerPipelineStep(new PindelAnalysis.Provider());
285288
SequencePipelineService.get().registerPipelineStep(new PbsvAnalysis.Provider());
289+
SequencePipelineService.get().registerPipelineStep(new GenrichStep.Provider());
286290

287291
//SequencePipelineService.get().registerPipelineStep(new BlastUnmappedReadAnalysis.Provider());
288292
SequencePipelineService.get().registerPipelineStep(new PARalyzerAnalysis.Provider());

SequenceAnalysis/src/org/labkey/sequenceanalysis/pipeline/ReferenceGenomeImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public boolean isTemporaryGenome() {
6161
@Override
6262
public @NotNull File getWorkingFastaFile()
6363
{
64-
if (SequencePipelineService.get().isRemoteGenomeCacheUsed())
64+
if (!isTemporaryGenome() && SequencePipelineService.get().isRemoteGenomeCacheUsed())
6565
{
6666
File ret = SequencePipelineService.get().getRemoteGenomeCacheDirectory();
6767
if (ret != null)

SequenceAnalysis/src/org/labkey/sequenceanalysis/pipeline/SequencePipelineSettings.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,9 @@ public SequenceReadsetImpl createReadsetModel(JSONObject o)
192192
model.setLibraryType(o.optString("librarytype"));
193193
model.setName(o.optString("readsetname"));
194194
if (StringUtils.trimToNull(o.optString("readset")) != null)
195-
model.setRowId(getInt(o.getString("readset")));
195+
{
196+
model.setRowId(getInt(o.get("readset")));
197+
}
196198

197199
if (StringUtils.trimToNull(o.optString("instrument_run_id")) != null)
198200
{
@@ -275,7 +277,7 @@ private File resolveFile(JSONObject json, @Nullable SequenceJob job, boolean all
275277
return null;
276278
}
277279

278-
private Integer getInt(String v)
280+
private Integer getInt(Object v)
279281
{
280282
return ConvertHelper.convert(v, Integer.class);
281283
}

SequenceAnalysis/src/org/labkey/sequenceanalysis/query/SequenceAnalysisCustomizer.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,13 @@ public void customize(TableInfo tableInfo)
5656
LDKService.get().applyNaturalSort(ti, "name");
5757
}
5858
}
59+
else if (tableInfo.getName().equalsIgnoreCase(SequenceAnalysisSchema.TABLE_INSTRUMENT_RUNS))
60+
{
61+
if (tableInfo.getSqlDialect().isSqlServer())
62+
{
63+
LDKService.get().applyNaturalSort(ti, "name");
64+
}
65+
}
5966
else if (tableInfo.getName().equalsIgnoreCase(SequenceAnalysisSchema.TABLE_OUTPUTFILES))
6067
{
6168
LaboratoryService.get().getLaboratoryTableCustomizer().customize(tableInfo);

SequenceAnalysis/src/org/labkey/sequenceanalysis/run/alignment/BWAMemWrapper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ public BWAMemAlignmentStep create(PipelineContext context)
9898
}
9999
}
100100

101-
private void performMemAlignment(PipelineJob job, AlignmentOutputImpl output, File inputFastq1, @Nullable File inputFastq2, File outputDirectory, ReferenceGenome referenceGenome, String basename, List<String> additionalArgs) throws PipelineJobException
101+
public void performMemAlignment(PipelineJob job, AlignmentOutputImpl output, File inputFastq1, @Nullable File inputFastq2, File outputDirectory, ReferenceGenome referenceGenome, String basename, List<String> additionalArgs) throws PipelineJobException
102102
{
103103
setOutputDir(outputDirectory);
104104

0 commit comments

Comments
 (0)