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 = results.data %]
[% # PROCESS dumper.tt dump = results.samples %]
[% # PROCESS dumper.tt dump = results.exon_ref %]
[% # PROCESS dumper.tt dump = results.vep_data %]
[% # PROCESS dumper.tt dump = natural_sort([1,3,'d','a']) %]

<div class="container">
    <div class="row">
        <h5 class="text-success">
            [%
                counts    = 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="span5">
            <a href="#results">vep results [[% results.vep_data.size || 0 %]]</a> ::
            <a href="#failures">sample match failures [[% counts.no_match || 0 %]]</a> ::
            <a href="#non-cds">non-CDS [[% results.non_cds.size || 0 %]]</a>
        </div>
        <div>
            <a class="btn btn-success" href="/vep">new dataset</a>
        </div>
    </div>
    
    [% IF results.data.errors.size %]
      <div class="row">
        <div class="alert alert-error">VEP returned the following info:
            <ul>
                [% FOREACH e IN 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>

    [% data_src = params.data_src; matches = results.data.counts.matches || 0 %]
    <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;
    %]
    <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 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>
                [% IF params.sift %]<th>SIFT</th>[% END %]
                [% IF params.polyphen %]<th>PolyPhen</th>[% END %]
                <th>Existing variation</th>
            </tr>
        </thead>
        [% i = 0 %]
        [% FOREACH lab_number IN nsort_labno(results.samples.match.keys);
                # PROCESS dumper.tt dump = pair;
            location_data = 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 = 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 results.data.variants; # miseq data
                        n = results.data.variants.item(vep_data.exon_id); 
                        total = 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>
                    [% 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.existing.length > 30 %]
                         <span class="acronym" title="[% vep_data.existing | html %]">
                            [% vep_data.existing | truncate(30) | html %]
                         </span>
                        [% ELSE; vep_data.existing; END %]                            
                    </td>
                </tr>                
        [% END; END; END %]
      </table>
    </div>
    
    <div class="row">
        <h2><a name="failures">
            Sample match failures [[% results.data.counts.no_match || 0 %]]</a>
        </h2>
    </div>
    
    <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(results.samples.no_match.keys);
                # PROCESS dumper.tt dump = pair;
            location_data = 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 = 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.existing %]</td>
                    <td>
                        [% 'non-CDS' IF ( NOT vep_data.consequence AND
                            NOT vep_data.existing ) %]
                    </td>
                </tr>                
        [% END; END; END %]
      </table>
    </div>
    
    <div class="row">
        <h2><a name="results">VEP results [[% results.vep_data.size %]]</a></h2>
    </div>
    
    <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>
        [% FOREACH row IN results.vep_data %]
            <tr>
                <td align="right"><a name="[% row.0.replace(' ', '_') %]">
                    [% loop.count %]</a>
                </td>
                [% FOREACH col IN row %]
                    <td>[% col | html %]</td>
                [% END %]
            </tr>
        [% END %]
      </table>
    </div>
    
    <div class="row">
        <h2><a name="non-cds">Non-CDS VEP results [[% results.non_cds.size %]]</a></h2>
    </div>
    
    <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 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>
</div>