source: bioperl_OMIM_Allelic_Variants_handle_multiple_mutations.patch

Last change on this file was 2, checked in by maarten, 9 years ago

second round of updates

File size: 3.3 KB
Line 
1diff -crB BioPerl-1.6.1/Bio/Phenotype/OMIM/OMIMparser.pm BioPerl-1.6.1-patched/Bio/Phenotype/OMIM/OMIMparser.pm
2*** BioPerl-1.6.1/Bio/Phenotype/OMIM/OMIMparser.pm      2009-09-29 18:33:50.000000000 +0200
3--- BioPerl-1.6.1-patched/Bio/Phenotype/OMIM/OMIMparser.pm      2010-03-23 16:19:34.321829300 +0100
4***************
5*** 643,652 ****
6          elsif ( $line =~ /^\s*(\.\d+)/ ) {
7              my $current_number = $1;
8              if ( $number ne "" ) {
9!                 my $allelic_variant = $self->_create_allelic_variant( $number, $title,
10                                                      $symbol_mut_line, $description );
11                 
12!                 push( @allelic_variants, $allelic_variant );
13              }
14              $number          = $current_number;
15              $title           = "";
16--- 643,655 ----
17          elsif ( $line =~ /^\s*(\.\d+)/ ) {
18              my $current_number = $1;
19              if ( $number ne "" ) {
20!               my @symbol_mut_line_array=_check_multiple_mutations($symbol_mut_line);
21!               foreach $symbol_mut_line (@symbol_mut_line_array){
22!                   my $allelic_variant = $self->_create_allelic_variant( $number, $title,
23                                                      $symbol_mut_line, $description );
24                 
25!                   push( @allelic_variants, $allelic_variant );
26!               }
27              }
28              $number          = $current_number;
29              $title           = "";
30***************
31*** 675,690 ****
32          }
33      }
34     
35!     my $allelic_variant = $self->_create_allelic_variant( $number, $title,
36!                                         $symbol_mut_line, $description );
37!     
38!     push( @allelic_variants, $allelic_variant );
39     
40      return @allelic_variants;
41     
42  } # _parse_allelic_variants
43 
44 
45 
46 
47  sub _create_allelic_variant {
48--- 678,727 ----
49          }
50      }
51     
52!               my @symbol_mut_line_array=_check_multiple_mutations($symbol_mut_line);
53!               foreach $symbol_mut_line (@symbol_mut_line_array){
54!                   my $allelic_variant = $self->_create_allelic_variant( $number, $title,
55!                                                     $symbol_mut_line, $description );
56!                 
57!                   push( @allelic_variants, $allelic_variant );
58!               }
59     
60      return @allelic_variants;
61     
62  } # _parse_allelic_variants
63 
64+ sub _check_multiple_mutations{
65+   my ($symbol_mut_line)=@_;
66+     
67+   my @results=();
68+     
69+    my $symbol=""   ;
70+          my $aa_ori =""    ;
71+          my $aa_mut =""    ;
72+          my $position=""   ;
73+     if ( $symbol_mut_line =~ /\s*(.+?)\s*,\s*([a-z]{3})(\d+)([a-z]{3})/i ) {
74+          $symbol   = $1;
75+          $aa_ori   = $2;
76+          $aa_mut   = $4;
77+          $position = $3;
78+     
79+       if ( $symbol_mut_line =~ /\s*([a-z]{3})(\d+)([a-z]{3})\s*$/i ) {
80 
81+       if(($aa_ori.$position.$aa_mut) ne $1.$2.$3){
82+         my @srcs =($symbol_mut_line=~m/([a-z]{3}\d+[a-z]{3})/gi);
83+         foreach my $mutation(@srcs){
84+         push(@results,$symbol." , ".$mutation);
85+         }
86+       #print ("multiple mutations".$1.$2.$3.$aa_ori.$position.$aa_mut);
87+       }else{
88+         push(@results,$symbol." , ".$1.$2.$3);
89+       }
90+       }
91+     }else{
92+       push(@results,$symbol_mut_line);
93+     }
94+ return(@results)
95+ }#_check_multiple_mutations
96 
97 
98  sub _create_allelic_variant {
99Only in BioPerl-1.6.1-patched/Bio/Phenotype/OMIM: OMIMparser.pm~
Note: See TracBrowser for help on using the repository browser.