Skip to content

Commit 0983212

Browse files
committed
Refactor JsonFile to include User when processing resources
1 parent c963f06 commit 0983212

File tree

8 files changed

+40
-18
lines changed

8 files changed

+40
-18
lines changed

jbrowse/api-src/org/labkey/api/jbrowse/JBrowseService.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
import org.labkey.api.pipeline.PipelineValidationException;
99
import org.labkey.api.security.User;
1010

11+
import java.io.File;
1112
import java.io.IOException;
13+
import java.util.List;
1214

1315
/**
1416
* Created by bimber on 11/3/2016.
@@ -38,4 +40,6 @@ static public void setInstance(JBrowseService instance)
3840
abstract public void registerGroupsProvider(GroupsProvider provider);
3941

4042
abstract public void registerFieldCustomizer(JBrowseFieldCustomizer customizer);
43+
44+
abstract public void prepareLuceneIndex(File vcf, File indexDir, Logger log, List<String> infoFieldsForFullTextSearch, boolean allowLenientLuceneProcessing) throws PipelineJobException;
4145
}

jbrowse/src/org/labkey/jbrowse/JBrowseMaintenanceTask.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,8 @@ private void processContainer(Container c, Logger log) throws IOException
286286
{
287287
try
288288
{
289-
j.prepareResource(log, false, true);
289+
User u = LDKService.get().getBackgroundAdminUser();
290+
j.prepareResource(u, log, false, true);
290291
}
291292
catch (Exception e)
292293
{

jbrowse/src/org/labkey/jbrowse/JBrowseSchema.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public class JBrowseSchema
2626
private static final JBrowseSchema _instance = new JBrowseSchema();
2727
public static final String NAME = "jbrowse";
2828

29+
public static final String SEQUENCE_ANALYSIS = "sequenceanalysis";
2930
public static final String TABLE_DATABASES = "databases";
3031
public static final String TABLE_DATABASE_MEMBERS = "database_members";
3132
public static final String TABLE_JSONFILES = "jsonfiles";

jbrowse/src/org/labkey/jbrowse/JBrowseServiceImpl.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,10 @@
1717
import org.labkey.api.util.logging.LogHelper;
1818
import org.labkey.jbrowse.model.JBrowseSession;
1919
import org.labkey.jbrowse.model.JsonFile;
20+
import org.labkey.jbrowse.pipeline.JBrowseLucenePipelineJob;
2021
import org.labkey.jbrowse.pipeline.JBrowseSessionPipelineJob;
2122

23+
import java.io.File;
2224
import java.util.ArrayList;
2325
import java.util.Collection;
2426
import java.util.Collections;
@@ -60,7 +62,7 @@ public String prepareOutputFile(User u, Logger log, Integer outputFileId, boolea
6062
{
6163
try
6264
{
63-
ret.prepareResource(log, false, true);
65+
ret.prepareResource(u, log, false, true);
6466
}
6567
catch (PipelineJobException e)
6668
{
@@ -108,6 +110,12 @@ public void registerFieldCustomizer(JBrowseFieldCustomizer customizer)
108110
_customizers.add(customizer);
109111
}
110112

113+
@Override
114+
public void prepareLuceneIndex(File vcf, File indexDir, Logger log, List<String> infoFieldsForFullTextSearch, boolean allowLenientLuceneProcessing) throws PipelineJobException
115+
{
116+
JBrowseLucenePipelineJob.prepareLuceneIndex(vcf, indexDir, log, infoFieldsForFullTextSearch, allowLenientLuceneProcessing);
117+
}
118+
111119
public Map<String, Map<String, Object>> resolveSubjects(List<String> subjects, User u, Container c)
112120
{
113121
Map<String, Map<String, Object>> ret = new HashMap<>();

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,10 +114,10 @@ public boolean shouldExist()
114114
abstract protected TableSelector getSelector();
115115

116116
@Override
117-
public File prepareResource(Logger log, boolean throwIfNotPrepared, boolean forceReprocess) throws PipelineJobException
117+
public File prepareResource(User u, Logger log, boolean throwIfNotPrepared, boolean forceReprocess) throws PipelineJobException
118118
{
119119
createGtf(log, throwIfNotPrepared, forceReprocess);
120-
return super.prepareResource(log, throwIfNotPrepared, forceReprocess);
120+
return super.prepareResource(u, log, throwIfNotPrepared, forceReprocess);
121121
}
122122

123123
public void createGtf(Logger log, boolean throwOnNotFound, boolean forceRecreate) throws PipelineJobException

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ public void ensureJsonFilesPrepared(User u, Logger log) throws PipelineJobExcept
213213
{
214214
try
215215
{
216-
x.prepareResource(log, false, false);
216+
x.prepareResource(u, log, false, false);
217217
}
218218
catch (Exception e)
219219
{

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

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
import org.labkey.api.view.UnauthorizedException;
5252
import org.labkey.jbrowse.JBrowseManager;
5353
import org.labkey.jbrowse.JBrowseSchema;
54+
import org.labkey.jbrowse.pipeline.IndexVariantsStep;
5455
import org.labkey.jbrowse.pipeline.JBrowseLucenePipelineJob;
5556
import org.labkey.sequenceanalysis.run.util.TabixRunner;
5657

@@ -297,7 +298,7 @@ else if (TRACK_TYPES.bam.getFileType().isType(targetFile.getFile()) || TRACK_TYP
297298
}
298299
else if (TRACK_TYPES.gff.getFileType().isType(targetFile.getFile()))
299300
{
300-
ret = getGxfTrack(log, targetFile, rg);
301+
ret = getGxfTrack(u, log, targetFile, rg);
301302
}
302303
else if (TRACK_TYPES.gtf.getFileType().isType(targetFile.getFile()))
303304
{
@@ -308,7 +309,7 @@ else if (TRACK_TYPES.gtf.getFileType().isType(targetFile.getFile()))
308309
}
309310
else if (TRACK_TYPES.bed.getFileType().isType(targetFile.getFile()))
310311
{
311-
ret = getBedTrack(log, targetFile, rg);
312+
ret = getBedTrack(u, log, targetFile, rg);
312313
}
313314
else if (TRACK_TYPES.bw.getFileType().isType(targetFile.getFile()))
314315
{
@@ -643,12 +644,12 @@ private JSONObject getBamOrCramTrack(Logger log, ExpData targetFile, ReferenceGe
643644
return ret;
644645
}
645646

646-
private JSONObject getBedTrack(Logger log, ExpData targetFile, ReferenceGenome rg) throws PipelineJobException
647+
private JSONObject getBedTrack(User u, Logger log, ExpData targetFile, ReferenceGenome rg) throws PipelineJobException
647648
{
648649
String adapterType = "BedTabixAdapter";
649650
String prefix = "bed";
650651

651-
return getTabixTrack(log, targetFile, rg, adapterType, prefix);
652+
return getTabixTrack(u, log, targetFile, rg, adapterType, prefix);
652653
}
653654

654655
private JSONObject getBigWigTrack(Logger log, ExpData targetFile, ReferenceGenome rg) throws PipelineJobException
@@ -682,12 +683,12 @@ private JSONObject getBigWigTrack(Logger log, ExpData targetFile, ReferenceGenom
682683
return ret;
683684
}
684685

685-
private JSONObject getGxfTrack(Logger log, ExpData targetFile, ReferenceGenome rg) throws PipelineJobException
686+
private JSONObject getGxfTrack(User u, Logger log, ExpData targetFile, ReferenceGenome rg) throws PipelineJobException
686687
{
687688
String adapterType = TRACK_TYPES.gff.getFileType().isType(targetFile.getFile()) ? "Gff3TabixAdapter" : "GtfTabixAdapter";
688689
String prefix = TRACK_TYPES.gff.getFileType().isType(targetFile.getFile()) ? "gff" : "gtf";
689690

690-
return getTabixTrack(log, targetFile, rg, adapterType, prefix);
691+
return getTabixTrack(u, log, targetFile, rg, adapterType, prefix);
691692
}
692693

693694
public String getTrackType()
@@ -729,7 +730,7 @@ else if (TRACK_TYPES.bw.getFileType().isType(targetFile.getFile()))
729730
}
730731
}
731732

732-
private JSONObject getTabixTrack(Logger log, ExpData targetFile, ReferenceGenome rg, String adapterType, String prefix) throws PipelineJobException
733+
private JSONObject getTabixTrack(User u, Logger log, ExpData targetFile, ReferenceGenome rg, String adapterType, String prefix) throws PipelineJobException
733734
{
734735
JSONObject ret = new JSONObject();
735736
ret.put("type", getTrackType());
@@ -743,7 +744,7 @@ private JSONObject getTabixTrack(Logger log, ExpData targetFile, ReferenceGenome
743744
}});
744745

745746
// if not gzipped, we need to process it:
746-
File gzipped = prepareResource(log, true, false);
747+
File gzipped = prepareResource(u, log, true, false);
747748
final String url;
748749
if (!getExpData().getFile().equals(gzipped))
749750
{
@@ -809,7 +810,7 @@ protected boolean needsGzip()
809810
return !isGzipped() && (TRACK_TYPES.gff.getFileType().isType(fn) || TRACK_TYPES.gtf.getFileType().isType(fn) || TRACK_TYPES.bed.getFileType().isType(fn));
810811
}
811812

812-
public File prepareResource(Logger log, boolean throwIfNotPrepared, boolean forceReprocess) throws PipelineJobException
813+
public File prepareResource(User u, Logger log, boolean throwIfNotPrepared, boolean forceReprocess) throws PipelineJobException
813814
{
814815
ExpData expData = getExpData();
815816
if (expData == null)
@@ -939,6 +940,13 @@ public File prepareResource(Logger log, boolean throwIfNotPrepared, boolean forc
939940

940941
if (shouldHaveFreeTextSearch())
941942
{
943+
// TODO:
944+
// Try to find a matching existing index:
945+
// Container targetContainer = getContainerObj().isWorkbookOrTab() ? getContainerObj().getParent() : getContainerObj();
946+
// TableInfo ti = QueryService.get().getUserSchema(u, targetContainer, JBrowseSchema.SEQUENCE_ANALYSIS).getTable("outputfiles");
947+
// SimpleFilter filter = new SimpleFilter(FieldKey.fromString("category"), IndexVariantsStep.CATEGORY);
948+
// filter.addCondition(FieldKey.fromString("library_id"), rg)
949+
942950
File luceneDir = getExpectedLocationOfLuceneIndex(throwIfNotPrepared);
943951
long sizeInGb = targetFile.length() / (1024 * 1024 * 1024);
944952
log.debug("preparing lucene index, VCF size: " + sizeInGb);

jbrowse/src/org/labkey/jbrowse/pipeline/JBrowseSessionTask.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ private void prepareGenome(boolean forceReprocess) throws PipelineJobException
135135
getJob().getLogger().info("total files to reprocess: " + jsonFiles.size());
136136
for (JsonFile f : jsonFiles)
137137
{
138-
f.prepareResource(getJob().getLogger(), false, forceReprocess);
138+
f.prepareResource(getJob().getUser(), getJob().getLogger(), false, forceReprocess);
139139
}
140140
}
141141

@@ -152,7 +152,7 @@ private void reprocessResources() throws PipelineJobException
152152
getJob().getLogger().info("total files to reprocess: " + jsonFiles.size());
153153
for (JsonFile f : jsonFiles)
154154
{
155-
f.prepareResource(getJob().getLogger(), false, true);
155+
f.prepareResource(getJob().getUser(), getJob().getLogger(), false, true);
156156
}
157157
}
158158

@@ -257,7 +257,7 @@ private void createOrAddToSession() throws PipelineJobException
257257
trackRecord = Table.insert(getJob().getUser(), databaseMembers, trackRecord);
258258
databaseMemberRecordsCreated.add((Integer)trackRecord.get("rowid"));
259259

260-
json.prepareResource(getJob().getLogger(), false, false);
260+
json.prepareResource(getJob().getUser(), getJob().getLogger(), false, false);
261261
}
262262
}
263263
else
@@ -308,7 +308,7 @@ private void createOrAddToSession() throws PipelineJobException
308308
trackRecord = Table.insert(getJob().getUser(), databaseMembers, trackRecord);
309309
databaseMemberRecordsCreated.add((Integer) trackRecord.get("rowid"));
310310

311-
json.prepareResource(getJob().getLogger(), false, false);
311+
json.prepareResource(getJob().getUser(), getJob().getLogger(), false, false);
312312
}
313313
}
314314

0 commit comments

Comments
 (0)