[ensembl-dev] VEP Grantham amino acid distance

Guillermo Marco Puche guillermo.marco at sistemasgenomicos.com
Thu May 2 15:04:16 BST 2013


Hello,

Thank you very much for the plugin code :)

Best regards,
Guillermo.

On 04/29/13 11:10, Duarte Molha wrote:
>
> Not sure why but my attachment did not get sent...
>
> Here is the code instead:
>
> ###################################################################
>
> =head1 LICENSE
>
> Based on plugin of Blosum62.pm done by Graham Ritchie <grsr at ebi.ac.uk> 
> at EBI
>
> =head1 CONTACT
>
> Duarte Molha <duartemolha at gmail.com>
>
> =cut
>
> =head1 NAME
>
> Grantham
>
> =head1 SYNOPSIS
>
> mv Grantham.pm ~/.vep/Plugins
>
> perl variant_effect_predictor.pl -i variations.vcf --plugin Grantham
>
> =head1 DESCRIPTION
>
> This is a plugin for the Ensembl Variant Effect Predictor (VEP) that
>
> looks up the GRANTHAM substitution matrix score for the reference
>
> and alternative amino acids predicted for a missense mutation. It adds
>
> one new entry to the VEP's Extra column, Grantham which is the
>
>  associated score.
>
>  Grantham Matrix score derived from this paper:
>
>  Grantham, R. Amino Acid Difference Formula to Help Explain Protein 
> Evolution, Science 1974 Sep 6;185(4154):862-4.
>
> =cut
>
> package Grantham;
>
> use strict;
>
> use warnings;
>
> use base qw(Bio::EnsEMBL::Variation::Utils::BaseVepPlugin);
>
> my @grantham_matrix = qw(
>
> 0 112 111 126 195  91 107  60  86  94  96 106  84 113  27 99  58 148 
> 112  64
>
> 112 0  86  96 180  43  54 125  29  97 102  26  91  97 103 110 71 101  
> 77  96
>
> 111 86   0  23 139  46  42  80  68 149 153  94 142 158  91  46 65 174 
> 143 133
>
> 126 96  23   0 154  61  45  94  81 168 172 101 160 177 108  65 85 181 
> 160 152
>
> 195 180 139 154   0 154 170 159 174 198 198 202 196 205 169 112 149 
> 215 194 192
>
> 91  43  46  61 154   0  29  87  24 109 113  53 101 116  76 68  42 130  
> 99  96
>
> 107 54  42  45 170  29   0  98  40 134 138  56 126 140  93  80 65 152 
> 122 121
>
> 60 125  80  94 159  87  98   0  98 135 138 127 127 153  42 56  59 184 
> 147 109
>
> 86  29  68  81 174  24  40  98   0  94  99  32  87 100  77 89  47 115  
> 83  84
>
> 94  97 149 168 198 109 134 135  94   0   5 102  10  21  95 142  89  
> 61  33  29
>
> 96 102 153 172 198 113 138 138  99   5   0 107  15  22  98 145  92  
> 61  36  32
>
> 106 26  94 101 202  53  56 127  32 102 107   0  95 102 103 121 78 110  
> 85  97
>
> 84  91 142 160 196 101 126 127  87  10  15  95   0  28  87 135  81  
> 67  36  21
>
> 113 97 158 177 205 116 140 153 100  21  22 102  28   0 114 155 103  
> 40  22  50
>
> 27 103  91 108 169  76  93  42  77  95  98 103  87 114   0 74  38 147 
> 110  68
>
> 99 110  46  65 112  68  80  56  89 142 145 121 135 155  74 0  58 177 
> 144 124
>
> 58  71  65  85 149  42  65  59  47  89  92  78  81 103  38 58   0 128  
> 92  69
>
> 148 101 174 181 215 130 152 184 115  61  61 110  67  40 147 177 128   
> 0  37  88
>
> 112 77 143 160 194  99 122 147  83  33  36  85  36  22 110 144 92  
> 37   0  55
>
> 64  96 133 152 192  96 121 109  84  29  32  97  21  50  68 124  69  
> 88  55   0
>
> );
>
> my @AAs = qw(A R N D C Q E G H I L K M F P S T W Y V);
>
> sub new {
>
> my $class = shift;
>
> my $self = $class->SUPER::new(@_);
>
> # construct a hash representing the matrix for quick lookups
>
> my $num = @AAs;
>
> for (my $i = 0; $i < $num; $i++) {
>
> for (my $j = 0; $j < $num; $j++) {
>
> $self->{matrix}->{$AAs[$i]}->{$AAs[$j]} = $grantham_matrix[($i * $num) 
> + $j];
>
> }
>
> }
>
> return $self;
>
> }
>
> sub version {
>
> return '2.3';
>
> }
>
> sub feature_types {
>
> return ['Transcript'];
>
> }
>
> sub get_header_info {
>
> return {
>
> Grantham => "Grantham Matrix score - Grantham, R. Amino Acid 
> Difference Formula to Help Explain Protein Evolution, Science 1974 Sep 
> 6;185(4154):862-4.",
>
> };
>
> }
>
> sub run {
>
> my ($self, $tva) = @_;
>
> if ($tva->pep_allele_string && $tva->pep_allele_string =~ 
> /^([A-Z])\/([A-Z])$/) {
>
>         my $score = $self->{matrix}->{$1}->{$2};
>
>         if (defined $score) {
>
> return {
>
> Grantham => $score
>
> };
>
> }
>
> }
>
> return {};
>
> }
>
> 1;
>
> ###################################################################
>
> *From:*dev-bounces at ensembl.org [mailto:dev-bounces at ensembl.org] *On 
> Behalf Of *Guillermo Marco Puche
> *Sent:* 29 April 2013 09:05
> *To:* Ensembl developers list
> *Subject:* Re: [ensembl-dev] VEP Grantham amino acid distance
>
> Hello Chris,
>
> As I said I'm implementing this as an Ensembl Variant Effect Predictor 
> plugin.
> Input is an VCF file.
>
> Best regards,
> Guillermo.
>
> On 04/29/13 10:03, cj5 at sanger.ac.uk <mailto:cj5 at sanger.ac.uk> wrote:
>
>     Hi Guillermo,
>
>     Not sure of your requrements, but if you want a simple lookup of a mtrix based upon the original paper,
>
>       
>
>     Grantham, R. Amino Acid Difference Formula to Help Explain Protein Evolution, Science 1974 Sep 6;185(4154):862-4.
>
>       
>
>     please see attached.
>
>       
>
>     regards
>
>     Chris Joyce
>
>       
>
>         Hello,
>
>           
>
>         I'm trying to calculate Grantham AA distance as a VEP plugin.
>
>           
>
>         Currently I'm doing it parsing HGSVp and calculating distance between
>
>         the two AA being parsed.
>
>           
>
>         Do you guys believe there's an easier and more efficient way to do this?
>
>           
>
>         Thank you.
>
>           
>
>         Best regards,
>
>         Guillermo.
>
>         _______________________________________________
>
>         Dev mailing listDev at ensembl.org  <mailto:Dev at ensembl.org>
>
>         Posting guidelines and subscribe/unsubscribe info:http://lists.ensembl.org/mailman/listinfo/dev
>
>         Ensembl Blog:http://www.ensembl.info/
>
>           
>
>
>
>
>         _______________________________________________
>
>         Dev mailing listDev at ensembl.org  <mailto:Dev at ensembl.org>
>
>         Posting guidelines and subscribe/unsubscribe info:http://lists.ensembl.org/mailman/listinfo/dev
>
>         Ensembl Blog:http://www.ensembl.info/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.ensembl.org/pipermail/dev_ensembl.org/attachments/20130502/523768bc/attachment.html>


More information about the Dev mailing list