Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.64 KB | None | 0 0
  1. #!/usr/bin/env perl
  2.  
  3. my $inf = shift;
  4.  
  5. open IN, $inf;
  6.  
  7. my %cds;
  8.  
  9. # slurpy block
  10. while (<IN>){
  11. chomp;
  12. my @F = split;
  13. if (/Parent=([^;]+)/){
  14. my $id = "$1";
  15. $cds{$id}->{start}||=$F[3];
  16. $cds{$id}->{stop}||=$F[4];
  17.  
  18. $cds{$id}->{start}=$F[3] if $F[3] < $cds{$id}->{start};
  19. $cds{$id}->{stop}=$F[4] if $F[4] > $cds{$id}->{stop};
  20. }
  21. }
  22. close IN;
  23.  
  24. # fixie block
  25.  
  26. # while (my ($k,$v)= eadch %cds){
  27. # print "funky "
  28. # }
  29.  
  30.  
  31. open IN, $inf;
  32. while (<IN>){
  33. if (/ID=([^;\n]+)/){
  34. my @F=split;
  35. my ($newStart,$newStop) = ($cds{$1}->{start},$cds{$1}->{stop});
  36. my ($oldStart,$oldStop) = ($F[3],$F[4]);
  37. s/$oldStart/$newStart/;
  38. s/$oldStop/$newStop/;
  39. }
  40. print
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement