Skip to content

Commit bf63a08

Browse files
committed
Additional validation for sequence import
1 parent d8c8856 commit bf63a08

File tree

2 files changed

+20
-12
lines changed

2 files changed

+20
-12
lines changed

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1670,7 +1670,7 @@ Ext4.define('SequenceAnalysis.panel.SequenceImportPanel', {
16701670
schemaName: 'sequenceanalysis',
16711671
queryName: 'sequence_readsets',
16721672
filterArray: [LABKEY.Filter.create('rowid', readsetIds.join(';'), LABKEY.Filter.Types.IN)],
1673-
columns: 'rowid,name,platform,application,chemistry,concentration,fragmentSize,librarytype,sampletype,subjectid,sampledate,sampleid,comments,barcode5,barcode3,instrument_run_id,totalFiles',
1673+
columns: 'rowid,name,platform,application,chemistry,concentration,fragmentSize,librarytype,sampletype,subjectid,sampledate,sampleid,comments,barcode5,barcode3,instrument_run_id,totalFiles,status',
16741674
scope: this,
16751675
failure: LDK.Utils.getErrorCallback(),
16761676
success: function(results){
@@ -1699,6 +1699,13 @@ Ext4.define('SequenceAnalysis.panel.SequenceImportPanel', {
16991699
showBarcodes = true;
17001700
}
17011701

1702+
if (row.totalFiles && row.status === 'Replaced'){
1703+
msgs.push('Readset ' + row.rowid + ' has been marked Replaced, but you are attempting to append data to it. This is probably an error.');
1704+
Ext4.Array.forEach(records, function(record) {
1705+
record.data.readset = null;
1706+
}, this);
1707+
}
1708+
17021709
//update row based on saved readset. avoid firing event
17031710
Ext4.Array.forEach(records, function(record) {
17041711
var importType = !record.data.readset ? null : row.totalFiles ? 'Merge With Existing' : 'New Data';

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

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)