Mercurial > repos > sanbi-uwc > windowmasker
annotate windowmasker_to_bed.pl @ 1:1758bc8694e4 draft default tip
"planemo upload commit 6a9208ec123353417bc4c7f81c02e50c05d54e63-dirty"
author | sanbi-uwc |
---|---|
date | Sun, 19 Apr 2020 12:00:17 +0000 |
parents | a1ae9babbfe1 |
children |
rev | line source |
---|---|
0
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
1 #!/usr/bin/env perl |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
2 use warnings; |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
3 use strict; |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
4 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
5 =head1 NAME |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
6 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
7 windowmasker_to_bed.pl - Convert WindowMasker output to BED format |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
8 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
9 =head1 SYNOPSIS |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
10 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
11 windowmasker_to_bed.pl < ${input.interval} > ${output.bed} |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
12 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
13 =head1 DESCRIPTION |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
14 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
15 This scripts converts the interval output from WindowMasker ustat |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
16 to bed 4 format. |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
17 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
18 =head1 VERSION |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
19 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
20 Last update: 2017-04-28 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
21 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
22 =cut |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
23 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
24 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
25 #==================== |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
26 # Libraries |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
27 #==================== |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
28 use Getopt::Long; |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
29 use Pod::Usage; |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
30 use Carp; |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
31 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
32 sub main { |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
33 parse_arguments(); |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
34 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
35 my $chrom; |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
36 my $idx = 0; |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
37 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
38 while ( defined(my $line = <>) ) { |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
39 next if ($line =~ /^\s*$/x); |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
40 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
41 if ($line =~ /^>(\S+)/x) { |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
42 $chrom = $1; |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
43 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
44 } elsif ($line =~ /(\d+)\s+\-\s+(\d+)/x) { |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
45 # interval coordinates are 0-based |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
46 my $start = $1; |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
47 my $end = $2 + 1; |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
48 my $name = sprintf("wm_%d", $idx++); |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
49 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
50 print join("\t", $chrom, $start, $end, $name), "\n"; |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
51 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
52 } else { |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
53 croak("Invalid line: ${line}"); |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
54 } |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
55 } |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
56 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
57 return; |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
58 } |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
59 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
60 main(); |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
61 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
62 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
63 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
64 #==================== |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
65 # Parse command-line arguments |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
66 #==================== |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
67 sub parse_arguments { |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
68 my $help = 0; |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
69 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
70 GetOptions('help|?' => \$help) or usage(); |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
71 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
72 pod2usage({ verbose => 2 }) if ($help); |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
73 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
74 return; |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
75 } |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
76 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
77 sub usage { |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
78 my $msg = shift; |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
79 |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
80 pod2usage({ verbose => 1, message => $msg || "" }); |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
81 exit 1; |
a1ae9babbfe1
"planemo upload commit 8e874182b67b9a313bbb4d947d8db040a6148c5d-dirty"
sanbi-uwc
parents:
diff
changeset
|
82 } |