in reply to Re: Tag protein names in sentences
in thread Tag protein names in sentences
I'd build a lookup table then walk over the sentence one word at a time looking for matches:
use strict; use warnings; my $sentence = 'The Doc4 protein , stress-induced flibbled the woozle +in the presence of gonadotrophin alpha 2 subunit'; my %proteinLU; while (<DATA>) { chomp; my $protein = $_; my @parts = split; my $parent = \%proteinLU; while (@parts) { my $part = shift @parts; $parent = $parent->{$part} ||= {}; next if @parts; $parent->{_name_} = $protein; } } my @words = split ' ', $sentence; while (@words) { my $word = shift @words; next if ! exists $proteinLU{$word}; my $parent = $proteinLU{$word}; my $wIndex = 0; while ($wIndex < @words && exists $parent->{$words[$wIndex]}) { $parent = $parent->{$words[$wIndex++]} } print "$parent->{_name_}\n" if exists $parent->{_name_}; } __DATA__ 7-phospho-2-dehydro-3-deoxy-D-arabino-heptonate D-erythrose-4-phosphat +e lyase (pyruvate-phosphorylating) gamma-glutamyl-gamma-aminobutyraldehyde dehydrogenase (Gamma-Glu-gamma +-aminobutyraldehyde dehydrogenase) 3-phosphoshikimate 1-carboxyvinyltransferase (5-enolpyruvylshikimate-3 +-phosphate synthase)(EPSP synthase Hypothetical protein CBG17340 gonadotrophin alpha 2 subunit Doc4 protein , stress-induced optomotor-blind Dfrizzled-3 Tramtrack69 gutfeeling betaFTZ-F1 Sex-lethal Strabismus PAR3alpha Armadillo AP-2alpha GLUT1CBP eIF3-p44 Flamingo PP2Czeta PLCgamma TFIIIC90 Wingless Frizzled Profilin TXBP151
Prints:
Doc4 protein , stress-induced gonadotrophin alpha 2 subunit
I invented a sentence because the sample sentence didn't seem to include any of the sample proteins so didn't provide a very interesting test case!
Very likely you will have to normalize the protein names in some fashion and normalize the sentence likewise so that variations in punctuation and white space usage don't prevent valid matches. But you'd have had to do that in any case so I guess you have that sorted out.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Tag protein names in sentences
by sinlam (Novice) on Feb 16, 2010 at 17:13 UTC | |
|
Re^3: Tag protein names in sentences
by sinlam (Novice) on Feb 17, 2010 at 23:11 UTC | |
by GrandFather (Saint) on Feb 18, 2010 at 02:58 UTC | |
by sinlam (Novice) on Feb 18, 2010 at 19:34 UTC | |
by GrandFather (Saint) on Feb 18, 2010 at 19:53 UTC | |
|
Re^3: Tag protein names in sentences
by Anonymous Monk on Feb 15, 2010 at 21:19 UTC | |
by GrandFather (Saint) on Feb 15, 2010 at 21:39 UTC | |
by sinlam (Novice) on Feb 16, 2010 at 22:38 UTC | |
by GrandFather (Saint) on Feb 16, 2010 at 22:56 UTC |