Mercurial > repos > clairetn > detrprok_scripts
diff detrprok_scripts/colorGff.pl @ 0:a53eb951b164 draft
Uploaded
author | clairetn |
---|---|
date | Mon, 25 Mar 2013 05:39:29 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/detrprok_scripts/colorGff.pl Mon Mar 25 05:39:29 2013 -0400 @@ -0,0 +1,69 @@ +#!/usr/bin/perl -w +### +# But : ajout ou modif de couleur d'un gff +# +# Entrees : fichier gff +# +# Sortie : gff affiche a l'ecran +# +###------------------------------------------------------ +use vars qw($USAGE); +use strict; + +=head1 NAME + +colorGff.pl - add or change color of a gff file + +=head1 SYNOPSIS + +% colorGff.pl -i file.gff -c color [-h] + +=head1 DESCRIPTION +This script will add or replace the 'color' tag of a gff formated file. + + -i|--input fileName gff input file name + -c|--color RGBcode RGB code for color + [-h|--help] help mode then die + +=head1 AUTHOR - Claire Toffano-Nioche - jan.11 + +=cut +#----------------------- +my ($fileName, $colorGff) = ("", "") ; + # command line check + foreach my $num (0 .. $#ARGV) { + SWITCH: for ($ARGV[$num]) { + /--input|-i/ && do { + $fileName=$ARGV[$num+1]; + open ( fichierGff, "< $fileName" ) or die "Can't open gff file: \"$fileName\"\n" ; + last }; + /--color|-c/ && do { + $colorGff =$ARGV[$num+1]." ".$ARGV[$num+2]." ".$ARGV[$num+3]; + last }; + /--help|-h/ && do { exec("pod2text $0\n") ; die }; + } + } + + # informations retrieval + my @lines = <fichierGff> ; + close fichierGff ; + # treatment + #print "gff file read ; number of lines : $#lines\n"; + for (my $i=0 ; $i <= $#lines ; $i++) { + if (defined ($lines[$i])) { + if (!($lines[$i] =~ m/^\s*$|^#/)) { # skip both null and comment lines + if ($lines[$i] =~ /;/) { + if ($lines[$i] =~ /color=/) { # replace value + $lines[$i] =~ s/color=.*;*/color=$colorGff;/ ; + } else { # add color tag and value + $lines[$i] =~ s/;/;color=$colorGff;/ ; + } + } else { # only one tag so no coma: add color tag + chomp($lines[$i]) ; + $lines[$i] .= "; color=".$colorGff.";\n"; + } + } + print $lines[$i]; + } + } +exit(0);