Skip to content

Commit e7e88b9

Browse files
committed
More verbose description in ConvertToCramHandler
1 parent 1806f8f commit e7e88b9

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

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

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
package org.labkey.sequenceanalysis.pipeline;
22

33
import org.json.JSONObject;
4+
import org.labkey.api.collections.CaseInsensitiveHashMap;
5+
import org.labkey.api.data.Container;
46
import org.labkey.api.exp.api.ExpData;
57
import org.labkey.api.module.ModuleLoader;
68
import org.labkey.api.pipeline.PipelineJob;
79
import org.labkey.api.pipeline.PipelineJobException;
810
import org.labkey.api.pipeline.RecordedAction;
11+
import org.labkey.api.query.BatchValidationException;
12+
import org.labkey.api.query.InvalidKeyException;
13+
import org.labkey.api.query.QueryService;
14+
import org.labkey.api.query.QueryUpdateServiceException;
915
import org.labkey.api.sequenceanalysis.SequenceOutputFile;
1016
import org.labkey.api.sequenceanalysis.pipeline.AbstractParameterizedOutputHandler;
1117
import org.labkey.api.sequenceanalysis.pipeline.ReferenceGenome;
@@ -16,11 +22,16 @@
1622
import org.labkey.api.sequenceanalysis.pipeline.ToolParameterDescriptor;
1723
import org.labkey.api.util.FileUtil;
1824
import org.labkey.sequenceanalysis.SequenceAnalysisModule;
25+
import org.labkey.sequenceanalysis.SequenceAnalysisSchema;
1926
import org.labkey.sequenceanalysis.util.SequenceUtil;
2027

2128
import java.io.File;
29+
import java.sql.SQLException;
30+
import java.util.ArrayList;
2231
import java.util.Arrays;
2332
import java.util.List;
33+
import java.util.Map;
34+
import java.util.stream.Collectors;
2435

2536
public class ConvertToCramHandler extends AbstractParameterizedOutputHandler<SequenceOutputHandler.SequenceOutputProcessor>
2637
{
@@ -128,6 +139,12 @@ private void checkCramAndIndex(SequenceOutputFile so) throws PipelineJobExceptio
128139
@Override
129140
public void complete(PipelineJob job, List<SequenceOutputFile> inputs, List<SequenceOutputFile> outputsCreated, SequenceAnalysisJobSupport support) throws PipelineJobException
130141
{
142+
List<Map<String, Object>> toUpdate = new ArrayList<>();
143+
List<Map<String, Object>> oldKeys = inputs.stream().map(x -> {
144+
Map<String, Object> row = new CaseInsensitiveHashMap<>();
145+
row.put("rowid", x.getRowid());
146+
return(row);
147+
}).collect(Collectors.toList());
131148

132149
for (SequenceOutputFile so : inputs)
133150
{
@@ -137,7 +154,29 @@ public void complete(PipelineJob job, List<SequenceOutputFile> inputs, List<Sequ
137154
job.getLogger().info("Updating ExpData record with new filepath: " + cram.getPath());
138155
ExpData d = so.getExpData();
139156
d.setDataFileURI(cram.toURI());
157+
d.setName(cram.getName());
140158
d.save(job.getUser());
159+
160+
if (so.getName().contains(".bam"))
161+
{
162+
Map<String, Object> row = new CaseInsensitiveHashMap<>();
163+
row.put("rowid", so.getRowid());
164+
row.put("container", so.getContainer());
165+
row.put("name", so.getName().replaceAll("\\.bam", "\\.cram"));
166+
row.put("description", (so.getDescription() == null ? "" : so.getDescription() + "\n") + "Converted from BAM to CRAM");
167+
toUpdate.add(row);
168+
}
169+
}
170+
171+
try
172+
{
173+
Container target = job.getContainer().isWorkbook() ? job.getContainer().getParent() : job.getContainer();
174+
QueryService.get().getUserSchema(job.getUser(), target, SequenceAnalysisSchema.SCHEMA_NAME).getTable(SequenceAnalysisSchema.TABLE_OUTPUTFILES).getUpdateService().updateRows(job.getUser(), target, toUpdate, oldKeys, null, null);
175+
}
176+
catch (QueryUpdateServiceException | InvalidKeyException | BatchValidationException | SQLException e)
177+
{
178+
throw new PipelineJobException(e);
179+
141180
}
142181
}
143182
}

0 commit comments

Comments
 (0)