Advertisement
reece

VariationFeature coordinate test

Mar 27th, 2011
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.83 KB | None | 0 0
  1. #!/usr/bin/perl
  2.  
  3. use strict;
  4. use warnings;
  5.  
  6. use Bio::EnsEMBL::Registry;
  7.  
  8. # example variant rs1800460 is protein coding and corresponds to
  9. # NG_012137.1:g.26260C>G
  10. # NM_000367.2:c.500C>G,
  11. # NP_000358.1:p.Ala167Gly.
  12. # ENST00000309983.4:c.500C>G
  13. # ENSP00000312304.4:p.Ala167Gly
  14. # http://www.ensembl.org/Homo_sapiens/Variation/Summary?v=rs74423290;source=dbSNP
  15. # http://www.ncbi.nlm.nih.gov/projects/SNP/snp_ref.cgi?rs=74423290
  16.  
  17. my $rs = 'rs74423290';
  18. my $id = 'ENST00000309983';
  19. my $cds_pos = 500;
  20. my $allele_string = 'C/G';
  21.  
  22. my %ens = ensembl_init();
  23.  
  24. my $rs_v = $ens{va}->fetch_by_name($rs);
  25. my ($rs_vf) = map {@{$ens{vfa}->fetch_all_by_Variation($_)}} $rs_v;
  26. print_vf($rs_vf);
  27.  
  28. my ($tx) = $ens{ta}->fetch_by_stable_id($id);
  29. my ($gstart) = $tx->cdna2genomic($cds_pos + $tx->cdna_coding_start,
  30.                                  $cds_pos + $tx->cdna_coding_start);
  31. my $vf = Bio::EnsEMBL::Variation::VariationFeature->new(
  32.   -variation_name => 'test',
  33.   -strand => 1,
  34.   -start => $gstart->start,
  35.   -end => $gstart->start,
  36.   -slice => $tx->slice,
  37.   -allele_string => $allele_string,
  38.   -adapter => $ens{vfa}
  39.  );
  40. print_vf($vf);
  41.  
  42.  
  43. sub print_vf {
  44.   my ($vf) = @_;
  45.   printf("* %s @%s:%s\n",
  46.          $vf->variation_name,
  47.          $vf->seq_region_name,
  48.          $vf->seq_region_start);
  49. }
  50.  
  51.  
  52. sub ensembl_init {
  53.   my %ens;
  54.   $ens{registry} = 'Bio::EnsEMBL::Registry';
  55.   $ens{registry}->load_registry_from_db(
  56.     -host => 'outcast.locusdev.net',
  57.     -user => 'reece',
  58.    );
  59.   $ens{sa} = $ens{registry}->get_adaptor( 'Human', 'Core', 'Slice' );
  60.   $ens{ta} = $ens{registry}->get_adaptor( 'Human', 'Core', 'Transcript' );
  61.   $ens{va} = $ens{registry}->get_adaptor( 'Human', 'Variation', 'Variation' );
  62.   $ens{vfa} = $ens{registry}->get_adaptor( 'Human', 'Variation', 'VariationFeature' );
  63.  
  64.   return %ens;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement