annotate detrprok_scripts/colorGff.pl @ 0:a53eb951b164 draft

Uploaded
author clairetn
date Mon, 25 Mar 2013 05:39:29 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
1 #!/usr/bin/perl -w
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
2 ###
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
3 # But : ajout ou modif de couleur d'un gff
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
4 #
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
5 # Entrees : fichier gff
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
6 #
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
7 # Sortie : gff affiche a l'ecran
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
8 #
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
9 ###------------------------------------------------------
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
10 use vars qw($USAGE);
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
11 use strict;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
12
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
13 =head1 NAME
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
14
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
15 colorGff.pl - add or change color of a gff file
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
16
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
17 =head1 SYNOPSIS
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
18
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
19 % colorGff.pl -i file.gff -c color [-h]
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
20
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
21 =head1 DESCRIPTION
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
22 This script will add or replace the 'color' tag of a gff formated file.
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
23
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
24 -i|--input fileName gff input file name
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
25 -c|--color RGBcode RGB code for color
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
26 [-h|--help] help mode then die
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
27
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
28 =head1 AUTHOR - Claire Toffano-Nioche - jan.11
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
29
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
30 =cut
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
31 #-----------------------
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
32 my ($fileName, $colorGff) = ("", "") ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
33 # command line check
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
34 foreach my $num (0 .. $#ARGV) {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
35 SWITCH: for ($ARGV[$num]) {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
36 /--input|-i/ && do {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
37 $fileName=$ARGV[$num+1];
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
38 open ( fichierGff, "< $fileName" ) or die "Can't open gff file: \"$fileName\"\n" ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
39 last };
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
40 /--color|-c/ && do {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
41 $colorGff =$ARGV[$num+1]." ".$ARGV[$num+2]." ".$ARGV[$num+3];
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
42 last };
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
43 /--help|-h/ && do { exec("pod2text $0\n") ; die };
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
44 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
45 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
46
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
47 # informations retrieval
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
48 my @lines = <fichierGff> ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
49 close fichierGff ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
50 # treatment
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
51 #print "gff file read ; number of lines : $#lines\n";
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
52 for (my $i=0 ; $i <= $#lines ; $i++) {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
53 if (defined ($lines[$i])) {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
54 if (!($lines[$i] =~ m/^\s*$|^#/)) { # skip both null and comment lines
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
55 if ($lines[$i] =~ /;/) {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
56 if ($lines[$i] =~ /color=/) { # replace value
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
57 $lines[$i] =~ s/color=.*;*/color=$colorGff;/ ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
58 } else { # add color tag and value
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
59 $lines[$i] =~ s/;/;color=$colorGff;/ ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
60 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
61 } else { # only one tag so no coma: add color tag
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
62 chomp($lines[$i]) ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
63 $lines[$i] .= "; color=".$colorGff.";\n";
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
64 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
65 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
66 print $lines[$i];
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
67 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
68 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
69 exit(0);