SHOW:
|
|
- or go back to the newest paste.
1 | #!/usr/bin/perl | |
2 | # | |
3 | # nuskaityti bindingdb sdf failus | |
4 | # H-Se/DB26984_50278320.sdf kaip testas imtas | |
5 | # | |
6 | # VR | |
7 | # | |
8 | ||
9 | #use warnings; | |
10 | use Data::Dumper; | |
11 | ||
12 | ||
13 | #nuskaityti failus i @molekules | |
14 | die "usage VR_bindingdb_parse.pl file.sdf" if (@ARGV != 1); | |
15 | $FILE = $ARGV[0]; | |
16 | open FILE, "<", $FILE or die $!; | |
17 | $x=0; | |
18 | $key='str'; | |
19 | while(<FILE>) { | |
20 | chop($_); | |
21 | next if ($_ =~ /^$/); #jei eilute tuscia praleidziam | |
22 | if ($_ =~ /\$\$\$\$/) { #jei eiluteje yra: $$$$ | |
23 | $x++; | |
24 | $key = 'str'; | |
25 | next; | |
26 | } | |
27 | #print $x, $_; | |
28 | if ($_ =~ /^\>/) { #jei eilute prasideda: > | |
29 | chop(); | |
30 | $_ =~ s/> <//; | |
31 | $key = $_; | |
32 | } else { | |
33 | #$molekules[molekules nr.]{irasas} | |
34 | push @{ $molekules[$x]{$key} }, $_; | |
35 | } | |
36 | } | |
37 | close FILE; | |
38 | #print STDERR Dumper \@molekules; | |
39 | print $FILE, "\n"; | |
40 | ||
41 | ||
42 | #rasti nuo kur prasideda kitokia molekule | |
43 | #pirmoji kita yra $ta_pati+1 | |
44 | kita(); | |
45 | sub kita { | |
46 | $y=0; | |
47 | print $y; | |
48 | $ta_pati=0; | |
49 | while($molekules[$y]{'str'}) { | |
50 | #print STDERR Dumper $molekules[$y]{'str'}, "\n"; | |
51 | $z=0; | |
52 | while($molekules[$y]{'str'}[$z]) { | |
53 | #jei z eilute nesutampa y ir y+1 nors karta tai kita molekule | |
54 | if ($molekules[$y]{'str'}[$z] ne $molekules[$y+1]{'str'}[$z]) { | |
55 | $ta_pati=$y; | |
56 | #print STDERR $y, " :", $molekules[$y]{'str'}[$z], " ir ", $molekules[$y+1]{'str'}[$z], "\n"; | |
57 | last; | |
58 | } | |
59 | $z++; | |
60 | } | |
61 | last if ($ta_pati); | |
62 | $y++; | |
63 | } | |
64 | } | |
65 | - | print STDERR Dumper $molekules[$ta_pati+1]{'str'}, "\n"; |
65 | + | #print STDERR Dumper $molekules[0], "\n"; |
66 | ||
67 | ||
68 | #Surinkti Ki vertes i du array: | |
69 | $x=0; | |
70 | while($molekules[$x]{'Enzymologic: Ki nM'}) { | |
71 | #tik jei Ki apibrezta | |
72 | if ($molekules[$x]{'Enzymologic: Ki nM'} > 0) { | |
73 | if ($x <= $ta_pati) { | |
74 | push @pirma, $molekules[$x]{'Enzymologic: Ki nM'}; | |
75 | } else { | |
76 | push @antra, $molekules[$x]{'Enzymologic: Ki nM'}; | |
77 | } | |
78 | } | |
79 | $x++; | |
80 | } | |
81 | print STDERR "Ki ", $molekules[0]{'BindingDB Display Name'}[0], " molekulei:\n"; | |
82 | print STDERR Dumper @pirma; | |
83 | print STDERR "Ki ", $molekules[$ta_pati+1]{'BindingDB Display Name'}[0], " molekulei:\n"; | |
84 | print STDERR Dumper @antra; |