@@ -178,8 +178,6 @@ public File getBaseDir()
178178 return needsProcessing () ? new File (jbrowseDir , getObjectId ()) : null ;
179179 }
180180
181- private static final FileType _ft = new FileType (Arrays .asList (".bam" , ".vcf" ), ".vcf" , FileType .gzSupportLevel .SUPPORT_GZ );
182-
183181 public String getLabel ()
184182 {
185183 if (_label == null )
@@ -293,9 +291,9 @@ else if (!targetFile.getContainer().hasPermission(u, ReadPermission.class))
293291 {
294292 ret = getVcfTrack (log , targetFile , rg );
295293 }
296- else if (TRACK_TYPES .bam .getFileType ().isType (targetFile .getFile ()))
294+ else if (TRACK_TYPES .bam .getFileType ().isType (targetFile .getFile ()) || TRACK_TYPES . cram . getFileType (). isType ( targetFile . getFile ()) )
297295 {
298- ret = getBamTrack (log , targetFile , rg );
296+ ret = getBamOrCramTrack (log , targetFile , rg );
299297 }
300298 else if (TRACK_TYPES .gff .getFileType ().isType (targetFile .getFile ()))
301299 {
@@ -569,7 +567,7 @@ public String getJsonTrackId()
569567 return finalLocation == null ? null : finalLocation .getName ();
570568 }
571569
572- private JSONObject getBamTrack (Logger log , ExpData targetFile , ReferenceGenome rg )
570+ private JSONObject getBamOrCramTrack (Logger log , ExpData targetFile , ReferenceGenome rg )
573571 {
574572 JSONObject ret = new JSONObject ();
575573 ret .put ("type" , getTrackType ());
@@ -589,17 +587,19 @@ private JSONObject getBamTrack(Logger log, ExpData targetFile, ReferenceGenome r
589587 return null ;
590588 }
591589
590+ String type = TRACK_TYPES .bam .getFileType ().isType (targetFile .getFile ()) ? "BamAdapter" : "CramAdapter" ;
591+ boolean isBam = "BamAdapter" .equals (type );
592592 ret .put ("adapter" , new JSONObject (){{
593- put ("type" , "BamAdapter" );
594- put ("bamLocation" , new JSONObject (){{
593+ put ("type" , type );
594+ put (isBam ? "bamLocation" : "cramLocation " , new JSONObject (){{
595595 put ("uri" , url );
596596 }});
597597
598598 put ("index" , new JSONObject (){{
599599 put ("location" , new JSONObject (){{
600- put ("uri" , url + ".bai" );
600+ put ("uri" , url + ( isBam ? ".bai" : ".crai" ) );
601601 }});
602- put ("indexType" , "BAI" );
602+ put ("indexType" , isBam ? "BAI" : "CRAI " );
603603 }});
604604
605605 put ("sequenceAdapter" , JBrowseSession .getIndexedFastaAdapter (rg ));
@@ -631,7 +631,7 @@ public String getTrackType()
631631 {
632632 return "ExtendedVariantTrack" ;
633633 }
634- else if (TRACK_TYPES .bam .getFileType ().isType (targetFile .getFile ()))
634+ else if (TRACK_TYPES .bam .getFileType ().isType (targetFile .getFile ()) || TRACK_TYPES . cram . getFileType (). isType ( targetFile . getFile ()) )
635635 {
636636 return "AlignmentsTrack" ;
637637 }
@@ -1113,7 +1113,7 @@ public String getDisplayType()
11131113 {
11141114 return "ExtendedVariantDisplay" ;
11151115 }
1116- else if (TRACK_TYPES .bam .getFileType ().isType (targetFile .getFile ()))
1116+ else if (TRACK_TYPES .bam .getFileType ().isType (targetFile .getFile ()) || TRACK_TYPES . cram . getFileType (). isType ( targetFile . getFile ()) )
11171117 {
11181118 return "LinearAlignmentsDisplay" ;
11191119 }
@@ -1138,6 +1138,7 @@ else if (TRACK_TYPES.bed.getFileType().isType(targetFile.getFile()))
11381138 public static enum TRACK_TYPES
11391139 {
11401140 bam (".bam" , false ),
1141+ cram (".cram" , false ),
11411142 gtf (".gtf" , true ),
11421143 gff (Arrays .asList (".gff" , ".gff3" ), true ),
11431144 bed (".bed" , true ),
0 commit comments