Changeset 7


Ignore:
Timestamp:
Apr 16, 2010, 9:27:45 AM (10 years ago)
Author:
maarten
Message:

added rewriting of insertions and deletions

Files:
5 edited

Legend:

Unmodified
Added
Removed
  • lib/Omim2Pubmed.pm

    r2 r7  
    2424                my ( $self, $filename ) = @_;
    2525                open( FILE, "<" . $filename ) or die $!;
    26                 print($filename);
     26                #print($filename);
    2727                while (<FILE>) {
    2828                        my ( $omim, $ref, $pubmed ) = split( /\t/, $_ );
     
    4242                else {
    4343                        $pubmed = "non found";
    44                         carp( "omimid:" . $omim,
    45                                 " numberref:", $ref, " value does not exist/n" );
     44                        #carp( "omimid:" . $omim,
     45                                #" numberref:", $ref, " value does not exist/n" );
    4646                }
    4747
  • lib/Omim2dbsnp.pm

    r6 r7  
    2424                my ( $self, $filename ) = @_;
    2525                open( FILE, "<" . $filename ) or die $!;
    26                 print($filename);
     26                #print($filename);
    2727                while (<FILE>) {
    2828                        my ( $omim, $ref, $pubmed ) = split( /\t/, $_ );
     
    4848                }
    4949                else {
    50                         $dbsnp = "non found";
     50                        $dbsnp = "";
    5151                        #carp( "omimid:" . $omim,
    5252                        #       " numberref:", $av, " value does not exist/n" );
  • lib/ProccesAllicVariants.pm

    r6 r7  
    2727        my $mutation = $av->aa_ori() . $av->position() . $av->aa_mut();
    2828        if ( length($mutation) == 0 ) {
    29                 $mutation = $av->additional_mutations();
     29                $mutation = formatInDelMutation($av->additional_mutations());
     30               
    3031        }
    3132        return ($mutation);
     
    8889                        $result = $1;
    8990                }
     91                #n A-to-G transition at nucleotide 1730 in exon 13, resulting in
     92                elsif ( $desc =~ /([ACTG]-to-[ACTG] trans[a-z]{4,9})[\w\s\-\.]{0,10}(nucleotide \d{1,5})[\w\s\-\.]{0,90}((exon|intron)\s\d{1,3})/i ) {
     93                        $result = $1." at ".$2." in ".$3;
     94                       
     95
     96                        #print($result);
     97                       
     98                        #T-to-C transition BLABLA in exon 30
     99                }
    90100                elsif ( $desc =~ /(codon [a-z])/i ) {
    91101
     
    99109
    100110                        #print($result);
     111                       
     112                        #T-to-C transition BLABLA in exon 30
     113                }elsif($desc =~ /([ACTG]-to-[ACTG] trans[a-z]{4,9})[\w\s\-\.]{0,90}((exon|intron)\s\d{1,3})/i){
     114                        $result=$1." in ".$2;
    101115                }
    102116                elsif ( $desc =~ /([ACTG]{3} to [ACTG]{3})/ ) {
     
    118132        my @regexp = ();
    119133
    120         push( @regexp, "([\\w-]*.)\\set al.[,\\s]*?\\(([\\d\\s,]{4,14})\\)" );
     134        push( @regexp, "([\\w-]*.)\\set al.[,\\s]*?\\(([\\d\\s,]{4,17})\\)" );
    121135
    122136        # add regexp for authors with  And between names
    123137
    124         push( @regexp, "([\\w-]*.\\sand\\s[\\w-]*.)\\s*.\\(([\\d]{4})\\)" );
     138        push( @regexp, "\\b([A-Za-z\\-]*.[^\\)\\,]\\sand\\s[\\w-]*.)\\s*.\\(([\\d]{4})\\)" );
    125139
    126140        #TODO: add solution for mulitple authors (author 2009; auth3 2002 ,etc )
     
    134148
    135149        #Tiller et al. (1993, 1995)
    136         push( @regexp, "([\\w-]*.)\\set al.\\s*?([\\d\\s,]{4,14})\\)" );
     150        push( @regexp, "([\\w-]*.)\\set al.\\s*?([\\d\\s,]{4,17})\\)" );
    137151
    138152        #de Vries and de Wet (1986, 1987)
    139153        push( @regexp,
    140                 "([\\w-]*.\\sand\\s[\\w\\s-]{3,11})\\s*.\\(([\\d\\s,]{4,14})" );
     154                "\\b([A-Za-z\\-]{3,11}\\sand\\s[\\w\\s-]{3,11})\\s*.\\(([\\d\\s,]{4,17})\\)" );
    141155
    142156        #See 123456.1234
     
    149163
    150164                if ( @srcs = ( $desc =~ /$reg/g ) ) {
     165                        #print($reg);
    151166                        push( @returnarray, @srcs );
    152167                        $desc =~ s/$reg//g;
     
    177192                        $counter = $counter + 1;
    178193                        my $auth = $ref->authors();
    179 
    180194                        if ( $auth =~ m/^$authAV/ ) {
    181195                                my $authY = $ref->location();
     
    218232        my ($authref) = shift;
    219233        my @authorsAndYears = @$authref;
    220         print( scalar(@authorsAndYears) );
    221234        my @formatedAuth = ();
    222235
     
    244257}
    245258
    246 sub formatAAMutation {
    247         my $mutation = @_;
    248         ##TODO determ mutation is deletion, substitution of insertion.
    249         if  (! $mutation =~ /\w{3}\d{1,4}\w{w}/ ) {
    250                 carp("non mutation\t".$mutation);
    251         }
    252         return ($mutation);
     259#sub formatAAMutation {
     260#       my $mutation = @_;
     261#       #additional_mutations
     262#       ##TODO determ mutation is deletion, substitution of insertion.
     263#       if  (! $mutation =~ /\w{3}\d{1,4}\w{w}/ ) {
     264#               carp("non mutation\t".$mutation);
     265#       }
     266#       return ($mutation);
     267#}
     268
     269sub formatInDelMutation{
     270                my $mutation = shift;
     271                print("'".$mutation."'");
     272                my $formatMutation="";
     273                if  ( $mutation =~ /^1-BP\s*?(DEL)\,\s*?(\d{1,5})([A-Z])/i ) {
     274                       
     275                        $formatMutation=$2.lc($1).$3;
     276                }elsif($mutation =~ /^(\d{1,5})-BP\s*?(DEL|INS)\,[\sNT]*?(\d{1,5})([A-Z]*.?)/i){
     277                        #correction for calculating deletions
     278                        my $cor_del=1;
     279                        if(lc($2)eq"ins"){
     280                                $cor_del=0;
     281                        }
     282                        $formatMutation=$3."_".($3+$1-$cor_del).lc($2).$4;
     283                }elsif($mutation =~ /^(\d{1,5})([A-Z]*?)\s*?(DEL)/i){
     284                        $formatMutation=$1.lc($3).$2;
     285                }else{
     286                        $formatMutation=$mutation;
     287                }
     288               
     289               
     290                return ($formatMutation);
    253291}
    254292
     
    274312        my $result = "";
    275313        foreach my $av (@avs) {
    276 
    277                 my $mutation        = formatAAMutation( getMutation($av) );
     314#print($av->number() . "\t");
     315                my $mutation        = getMutation( $av );
     316               
    278317                my $authorsAndYears = getAuthor( $av->description() );
    279318                $authorsAndYears = formatAuthors($authorsAndYears);
    280319                my $articles =
    281320                  $self->createAuthorsOutput( $refsref, $authorsAndYears, $numb );
     321                 
     322                #lool up allelic variant in dbsnp and return accesionnumber 
     323                my $dbsnp = $self->{Omim2DBsnp}->getdbsnp( $numb, $av->number() );
     324                               
     325                #print(Dumper($authorsAndYears));
     326               
     327               
    282328                my $desc = $av->description();
    283                 my $dbsnp = $self->{Omim2DBsnp}->getdbsnp( $numb, $av->number() );
     329               
    284330                $desc =~ tr/\n/ /;
    285331                if ( length($desc) < 60 ) {
     
    312358                          . $articles . "\t"
    313359
    314                           #  . $authAV . "("
    315                           #  . $yearAV . ") "
    316360
    317361                          . $nucleotidemutation . "\n";
  • omimparser.pl

    r6 r7  
    9696#     my $comm  = $omim_entry->comment();                        # from genemap
    9797
    98         print($numb);
     98
    9999       
    100100        #$title=~/(\S*.)$/;
  • test/test.pl

    r6 r7  
    1010use Omim2dbsnp;
    1111use Bio::Phenotype::OMIM::OMIMparser;
    12 use Test::More tests => 36;
     12use Test::More tests => 57;
    1313
    1414#lib "../lib";
     
    101101        is( @$getauthor[0], "Vries and de Wet", "get author" );
    102102        is( @$getauthor[1], "1986, 1987",   "get author year" );
     103       
     104        print("some tests based on bugs\n");
     105                        $getauthor = ProccesAllicVariants::getAuthor("  Vohwinkel (1929) and Wigley (1929) ");
     106        is( @$getauthor[0], "Vohwinkel", "get author" );
     107        is( @$getauthor[1], "1929",   "get author year" );
     108        is( @$getauthor[2], "Wigley", "get author" );
     109        is( @$getauthor[3], "1929",   "get author year" );
     110       
     111                        $getauthor = ProccesAllicVariants::getAuthor("(604144.0001) and Y232C (604144.0012)");
     112        is( @$getauthor[0], undef, "get author false positive" );
     113        is( @$getauthor[1], undef,   "get author year" );
     114        #(600617) and SF1 (184757) genes
     115                        $getauthor = ProccesAllicVariants::getAuthor("(600617) and SF1 (184757) genes");
     116        is( @$getauthor[0], undef, "get author false positive"  );
     117        is( @$getauthor[1], undef,   "get author year" );
     118       
     119       
     120        $getauthor = ProccesAllicVariants::getAuthor("titin (188840) and myosin (160710)-binding site");
     121                is( @$getauthor[0], undef, "get author false positive myosin"  );
     122        is( @$getauthor[1], undef,   "get author year" );
     123       
     124        $getauthor = ProccesAllicVariants::getAuthor("in (188840)- and myosin (160710)-binding sites.");
     125                is( @$getauthor[0], undef, "get author false positive myosin"  );
     126        is( @$getauthor[1], undef,   "get author year" );       
     127       
    103128       
    104129$string =
     
    163188);
    164189
     190#n A-to-G transition at nucleotide 1730 in exon 13, resulting in the substitu exon 34
     191
     192is(
     193        ProccesAllicVariants::extractnuclitdemutation( " A-to-G transition at nucleotide 1730 in exon 13, resulting in the substitu exon 34", "75" ),
     194        "A-to-G transition at nucleotide 1730 in exon 13",
     195        "nucleotide with exon"
     196);
     197
     198is(
     199        ProccesAllicVariants::extractnuclitdemutation("on on 1 chromosome in the proband was a T-to-C transition predicted to result in a cys1417-to-arg substitution.The mutation was located in exon 30"),"T-to-C transition in exon 30","T-to-C transition BLABLA in exon 30");
    165200#acta .00010
    166201$string = "In 5 affected members spanning 3 generations of a Chinese family with
     
    187222#       "GGC to AGC", "codon change was GGC to AGC" );
    188223
     224
     225print("\ntesting format of deletions inserts and other awkward mutations\n");
     226is(
     227        ProccesAllicVariants::formatInDelMutation("1-BP DEL, 1764G") ,
     228        "1764delG",
     229        "1-BP DEL, 1764G"
     230);
     231
     232is(
     233        ProccesAllicVariants::formatInDelMutation( "2-BP DEL, 3283TC") ,
     234        "3283_3284delTC",
     235        "3283_3284delTC"
     236);
     237
     238is(
     239        ProccesAllicVariants::formatInDelMutation( "40-BP DEL, NT1294") ,
     240        "1294_1333del",
     241        "1294_1333del"
     242);
     243
     244is(
     245        ProccesAllicVariants::formatInDelMutation( "1675A DEL") ,
     246        "1675delA",
     247        "1675delA"
     248);
     249is(
     250        ProccesAllicVariants::formatInDelMutation( "1-BP INS, 1135A") ,
     251        "1135_1136insA",
     252        "1135_1136insA"
     253);
     254
     255is(
     256        ProccesAllicVariants::formatInDelMutation( "110-BP INS/14-BP DEL") ,
     257        "110-BP INS/14-BP DEL",
     258        "110-BP INS/14-BP DEL"
     259);
     260
     261#BRCA1.0033: 5-BP INS, NT3171. Als de nucleotiden in de tekst gespecificeerd worden, zouden we die graag terug zien, bijv. 3171_3172insAGTCG.
     262is(
     263        ProccesAllicVariants::formatInDelMutation( "5-BP INS, NT3171") ,
     264        "",
     265        ""
     266);
     267is(
     268        ProccesAllicVariants::formatInDelMutation( "") ,
     269        "",
     270        ""
     271);
     272
     273is(
     274        ProccesAllicVariants::formatInDelMutation( "") ,
     275        "",
     276        ""
     277);
     278
     279is(
     280        ProccesAllicVariants::formatInDelMutation( "") ,
     281        "",
     282        ""
     283);
     284
     285
     286
     287
    189288my $omim_entry = $omim_parser->next_phenotype();
    190289my $numb       = $omim_entry->MIM_number();
Note: See TracChangeset for help on using the changeset viewer.