Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 26 additions & 26 deletions modules/EnsEMBL/Web/Component/Transcript/ProteinVariations.pm
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,8 @@ sub table_content {
my $polys = classify_sift_polyphen($tva->polyphen_prediction, $tva->polyphen_score);
my $cadds = classify_score_prediction($tva->cadd_prediction, $tva->cadd_score);
my $revels = classify_score_prediction($tva->dbnsfp_revel_prediction, $tva->dbnsfp_revel_score);
my $meta_lrs = classify_score_prediction($tva->dbnsfp_meta_lr_prediction, $tva->dbnsfp_meta_lr_score);
my $mutation_assessors = classify_score_prediction($tva->dbnsfp_mutation_assessor_prediction, $tva->dbnsfp_mutation_assessor_score);
my $alphamissenses = classify_score_prediction($tva->dbnsfp_alphamissense_prediction, $tva->dbnsfp_alphamissense_score);
my $esm1bs = classify_score_prediction($tva->dbnsfp_esm1b_prediction, $tva->dbnsfp_esm1b_score);

my $row = {
vf => $var->{'vf'}->dbID,
Expand All @@ -131,12 +131,12 @@ sub table_content {
revel_sort => $revels->[0],
revel_class => $revels->[1],
revel_value => $revels->[2],
meta_lr_sort => $meta_lrs->[0],
meta_lr_class => $meta_lrs->[1],
meta_lr_value => $meta_lrs->[2],
mutation_assessor_sort => $mutation_assessors->[0],
mutation_assessor_class => $mutation_assessors->[1],
mutation_assessor_value => $mutation_assessors->[2],
alphamissense_sort => $alphamissenses->[0],
alphamissense_class => $alphamissenses->[1],
alphamissense_value => $alphamissenses->[2],
esm1b_sort => $esm1bs->[0],
esm1b_class => $esm1bs->[1],
esm1b_value => $esm1bs->[2],
};
$callback->add_row($row);
last ROWS if $callback->stand_down;
Expand All @@ -159,7 +159,7 @@ sub make_table {
my @exclude;
push @exclude,'sift_sort','sift_class','sift_value' unless $sd->{'SIFT'};
unless($hub->species eq 'Homo_sapiens') {
push @exclude,'polyphen_sort','polyphen_class','polyphen_value', 'cadd_sort', 'cadd_class', 'cadd_value', 'revel_sort', 'revel_class', 'revel_value', 'meta_lr_sort', 'meta_lr_class', 'meta_lr_value', 'mutation_assessor_sort', 'mutation_assessor_class', 'mutation_assessor_value';
push @exclude,'polyphen_sort','polyphen_class','polyphen_value', 'cadd_sort', 'cadd_class', 'cadd_value', 'revel_sort', 'revel_class', 'revel_value', 'alphamissense_sort', 'alphamissense_class', 'alphamissense_value', 'esm1b_sort', 'esm1b_class', 'esm1b_value';
}

my @columns = ({
Expand Down Expand Up @@ -285,27 +285,27 @@ sub make_table {
filter_fixed => 1,
filter_blank_button => 1,
},{
_key => 'meta_lr_sort', _type => 'numeric no_filter unshowable',
sort_for => 'meta_lr_value',
_key => 'alphamissense_sort', _type => 'numeric no_filter unshowable',
sort_for => 'alphamissense_value',
},{
_key => 'meta_lr_class', _type => 'iconic no_filter unshowable',
_key => 'alphamissense_class', _type => 'iconic no_filter unshowable',
},{
_key => 'meta_lr_value', _type => 'numeric',
label => "MetaLR",
helptip => $glossary->{'MetaLR'},
_key => 'alphamissense_value', _type => 'numeric',
label => "AlphaMissense",
helptip => $glossary->{'AlphaMissense'},
filter_range => [0,1],
filter_fixed => 1,
filter_blank_button => 1,
},{
_key => 'mutation_assessor_sort', _type => 'numeric no_filter unshowable',
sort_for => 'mutation_assessor_value',
_key => 'dbnsfp_esm1b_sort', _type => 'numeric no_filter unshowable',
sort_for => 'dbnsfp_esm1b_value',
},{
_key => 'mutation_assessor_class', _type => 'iconic no_filter unshowable',
_key => 'dbnsfp_esm1b_class', _type => 'iconic no_filter unshowable',
},{
_key => 'mutation_assessor_value', _type => 'numeric',
label => "Mutation Assessor",
helptip => $glossary->{'MutationAssessor'},
filter_range => [0,1],
_key => 'dbnsfp_esm1b_value', _type => 'numeric',
label => "ESM1b",
helptip => $glossary->{'ESM1b'},
filter_range => [-30,10],
filter_fixed => 1,
filter_blank_button => 1,
}
Expand Down Expand Up @@ -384,7 +384,7 @@ sub sift_poly_classes {

my $sp_classes = predictions_classes;

foreach my $column_name (qw(sift polyphen cadd revel meta_lr mutation_assessor)) {
foreach my $column_name (qw(sift polyphen cadd revel alphamissense esm1b)) {
my $value_column = $table->column("${column_name}_value");
my $class_column = $table->column("${column_name}_class");
next unless $value_column and $class_column;
Expand All @@ -397,12 +397,12 @@ sub sift_poly_classes {
# TODO: make decorators accessible to filters. Complexity is that
# many decorators (including these) are multi-column.
my $lozenge = qq(<div class="score score_%s score_example">%s</div>);
my $left = { sift => 'bad', polyphen => 'good', cadd => 'good', revel => 'good', meta_lr => 'good', mutation_assessor => 'good'}->{$column_name};
my $right = { sift => 'good', polyphen => 'bad', cadd => 'bad', revel => 'bad', meta_lr => 'bad', 'mutation_assessor' => 'bad'}->{$column_name};
my $left = { sift => 'bad', polyphen => 'good', cadd => 'good', revel => 'good', alphamissense => 'good', esm1b => 'good'}->{$column_name};
my $right = { sift => 'good', polyphen => 'bad', cadd => 'bad', revel => 'bad', alphamissense => 'bad', esm1b => 'bad'}->{$column_name};
$value_column->filter_endpoint_markup(0,sprintf($lozenge,$left,"0"));
$value_column->filter_endpoint_markup(1,sprintf($lozenge,$right,"1"));
my $slider_class =
{ sift => 'redgreen', polyphen => 'greenred', cadd => 'greenred', revel => 'greenred', meta_lr => 'greenred', mutation_assessor => 'greenred' }->{$column_name};
{ sift => 'redgreen', polyphen => 'greenred', cadd => 'greenred', revel => 'greenred', alphamissense => 'greenred', esm1b => 'greenred' }->{$column_name};
$value_column->filter_slider_class("newtable_slider_$slider_class");
}

Expand Down
28 changes: 19 additions & 9 deletions modules/EnsEMBL/Web/Component/Variation/Mappings.pm
Original file line number Diff line number Diff line change
Expand Up @@ -235,8 +235,8 @@ sub content {

my $cadd = $self->render_score_prediction($tva->cadd_prediction, $tva->cadd_score);
my $dbnsfp_revel = $self->render_score_prediction($tva->dbnsfp_revel_prediction, $tva->dbnsfp_revel_score);
my $dbnsfp_meta_lr = $self->render_score_prediction($tva->dbnsfp_meta_lr_prediction, $tva->dbnsfp_meta_lr_score);
my $dbnsfp_mutation_assessor = $self->render_score_prediction($tva->dbnsfp_mutation_assessor_prediction, $tva->dbnsfp_mutation_assessor_score);
my $dbnsfp_alphamissense = $self->render_score_prediction($tva->dbnsfp_alphamissense_prediction, $tva->dbnsfp_alphamissense_score);
my $dbnsfp_esm1b = $self->render_score_prediction($tva->dbnsfp_esm1b_prediction, $tva->dbnsfp_esm1b_score);


# Allele
Expand Down Expand Up @@ -301,15 +301,15 @@ sub content {
polyphen => $poly,
cadd => $cadd,
dbnsfp_revel => $dbnsfp_revel,
dbnsfp_meta_lr => $dbnsfp_meta_lr,
dbnsfp_mutation_assessor => $dbnsfp_mutation_assessor,
dbnsfp_alphamissense => $dbnsfp_alphamissense,
dbnsfp_esm1b => $dbnsfp_esm1b,
detail => $self->ajax_add($self->ajax_url(undef, { t => $trans_name, vf => $vf, allele => $a, update_panel => 1 }).";single_transcript=variation_feature_variation=normal", "${trans_name}_${vf}_${a}"),
};

push(@rows, $row);

# Column flags
foreach my $col ('sift', 'polyphen', 'cadd', 'dbnsfp_revel', 'dbnsfp_meta_lr', 'dbnsfp_mutation_assessor') {
foreach my $col ('sift', 'polyphen', 'cadd', 'dbnsfp_revel', 'dbnsfp_alphamissense', 'dbnsfp_esm1b') {
$column_flags{$col} = 1 if ($row->{$col} && $row->{$col} ne '-');
}

Expand Down Expand Up @@ -458,11 +458,11 @@ sub table_columns {
push @columns, ({ key => 'dbnsfp_revel', title => 'REVEL', sort => 'position_html', align => 'center', help => $glossary->{'REVEL'} })
if $column_flags->{'dbnsfp_revel'};

push @columns, ({ key => 'dbnsfp_meta_lr', title => 'MetaLR', sort => 'position_html', align => 'center', help => $glossary->{'MetaLR'} })
if $column_flags->{'dbnsfp_meta_lr'};
push @columns, ({ key => 'dbnsfp_alphamissense', title => 'AlphaMissense', sort => 'position_html', align => 'center', help => $glossary->{'AlphaMissense'} })
if $column_flags->{'dbnsfp_alphamissense'};

push @columns, ({ key => 'dbnsfp_mutation_assessor', title => 'Mutation Assessor', sort => 'position_html', align => 'center', help => $glossary->{'MutationAssessor'} })
if $column_flags->{'dbnsfp_mutation_assessor'};
push @columns, ({ key => 'dbnsfp_esm1b', title => 'ESM1b', sort => 'position_html', align => 'center', help => $glossary->{'ESM1b'} })
if $column_flags->{'dbnsfp_esm1b'};
}

push @columns, { key => 'detail', title => 'Detail', sort => 'string' };
Expand Down Expand Up @@ -835,6 +835,11 @@ sub render_score_prediction {
'medium' => 'ok',
'low' => 'good',
'neutral' => 'good',
'benign' => 'good',
'ambiguous' => 'ok',
'likely pathogenic' => 'bad',
'pathogenic' => 'bad',
'deleterious' => 'bad',
);

my %ranks = (
Expand All @@ -848,6 +853,11 @@ sub render_score_prediction {
'medium' => 3,
'low' => 2,
'neutral' => 2,
'benign' => 2,
'ambiguous' => 3,
'likely pathogenic' => 4,
'pathogenic' => 4,
'deleterious' => 4,
);

my ($rank, $rank_str);
Expand Down
52 changes: 26 additions & 26 deletions modules/EnsEMBL/Web/Component/VariationTable.pm
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ sub sift_poly_classes {

my $sp_classes = predictions_classes;

foreach my $column_name (qw(sift polyphen cadd revel meta_lr mutation_assessor)) {
foreach my $column_name (qw(sift polyphen cadd revel alphamissense esm1b)) {
my $value_column = $table->column("${column_name}_value");
my $class_column = $table->column("${column_name}_class");
next unless $value_column and $class_column;
Expand All @@ -184,12 +184,12 @@ sub sift_poly_classes {
# TODO: make decorators accessible to filters. Complexity is that
# many decorators (including these) are multi-column.
my $lozenge = qq(<div class="score score_%s score_example">%s</div>);
my $left = { sift => 'bad', polyphen => 'good', cadd => 'good', revel => 'good', meta_lr => 'good', mutation_assessor => 'good'}->{$column_name};
my $right = { sift => 'good', polyphen => 'bad', cadd => 'bad', revel => 'bad', meta_lr => 'bad', 'mutation_assessor' => 'bad'}->{$column_name};
my $left = { sift => 'bad', polyphen => 'good', cadd => 'good', revel => 'good', alphamissense => 'good', esm1b => 'good'}->{$column_name};
my $right = { sift => 'good', polyphen => 'bad', cadd => 'bad', revel => 'bad', alphamissense => 'bad', esm1b => 'bad'}->{$column_name};
$value_column->filter_endpoint_markup(0,sprintf($lozenge,$left,"0"));
$value_column->filter_endpoint_markup(1,sprintf($lozenge,$right,"1"));
my $slider_class =
{ sift => 'redgreen', polyphen => 'greenred', cadd => 'greenred', revel => 'greenred', meta_lr => 'greenred', mutation_assessor => 'greenred'}->{$column_name};
{ sift => 'redgreen', polyphen => 'greenred', cadd => 'greenred', revel => 'greenred', alphamissense => 'greenred', esm1b => 'greenred'}->{$column_name};
$value_column->filter_slider_class("newtable_slider_$slider_class");
}
}
Expand Down Expand Up @@ -333,7 +333,7 @@ sub make_table {
}
push @exclude,'sift_sort','sift_class','sift_value' unless $sd->{'SIFT'};
unless($hub->species eq 'Homo_sapiens') {
push @exclude,'polyphen_sort','polyphen_class','polyphen_value', 'cadd_sort', 'cadd_class', 'cadd_value', 'revel_sort', 'revel_class', 'revel_value', 'meta_lr_sort', 'meta_lr_class', 'meta_lr_value', 'mutation_assessor_sort', 'mutation_assessor_class', 'mutation_assessor_value';
push @exclude,'polyphen_sort','polyphen_class','polyphen_value', 'cadd_sort', 'cadd_class', 'cadd_value', 'revel_sort', 'revel_class', 'revel_value', 'alphamissense_sort', 'alphamissense_class', 'alphamissense_value', 'esm1b_sort', 'esm1b_class', 'esm1b_value';
}
push @exclude,'Transcript' if $hub->type eq 'Transcript';

Expand Down Expand Up @@ -489,27 +489,27 @@ sub make_table {
filter_fixed => 1,
filter_blank_button => 1,
},{
_key => 'meta_lr_sort', _type => 'numeric no_filter unshowable',
sort_for => 'meta_lr_value',
_key => 'alphamissense_sort', _type => 'numeric no_filter unshowable',
sort_for => 'alphamissense_value',
},{
_key => 'meta_lr_class', _type => 'iconic no_filter unshowable',
_key => 'alphamissense_class', _type => 'iconic no_filter unshowable',
},{
_key => 'meta_lr_value', _type => 'numeric',
label => "MetaLR",
helptip => $glossary->{'MetaLR'},
_key => 'alphamissense_value', _type => 'numeric',
label => "AlphaMissense",
helptip => $glossary->{'AlphaMissense'},
filter_range => [0,1],
filter_fixed => 1,
filter_blank_button => 1,
},{
_key => 'mutation_assessor_sort', _type => 'numeric no_filter unshowable',
sort_for => 'mutation_assessor_value',
_key => 'esm1b_sort', _type => 'numeric no_filter unshowable',
sort_for => 'esm1b_value',
},{
_key => 'mutation_assessor_class', _type => 'iconic no_filter unshowable',
_key => 'esm1b_class', _type => 'iconic no_filter unshowable',
},{
_key => 'mutation_assessor_value', _type => 'numeric',
label => "Mutation Assessor",
helptip => $glossary->{'MutationAssessor'},
filter_range => [0,1],
_key => 'esm1b_value', _type => 'numeric',
label => "ESM1b",
helptip => $glossary->{'ESM1b'},
filter_range => [-30,10],
filter_fixed => 1,
filter_blank_button => 1,
},{
Expand Down Expand Up @@ -721,8 +721,8 @@ sub variation_table {
my $polys = classify_sift_polyphen($tva->polyphen_prediction, $tva->polyphen_score);
my $cadds = classify_score_prediction($tva->cadd_prediction, $tva->cadd_score);
my $revels = classify_score_prediction($tva->dbnsfp_revel_prediction, $tva->dbnsfp_revel_score);
my $meta_lrs = classify_score_prediction($tva->dbnsfp_meta_lr_prediction, $tva->dbnsfp_meta_lr_score);
my $mutation_assessors = classify_score_prediction($tva->dbnsfp_mutation_assessor_prediction, $tva->dbnsfp_mutation_assessor_score);
my $alphamissenses = classify_score_prediction($tva->dbnsfp_alphamissense_prediction, $tva->dbnsfp_alphamissense_score);
my $esm1bs = classify_score_prediction($tva->dbnsfp_esm1b_prediction, $tva->dbnsfp_esm1b_score);

# Adds LSDB/LRG sources
if ($self->isa('EnsEMBL::Web::Component::LRG::VariationTable')) {
Expand Down Expand Up @@ -784,12 +784,12 @@ sub variation_table {
revel_sort => $revels->[0],
revel_class => $revels->[1],
revel_value => $revels->[2],
meta_lr_sort => $meta_lrs->[0],
meta_lr_class => $meta_lrs->[1],
meta_lr_value => $meta_lrs->[2],
mutation_assessor_sort => $mutation_assessors->[0],
mutation_assessor_class => $mutation_assessors->[1],
mutation_assessor_value => $mutation_assessors->[2],
alphamissense_sort => $alphamissenses->[0],
alphamissense_class => $alphamissenses->[1],
alphamissense_value => $alphamissenses->[2],
esm1b_sort => $esm1bs->[0],
esm1b_class => $esm1bs->[1],
esm1b_value => $esm1bs->[2],
HGVS => $self->param('hgvs') eq 'on' ? ($self->get_hgvs($tva) || '-') : undef,
};
$row = { %$row, %$more_row };
Expand Down
11 changes: 11 additions & 0 deletions modules/EnsEMBL/Web/Utils/Variation.pm
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,12 @@ sub predictions_classes {
'deleterious - low confidence' => 'neutral',
'tolerated low confidence' => 'neutral',
'deleterious low confidence' => 'neutral',

# coming from dbNSFP AlphaMissense and ESM1b
'ambiguous' => 'ok',
'likely pathogenic' => 'bad',
'pathogenic' => 'bad',
'deleterious' => 'bad',
};
}

Expand Down Expand Up @@ -271,6 +277,11 @@ sub classify_score_prediction {
'medium' => 3,
'low' => 2,
'neutral' => 2,
'benign' => 2,
'ambiguous' => 3,
'likely pathogenic' => 4,
'pathogenic' => 4,
'deleterious' => 4,
);

my ($rank, $rank_str);
Expand Down