RSS Git Download  Clone
Raw Blame History
[% # FOREACH row IN vep_data; '<pre>'; row; '</pre>'; END %]

[% # PROCESS dumper.tt dump = params %]
[% # PROCESS dumper.tt dump = vars.results.keys %]
[% # PROCESS dumper.tt dump = vars.results.data %]
[% # PROCESS dumper.tt dump = vars.results.samples %]
[% # PROCESS dumper.tt dump = vars.results.exon_ref %]
[% # PROCESS dumper.tt dump = vars.results.vep_data %]
[% # PROCESS dumper.tt dump = natural_sort([1,3,'d','a']) %]

  [%
    data_src = params.data_src;
    matches = vars.results.data.counts.matches || 0;
  %]

<div class="container">
    <div class="row">
        <h5 class="text-success">
            [%
                counts    = vars.results.data.counts;
                vep_input = counts.vep_input_rows;
                duration  = counts.runtime;
            %]
            Processed [% vep_input || 0 %] vep input rows from
            [% counts.accepted_src_rows || 0 %] accepted/filtered rows from
            [% counts.src_rows || 0 %] total source file rows in
            [% duration | format('%.2f') %] seconds
            ([% vep_input / duration | format('%.1f') %] variants/sec)
        </h5>
    </div>
    
    <div class="row">
        <div class="span6">
            <a href="#results">vep results [[% vars.results.vep_data.size || 0 %]]</a> ::
            <a href="#failures">sample match failures [[% counts.no_match || 0 %]]</a> ::
            <a href="#non-cds">non-CDS [[% vars.results.non_cds.size || 0 %]]</a>
        </div>
        <div>
            [% IF vars.results.size %]
                <a class="btn btn-warning" href="/download/[% data_src %]">download</a>
            [% END %]
            <a class="btn btn-success" href="/vep">new dataset</a>
        </div>
    </div>
    
    [% IF vars.results.data.errors.size %]
      <div class="row">
        <div class="alert alert-error" id="vep-errs">
            VEP returned the following info:
            <ul>
                [% FOREACH e IN vars.results.data.errors %]
                    <li>[% e %]</li>
                [% END %]
            </ul>
        </div>
      </div>
    [% END %]

    <div class="row">
        <div class="span5 text-warning small">
            transcript db: [% params.db %]
        </div>
    </div>
    <div class="row">
        <div class="span5 text-warning small">
            API version: [% vars.api_version %]
        </div>
    </div>

    <div class="row">
        <h2>Sample results for data src "[% data_src %]" [[% matches %]]</h2>
    </div>
    
    [%
        BLOCK vep_count;
            'VEP entry count - reflecting variants in nucleotide position in CDS '
            _ '&amp; amino acid position in protein, or in sift/polyphen scores';
        END;
        BLOCK freq; 'proportion of samples in miseq run containing variant'; END;
        IF vars.results.samples.match.size;
    %]
    <div class="row">
      <table class="table table-hover table-condensed">
        <thead>
            <tr>
                <td></td>
                <th>HMDS ref</th>
                <th>Exon / Allele</th>
                <th><span class="acronym" title="[% INCLUDE vep_count %]">VEP</span></th>
              [% IF vars.results.data.variants # miseq data %]
                <th><span class="acronym" title="[% INCLUDE freq %]">Freq</span></th>
              [% END %]
                <th>Result</th>
                <th>Filter</th>
                <th>Consequence</th>
                <th>CDS</th>
                <th>Protein</th>
                <th>Existing variation</th>
              [% IF params.sift %]<th>SIFT</th>[% END %]
              [% IF params.polyphen %]<th>PolyPhen</th>[% END %]
            </tr>
        </thead>
        [% i = 0 %]
        [% FOREACH lab_number IN nsort_labno(vars.results.samples.match.keys);
                # PROCESS dumper.tt dump = pair;
            location_data = vars.results.samples.match.item(lab_number);
                # PROCESS dumper.tt dump = location_data;
            
            FOREACH pair IN location_data; # PROCESS dumper.tt dump = pair;
                location = pair.key; # PROCESS dumper.tt dump = location;
                result   = pair.value; # PROCESS dumper.tt dump = result;                
                vep_data = vars.results.exon_ref.item(location);
                    # PROCESS dumper.tt dump = vep_data;
                
                FOREACH entry IN result; # PROCESS dumper.tt dump = entry;
            %]
                <tr>
                    <td align="right">[% i = i + 1; i; # loop-within-loop %]</td>
                    <td>[% entry.lab_no %]</td>
                    <td><a href="#[% vep_data.exon_id.replace(' ', '_') %]">
                        [% vep_data.exon_id %]</a>
                    </td>
                    <td>[% entry.vep_row_count %]</td>
                    [% IF vars.results.data.variants; # miseq data
                        n = vars.results.data.variants.item(vep_data.exon_id); 
                        total = vars.results.data.total;
                        percent = 100 * n / total;                    
                    %]
                        <td>[% n %] / [% total %] [[% percent | format('%2d') %]%]</td>
                    [% END %]
                    <td>[% entry.result %]% of [% entry.read %]</td>
                    <td>[% entry.filter %]</td>
                    <td>[% vep_data.consequence %]</td>
                    <td>[% vep_data.cds %]</td>
                    <td class="[% vep_data.consequence.match('synonymous_variant')
                        ? 'grey' : 'normal' %]">[% vep_data.protein %]</td>
                    [% IF params.sift; class = vep_data.sift.match('deleterious')
                        ? 'highlight' : 'normal' %]
                        <td class="[% class %]">[% vep_data.sift %]</td>
                    [% END %]
                    [% IF params.polyphen; class = vep_data.polyphen.match('damaging')
                        ? 'highlight' : 'normal' %]
                       <td class="[% class %]">[% vep_data.polyphen %]</td>
                    [% END %]
                    <td>
                        [% IF vep_data.variation AND vep_data.variation.length > 30 %]
                         <span class="acronym" title="[% vep_data.variation | html %]">
                            [% vep_data.variation | truncate(30) | html %]
                         </span>
                        [% ELSE; vep_data.variation; END %]                            
                    </td>
                </tr>                
        [% END; END; END %]
      </table>
    </div>
    [% END %]

    <div class="row">
        <h2><a name="failures">
            Sample match failures [[% vars.results.data.counts.no_match || 0 %]]</a>
        </h2>
    </div>
    [% IF vars.results.data.counts.no_match %]
        <div class="row">
          <table class="table table-hover table-condensed">
            <thead>
                <tr>
                    <td></td>
                    <th>HMDS ref</th>
                    <th>Exon / Allele</th>
                    <th><span class="acronym" title="[% INCLUDE vep_count %]">VEP</span></th>
                    <th>Consequence</th>
                    <th>Existing</th>
                    <th>Other</th>
                </tr>
            </thead>
            [% i = 0 %]
            [% FOREACH lab_number IN nsort_labno(vars.results.samples.no_match.keys);
                    # PROCESS dumper.tt dump = pair;
                location_data = vars.results.samples.no_match.item(lab_number);
                    # PROCESS dumper.tt dump = location_data;
    
                FOREACH pair IN location_data; # PROCESS dumper.tt dump = entry;
                    location = pair.key; # PROCESS dumper.tt dump = location;
                    result   = pair.value; # PROCESS dumper.tt dump = result;                
                    vep_data = vars.results.exon_ref.item(location);
                        # PROCESS dumper.tt dump = vep;
    
                    FOREACH entry IN result; # PROCESS dumper.tt dump = entry;
                %]
                    <tr>
                        <td align="right">[% i = i + 1; i; # loop-within-loop %]</td>
                        <td>[% entry.lab_no %]</td>
                        <td><a href="#[% vep_data.exon_id.replace(' ', '_') %]">
                            [% vep_data.exon_id %]</a>
                        </td>
                        <td>[% entry.vep_row_count %]</td>
                        <td>[% vep_data.consequence %]</td>
                        <td>[% vep_data.variation %]</td>
                        <td>
                            [% 'non-CDS' IF ( NOT vep_data.consequence AND
                                NOT vep_data.variation ) %]
                        </td>
                    </tr>                
            [% END; END; END %]
          </table>
        </div>
    [% END %]

    <div class="row">
        <h2><a name="results">VEP results [[% vars.results.vep_data.size %]]</a></h2>
    </div>
    [% IF vars.results.vep_data.size %]
        <div class="row">
          <table class="table table-hover table-condensed">
            <thead>
                <tr>
                    <th></th>
                    <th>ID</th>
                    <th>Chr.</th>
                    <th>Start</th>
                    <th>End</th>
                    <th>Allele</th>
                    <th>Gene</th>
                    <th>Feature</th>
                    <th>Consequence</th>
                    <th>CDS</th>
                    <th>Protein</th>
                    <th>AA</th>
                    <th>Existing variation</th>
                    [%# sift & poly order dependant on VEP::_prediction_and_score() %]
                    [% IF params.sift %]<th>SIFT</th>[% END %]
                    [% IF params.polyphen %]<th>PolyPhen</th>[% END %]
                    <th>Extra</th>
                </tr>
            </thead>
          [% transcripts = vars.results.data.transcripts;
                # INCLUDE dumper.tt dump = transcripts %]
            [% FOREACH row IN vars.results.vep_data;
                gene    = row.5; # INCLUDE dumper.tt dump = gene;
                feature = row.6; # INCLUDE dumper.tt dump = feature;
                    # INCLUDE dumper.tt dump = transcripts.item(gene);
                class = transcripts.$gene == feature ? 'bold' : 'normal';
            %]
                <tr class="[% class %]">
                    <td align="right">
                        [% IF class.match('bold') %]
                            <a name="[% row.0.replace(' ', '_') %]">
                                [% loop.count %]
                            </a>
                        [% ELSE; loop.count; END %]
                    </td>
                    [% FOREACH col IN row %]
                        <td>[% col | html %]</td>
                    [% END %]
                </tr>
            [% END %]
          </table>
        </div>
    [% END %]

    <div class="row">
        <h2><a name="non-cds">Non-CDS VEP results [[% vars.results.non_cds.size %]]</a></h2>
    </div>
    [% IF vars.results.non_cds.size %]
        <div class="row">
          <table class="table table-hover table-condensed">
            <thead>
                <tr>
                    <th></th>
                    <th>ID</th>
                    <th>Chr.</th>
                    <th>Start</th>
                    <th>End</th>
                    <th>Allele</th>
                </tr>
            </thead>
            [% FOREACH row IN vars.results.non_cds %]
                <tr>
                    <td align="right"><a name="[% row.exon_id.replace(' ', '_') %]">
                        [% loop.count %]</a>
                    </td>
                    <td>[% row.exon_id %]</td>
                    <td>[% row.chromosome %]</td>
                    <td>[% row.start_point %]</td>
                    <td>[% row.end_point %]</td>
                    <td>[% row.allele %]</td>
                </tr>
            [% END %]
          </table>
        </div>
    [% END %]
</div>