Skip to content

Commit 6d58a19

Browse files
committed
Support bigWig tracks
1 parent 5b7589f commit 6d58a19

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

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

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,10 @@ else if (TRACK_TYPES.bed.getFileType().isType(targetFile.getFile()))
306306
{
307307
ret = getBedTrack(log, targetFile, rg);
308308
}
309+
else if (TRACK_TYPES.bw.getFileType().isType(targetFile.getFile()))
310+
{
311+
ret = getBigWigTrack(log, targetFile, rg);
312+
}
309313
else
310314
{
311315
log.info("Unsupported track type: " + targetFile.getFile().getName());
@@ -634,6 +638,34 @@ private JSONObject getBedTrack(Logger log, ExpData targetFile, ReferenceGenome r
634638
return getTabixTrack(log, targetFile, rg, adapterType, prefix);
635639
}
636640

641+
private JSONObject getBigWigTrack(Logger log, ExpData targetFile, ReferenceGenome rg) throws PipelineJobException
642+
{
643+
JSONObject ret = new JSONObject();
644+
ret.put("type", getTrackType());
645+
ret.put("trackId", getJsonTrackId());
646+
ret.put("name", getLabel());
647+
ret.put("assemblyNames", new JSONArray(){{
648+
put(JBrowseSession.getAssemblyName(rg));
649+
}});
650+
651+
String url = targetFile.getWebDavURL(FileContentService.PathType.full);
652+
if (url == null)
653+
{
654+
log.info("Unable to create WebDav URL for JBrowse resource with path: " + targetFile.getFile());
655+
return null;
656+
}
657+
658+
ret.put("adapter", new JSONObject(){{
659+
put("type", "BigWig");
660+
put("bigWigLocation", new JSONObject(){{
661+
put("uri", url);
662+
put("locationType", "UriLocation");
663+
}});
664+
}});
665+
666+
return ret;
667+
}
668+
637669
private JSONObject getGxfTrack(Logger log, ExpData targetFile, ReferenceGenome rg) throws PipelineJobException
638670
{
639671
String adapterType = TRACK_TYPES.gff.getFileType().isType(targetFile.getFile()) ? "Gff3TabixAdapter" : "GtfTabixAdapter";
@@ -665,6 +697,10 @@ else if (TRACK_TYPES.bed.getFileType().isType(targetFile.getFile()))
665697
{
666698
return "FeatureTrack";
667699
}
700+
else if (TRACK_TYPES.bw.getFileType().isType(targetFile.getFile()))
701+
{
702+
return "QuantitativeTrack";
703+
}
668704
else
669705
{
670706
throw new IllegalArgumentException("Unsupported track type: " + targetFile.getFile().getName());
@@ -1147,6 +1183,11 @@ else if (TRACK_TYPES.bed.getFileType().isType(targetFile.getFile()))
11471183
{
11481184
return "LinearBasicDisplay";
11491185
}
1186+
else if (TRACK_TYPES.bw.getFileType().isType(targetFile.getFile()))
1187+
{
1188+
//TODO: Quantitative??
1189+
return "LinearBasicDisplay";
1190+
}
11501191
else
11511192
{
11521193
throw new IllegalArgumentException("Unsupported track type: " + targetFile.getFile().getName());
@@ -1160,6 +1201,7 @@ public static enum TRACK_TYPES
11601201
gtf(".gtf", true),
11611202
gff(Arrays.asList(".gff", ".gff3"), true),
11621203
bed(".bed", true),
1204+
bw(".bw", false),
11631205
vcf(Arrays.asList(".vcf"), true);
11641206

11651207
private List<String> _extensions;

0 commit comments

Comments
 (0)