Advertisement
ProzacR

Random_table_analyze1000

Nov 7th, 2017
925
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 2.00 KB | None | 0 0
  1. #!/usr/bin/perl
  2. #1000 kartu sudaryti DB ir KEGG ID poras atsitiktines
  3. #atmesti jei nera target
  4. #likusiu paskaiciuoti kiek % bent vienas target sutampa
  5. #
  6. # VR
  7.  
  8. use Data::Dump;
  9.  
  10. open(KEGG, '<:encoding(UTF-8)', "KEGG_galutinis.targets")
  11.   or die "Could not open file KEGG_galutinis.targets $!";
  12. open(DB, '<:encoding(UTF-8)', "DB_clean.targets")
  13.   or die "Could not open file DB_clean.targets $!";
  14.  
  15. while ($DB_row = <DB>) {
  16.           chomp $DB_row;
  17.           #gal paskui...:
  18.           #@DB_line = split(',', $DB_row);
  19.           push(@DB_data, $DB_row);
  20. }
  21.  
  22. while ($KEGG_row = <KEGG>) {
  23.           chomp $KEGG_row;
  24.           #gal paskui...:
  25.           #@KEGG_line = split(',', $KEGG_row);
  26.           push(@KEGG_data, $KEGG_row);
  27.           #print "$KEGG_row\n";
  28. }
  29.  
  30. #DB 10499 paskutinis, o KEGG 1609
  31. #print "$DB_data[10499]\n";
  32. #print "@KEGG_data[1609]\n";
  33. #dd @KEGG_data;
  34.  
  35. #main loop:
  36. for ($x=1; $x <=1000; $x++) {
  37.  
  38. $turi_target = 0;
  39. $sutampa_target = 0;
  40. for ($i=0; $i <= 4000; $i++) { #viso 4000 poru
  41.         $KEGG_random = int(rand(1609));
  42.         $DB_random = int(rand(10499));
  43.         #patikrinti ar turi target:
  44.         if (($DB_data[$DB_random] =~ /\./) && ($KEGG_data[$KEGG_random] =~ /\./)) {
  45.                 #print "$DB_data[$DB_random]\n";
  46.                 #print "$KEGG_data[$KEGG_random]\n\n";
  47.                 $turi_target++;
  48.                 #patikrinti ar sutampa bent vienas target:
  49.                 @KEGG_line = split(',', $KEGG_data[$KEGG_random]);
  50.                 @DB_line = split(',', $DB_data[$DB_random]);
  51.                 foreach $n (@KEGG_line) {
  52.                         foreach $m (@DB_line) {
  53.                            if ($n eq $m) {
  54.                                    #print "$n\n";
  55.                                    $sutampa_target++;
  56.                            }
  57.                         }
  58.                   }
  59.         }
  60. }
  61. $ats[$x] = ($sutampa_target/$turi_target)*100;
  62. print "$ats[$x]\n";
  63. $suma = $suma + $ats[$x];
  64. }
  65. $vidurkis = $suma/$x;
  66. print "average: $vidurkis\n";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement