Changeset 5731


Ignore:
Timestamp:
Nov 19, 2019, 10:04:42 AM (3 years ago)
Author:
Nicklas Nordborg
Message:

References #1199: Implement Variant calling pipeline

Added a variant calling section to the case summary.

Location:
extensions/net.sf.basedb.reggie/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • extensions/net.sf.basedb.reggie/trunk/resources/reports/case-summary.js

    r5548 r5731  
    715715          cs.addColumn('rawBioAssays.geneReport', geneReport && geneReport.type == 'FILE' ? 'Yes '+cs.asFileLink(geneReport, 'pdffile.png') : 'No');
    716716          cs.addColumn('rawBioAssays.pilotReport', pilotReport && pilotReport.type == 'FILE' ? 'Yes '+cs.asFileLink(pilotReport, 'pdffile.png') : 'No');
    717           cs.addColumn('rawBioAssays.comment', cs.truncate(a.comment, truncateAt));
     717          cs.addColumn('rawBioAssays.comment', cs.truncate(raw.comment, truncateAt));
    718718        }
    719719        catch (e)
     
    730730    }
    731731   
     732    var variantCalling = response.variantCalling;
     733    if (variantCalling && variantCalling.length > 0)
     734    {
     735      var truncateAt = TRUNCATE_SIZE[Math.min(variantCalling.length-1, TRUNCATE_SIZE.length)];
     736      maxItemsInRightCol = Math.max(maxItemsInRightCol, variantCalling.length);
     737      for (var i = 0; i < variantCalling.length; i++)
     738      {
     739        try
     740        {
     741          var vcall = variantCalling[i];
     742          defaultColClass = cs.getDefaultColClass(vcall, yellowPrefixes);
     743          cs.addColumn('variantCalling.name', cs.asLink('RAWBIOASSAY', vcall, 0, true));
     744          cs.addColumn('variantCalling.donotuse', cs.asDoNotUse(vcall));
     745          cs.addColumn('variantCalling.pipeline', vcall.pipeline);
     746          var job = raw.job;
     747          cs.addColumn('variantCalling.date', cs.asJob(job, truncateAt));
     748          cs.addColumn('variantCalling.result', (vcall.result && vcall.result != 'Successful') ? cs.asFailInfo(vcall.result, 'error.png') : null);
     749          cs.addColumn('variantCalling.variants', cs.asVariantsFile(vcall));
     750          cs.addColumn('variantCalling.comment', cs.truncate(vcall.comment, truncateAt));
     751        }
     752        catch (e)
     753        {
     754          cs.logError('variantCalling-info', e);
     755        }
     756      }
     757      defaultColClass = null;
     758    }
     759    else
     760    {
     761      cs.addColumn('variantCalling.name', cs.asNoInfo('No variant calling information has been registered'));
     762      Doc.hide('variantCalling-details');
     763    }
     764
     765   
    732766    var linkedItems = document.getElementsByClassName('linked-item');
    733767    for (var itemNo = 0; itemNo < linkedItems.length; itemNo++)
     
    746780    {
    747781      Events.addEventHandler(linkedVcf[i], 'click', cs.vcfLinkOnClick);
     782    }
     783
     784    var linkedVcf = document.getElementsByClassName('variants-link');
     785    for (var i = 0; i < linkedVcf.length; i++)
     786    {
     787      Events.addEventHandler(linkedVcf[i], 'click', cs.variantsLinkOnClick);
    748788    }
    749789   
     
    12321272  }
    12331273 
     1274  cs.asVariantsFile = function(vcall)
     1275  {
     1276    var result = cs.asCount(vcall.VariantsPassedFilter);
     1277    if (vcall.vcfFile)
     1278    {
     1279      result += '<span class="link variants-link" data-file-id="'+vcall.vcfFile.id+'" data-item-id="'+vcall.id+'"><img src="'+home+'/images/vcf_file.png" style="margin-left: 2px;"></span>';
     1280    }
     1281    return result;
     1282  }
     1283
     1284 
    12341285  cs.truncate = function(value, maxLength)
    12351286  {
     
    13031354  }
    13041355 
     1356  cs.variantsLinkOnClick = function(event)
     1357  {
     1358    var fileId = Data.int(event.currentTarget, 'file-id');
     1359    var itemId = Data.get(event.currentTarget, 'item-id');
     1360
     1361    var url = home+'/analysis/view_variants.jsp?ID=' + App.getSessionId();
     1362    url += '&fileId='+fileId;
     1363    url += '&itemId='+itemId;
     1364    Dialogs.openPopup(url, 'ViewVariants', 900, 600);
     1365  }
     1366
    13051367  cs.columnBalance = function(event)
    13061368  {
  • extensions/net.sf.basedb.reggie/trunk/resources/reports/case_summary.jsp

    r5548 r5731  
    910910          <thead>
    911911            <tr id="rawBioAssays.name">
    912               <th id="rawBioAssays-header">Raw bioassays</th>
     912              <th id="rawBioAssays-header">Expression profiles</th>
    913913            </tr>
    914914          </thead>
     
    942942          </div>
    943943        </div>
    944        
     944
     945        <div class="info-section bg-filled-100" id="variantCalling-info">
     946          <div>
     947          <table class="info-table dynamic-columns">
     948          <thead>
     949            <tr id="variantCalling.name">
     950              <th id="variantCalling-header">Variant calling</th>
     951            </tr>
     952          </thead>
     953          <tbody id="variantCalling-details" class="info-details">
     954            <tr id="variantCalling.donotuse" class="dynamic-column">
     955              <th>DoNotUse</th>
     956            </tr>
     957            <tr id="variantCalling.pipeline">
     958              <th>Pipeline</th>
     959            </tr>
     960            <tr id="variantCalling.date">
     961              <th>Date</th>
     962            </tr>
     963            <tr id="variantCalling.result" class="dynamic-column">
     964              <th>Result</th>
     965            </tr>
     966            <tr id="variantCalling.variants">
     967              <th>Variants</th>
     968            </tr>
     969            <tr id="variantCalling.comment" class="comment dynamic-column">
     970              <th>Comment</th>
     971            </tr>
     972          </tbody>
     973          </table>
     974          </div>
     975        </div>       
    945976      </div>
    946977    </div>
  • extensions/net.sf.basedb.reggie/trunk/src/net/sf/basedb/reggie/servlet/CaseSummaryServlet.java

    r5548 r5731  
    4949import net.sf.basedb.reggie.dao.CDna;
    5050import net.sf.basedb.reggie.dao.Consent;
     51import net.sf.basedb.reggie.dao.Datafiletype;
    5152import net.sf.basedb.reggie.dao.Dna;
    5253import net.sf.basedb.reggie.dao.FlowCell;
     
    6162import net.sf.basedb.reggie.dao.PooledLibrary;
    6263import net.sf.basedb.reggie.dao.Rawbioassay;
     64import net.sf.basedb.reggie.dao.Rawdatatype;
    6365import net.sf.basedb.reggie.dao.ReggieItem;
    6466import net.sf.basedb.reggie.dao.Rna;
     
    471473        {
    472474          JSONArray jsonRaw = new JSONArray();
     475          JSONArray jsonVar = new JSONArray();
    473476          for (Rawbioassay r : raw)
    474477          {
    475             loadRawBioAssayInfo(dc, r);
    476             jsonRaw.add(r.asJSONObject());
     478            if (Rawdatatype.VARIANT_CALL.getRawDataType().equals(r.getItem().getRawDataType()))
     479            {
     480              loadVariantCallingInfo(dc, r);
     481              jsonVar.add(r.asJSONObject());
     482            }
     483            else
     484            {
     485              loadRawBioAssayInfo(dc, r);
     486              jsonRaw.add(r.asJSONObject());
     487            }
    477488          }
    478489          jsonSections.add(loadSectionInfo(sc, "rawBioAssays"));
    479490          json.put("rawBioAssays", jsonRaw);
     491          jsonSections.add(loadSectionInfo(sc, "variantCalling"));
     492          json.put("variantCalling", jsonVar);
    480493        }
    481494       
     
    11371150
    11381151
     1152  private void loadVariantCallingInfo(DbControl dc, Rawbioassay raw)
     1153  {
     1154    RawBioAssay rba = raw.getRawBioAssay();
     1155    Job job = rba.getJob();
     1156    raw.setAnnotation("rawDataType", rba.getRawDataType().getName());
     1157    raw.loadAnnotations(dc, "pipeline", Annotationtype.PIPELINE, null);
     1158    raw.setAnnotation("job", JsonUtil.getJobAsJSON(job));
     1159    raw.setAnnotation("editable", rba.hasPermission(Permission.WRITE));
     1160    raw.loadDoNotUseAnnotations(dc, null);
     1161    if (job != null && job.getEnded() != null)
     1162    {
     1163      raw.loadAnnotations(dc, "result", Annotationtype.ANALYSIS_RESULT, null);
     1164      raw.loadAnnotations(dc, "VariantsPassedFilter", Annotationtype.VARIANTS_PASSED_FILTER, null);
     1165      File vcf = raw.getFile(dc, Datafiletype.VCF);
     1166      if (vcf != null) raw.setAnnotation("vcfFile", JsonUtil.getFileAsJSON(vcf));
     1167    }
     1168    raw.setAnnotation("comment", rba.getDescription());
     1169  }
     1170
    11391171 
    11401172  private BioPlate getBioPlate(MeasuredBioMaterial bioMaterial)
Note: See TracChangeset for help on using the changeset viewer.