annotate detrprok_scripts/splitTranscriptGff.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 : croiser
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
4 #
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
5 # Entrees : 2 fichiers gff à croiser
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 splitTranscriptGff.pl - compare 2 input gff files and define intervalls by couple of overlapping elements
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 % intervallsExtractorGff.pl -i file1.gff -j file2.gff -s strand [-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 sort 2 gff files and compute distance between 2 successives lines.
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
23
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
24 -i|--input1 fileName gff input file name: included elements
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
25 -j|--input2 fileName gff input file name: extended elements
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
26 [-s|--strand] [s|d] s for single strand (colinear) or d for double strands (antisense) [default d]
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
27 [-h|--help] help mode then die
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
28
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
29 =head1 USECASE
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
30 Compare 2 input gff files: an annotations file (included elements) and transcription units file (extended elements).
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
31 For each couple of overlapping elements, split the transcription unit in 5'utr, CDS, 3'utr or "operon" in case of successives genes included in the transcription unit.
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
32
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
33 =head1 KWON BUG
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
34 Fisrt and last elements on the genome sequence can be misclassified in the result file.
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
35
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
36 =head1 AUTHOR
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
37 Claire Toffano-Nioche - sep.11
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
38
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
39 =cut
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
40 #-----------------------
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
41 sub feedPositionTab { my ($val, $pF, $pB, @info) = @_ ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
42 #print "feedPositionTab::$#info, ", ($#info+1)/4," \n";
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
43 for (my $i=0 ; $i <= $#info ; $i+=4) { # for each extended element
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
44 #print "....$info[$i+2]\n";
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
45 if ($info[$i+3] =~ /\+/) {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
46 for (my $c = $info[$i+1] ; $c <= $info[$i+2] ; $c++) { @$pF[$c]=$val } ; # Forward sequence
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
47 } else {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
48 for (my $c = $info[$i+1] ; $c <= $info[$i+2] ; $c++) { @$pB[$c]=$val } ; # Backward sequence
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
49 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
50 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
51 #print "feedPos...:: ", join(".", @$pF[0..100]), "\n";
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
52 #print "feedPos...:: ", join(".", @$pB[0..100]), "\n";
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
53 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
54 #-----------------------
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
55 sub recupInfo { my ($pInfo, @lines) = @_ ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
56 my $i=0 ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
57 while ($i<=$#lines){
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
58 chomp($lines[$i]);
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
59 my @line = split("\t",$lines[$i]);
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
60 if (defined ($line[0])) {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
61 if (!($line[0] =~ m/^\s*$|^#/)) { # skip both null and comment lines
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
62 push(@$pInfo, $line[0], $line[3], $line[4], $line[6]) ; # 0=name, 3=begin, 4=end, 6=strand
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
63 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
64 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
65 $i=$i+1 ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
66 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
67 #print "recupInfo::end=", $i, "\n" ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
68 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
69 #-----------------------
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
70 sub tagName { my ($seqN, $posB, $posE, $strand) = @_ ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
71 my $tagN=$seqN.$strand.$posB."..".$posE;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
72 #print "tagName::",join("_",@_)," and tagName:$tagN\n";
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
73 return $tagN;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
74 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
75 #-----------------------
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
76 sub transitionAnalysis {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
77 my ($pos, $seq, $s, $pdebAmont, $pfinAmont, $pdebIn, $pfinIn, $pdebAval, $pfinAval, $ptag) = @_ ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
78 my $enCours = @$ptag[$pos] ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
79 my $precedant = ($s =~ /\+/?@$ptag[$pos-1]:@$ptag[$pos+1]) ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
80 if ($enCours ne $precedant) {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
81 #print "transi...:: $s, $pos, $precedant, $enCours\n";
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
82 #print "transition::$$pdebAmont, $$pfinAmont, $$pdebIn, $$pfinIn, $$pdebAval, $$pfinAval\n";
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
83 SWITCH: for ($precedant.$enCours) {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
84 /01/ && do { $$pdebAmont = $pos ; last SWITCH ;};
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
85 /02/ && do { $$pdebIn = $pos ; last SWITCH ;};
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
86 /10/ && do { $$pfinAval = ($s =~/\+/?$pos-1:$pos+1) ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
87 if (($s =~ /\+/)and ($$pdebAval!=$$pfinAval)) {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
88 printf "%s\tsplit\tutr3\t%s\t%s\t.\t%s\t.\tName=%s;\n",
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
89 $seq, $$pdebAval, $$pfinAval, $s, &tagName($seq, $$pdebAval, $$pfinAval, $s) ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
90 #if ($$pdebAval==$$pfinAval) { print "transition 10 +\n"};
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
91 } elsif ($$pfinAval!=$$pdebAval) {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
92 printf "%s\tsplit\tutr3\t%s\t%s\t.\t%s\t.\tName=%s;\n",
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
93 $seq, $$pfinAval, $$pdebAval, $s, &tagName($seq, $$pfinAval, $$pdebAval, $s) ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
94 #if ($$pfinAval==$$pdebAval){ print "transition 10 -\n"};
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
95 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
96 $$pdebAval = 0 ; $$pfinAval = 0 ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
97 last SWITCH ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
98 };
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
99 /12/ && do { $$pdebIn = $pos ; $$pfinAmont=($s =~/\+/?$pos-1:$pos+1) ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
100 my $type="utr5";
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
101 if ($$pdebAmont == 0) { # in case of interOperon : utr5-CDS-interOperon-CDS-utr3
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
102 $$pdebAmont=($s =~/\+/?$$pfinIn+1:$$pfinIn-1) ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
103 $type="operon" ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
104 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
105 if (($s =~ /\+/) and ($$pdebAmont!=$$pfinAmont)) {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
106 printf "%s\tsplit\t%s\t%s\t%s\t.\t%s\t.\tName=%s;\n",
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
107 $seq, $type, $$pdebAmont, $$pfinAmont, $s, &tagName($seq, $$pdebAmont, $$pfinAmont, $s) ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
108 # if ($$pdebAmont==$$pfinAmont) { print "transition 12 +\n"};
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
109 } elsif ($$pfinAmont!=$$pdebAmont) {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
110 printf "%s\tsplit\t%s\t%s\t%s\t.\t%s\t.\tName=%s;\n",
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
111 $seq, $type, $$pfinAmont, $$pdebAmont, $s, &tagName($seq, $$pfinAmont, $$pdebAmont, $s) ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
112 #if ($$pfinAmont==$$pdebAmont) { print "transition 12 -\n"} ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
113 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
114 $$pdebAmont = 0 ; $$pfinAmont = 0 ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
115 last SWITCH ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
116 };
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
117 /20/ && do { $$pfinIn=($s =~/\+/?$pos-1:$pos+1) ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
118 if (($s =~ /\+/) and ($$pdebIn!=$$pfinIn)) {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
119 printf "%s\tsplit\tgene\t%s\t%s\t.\t%s\t.\tName=%s;\n",
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
120 $seq, $$pdebIn, $$pfinIn, $s, &tagName($seq, $$pdebIn, $$pfinIn, $s) ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
121 } elsif ($$pfinIn!=$$pdebIn) {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
122 printf "%s\tsplit\tgene\t%s\t%s\t.\t%s\t.\tName=%s;\n",
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
123 $seq, $$pfinIn, $$pdebIn, $s, &tagName($seq, $$pfinIn, $$pdebIn, $s) ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
124 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
125 $$pdebIn = 0 ; $$pfinIn = 0 ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
126 last SWITCH ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
127 };
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
128 /21/ && do { $$pdebAval=$pos ; $$pfinIn=($s =~/\+/?$pos-1:$pos+1) ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
129 if (($s =~ /\+/) and ($$pdebIn!=$$pfinIn)) {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
130 printf "%s\tsplit\tgene\t%s\t%s\t.\t%s\t.\tName=%s;\n",
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
131 $seq, $$pdebIn, $$pfinIn, $s, &tagName($seq, $$pdebIn, $$pfinIn, $s) ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
132 } elsif ($$pfinIn!=$$pdebIn) {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
133 printf "%s\tsplit\tgene\t%s\t%s\t.\t%s\t.\tName=%s;\n",
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
134 $seq, $$pfinIn, $$pdebIn, $s, &tagName($seq, $$pfinIn, $$pdebIn, $s) ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
135 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
136 #$$pdebIn = 0 ; $$pfinIn = 0 ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
137 last SWITCH ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
138 };
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
139 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
140 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
141 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
142 #-----------------------
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
143 my ($fileNameI, $fileNameE, $strand) = ("", "", 0) ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
144 # command line check
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
145 foreach my $num (0 .. $#ARGV) {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
146 SWITCH: for ($ARGV[$num]) {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
147 /--input1|-i/ && do {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
148 $fileNameI=$ARGV[$num+1];
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
149 open ( fichierGffI, "< $fileNameI" ) or die "Can't open gff file: \"$fileNameI\"\n" ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
150 last };
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
151 /--input2|-j/ && do {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
152 $fileNameE=$ARGV[$num+1];
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
153 open ( fichierGffE, "< $fileNameE" ) or die "Can't open gff file: \"$fileNameE\"\n" ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
154 last };
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
155 /--strand|-s/ && do {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
156 if ($ARGV[$num+1] eq "s") { $strand=1};
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
157 last };
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
158 /--help|-h/ && do { exec("pod2text $0\n") ; die };
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
159 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
160 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
161 # memory declarations:
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
162 my @infoI ; my @infoE ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
163 my $seqName ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
164 my @tagF ; my @tagB ; # for Forward and Backward sequences
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
165 # data retrieval:
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
166 my @linesI = <fichierGffI> ; my @linesE = <fichierGffE> ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
167 close fichierGffI ; close fichierGffE ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
168 #print "gff files read ; number of lines : ",$#linesI+1," + ",$#linesE+1,"\n";
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
169 # positions management:
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
170 &recupInfo(\@infoI, @linesI) ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
171 #print "number of treated elements:",($#infoI+1)/4,"\n";
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
172 &recupInfo(\@infoE, @linesE) ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
173 #print "number of treated elements:",($#infoE+1)/4,"\n";
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
174 # treatement:
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
175 # transform gff lines into chromosomal position tags : 0 for nothing, 1 resp. 2 for extended resp. included elements
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
176 if (($#infoI) and ($#infoE)) {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
177 $seqName=$infoI[0] ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
178 #print "end : $infoE[$#infoE-1]\n";
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
179 for (my $i=0 ; $i <= $infoE[$#infoE-1] ; $i++) { $tagF[$i] = 0 ; $tagB[$i] = 0 ; } ; # "O" tag in all chr. positions
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
180 #print "seqName : $seqName\n" ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
181 &feedPositionTab(1, \@tagF, \@tagB, @infoE) ; # "1" tag for all extended elements
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
182 &feedPositionTab(2, \@tagF, \@tagB, @infoI) ; # "2" tag for all included elements
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
183 #print join("", @tagF), "\n";
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
184 #print join("", @tagB), "\n";
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
185 # transition management:
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
186 my ($beginUpstream, $endUpstream, $beginIncluded, $endIncluded, $beginDownstream, $endDownstream)
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
187 = (0, 0, 0, 0, 0, 0) ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
188 for (my $i=1 ; $i <= $#tagF-1 ; $i+=1) {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
189 &transitionAnalysis($i, $seqName, "+", \$beginUpstream, \$endUpstream, \$beginIncluded, \$endIncluded, \$beginDownstream, \$endDownstream, \@tagF) ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
190 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
191 ($beginUpstream, $endUpstream, $beginIncluded, $endIncluded, $beginDownstream, $endDownstream)
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
192 = ($infoE[$#infoE-1], $infoE[$#infoE-1], $infoE[$#infoE-1], $infoE[$#infoE-1], $infoE[$#infoE-1], $infoE[$#infoE-1]) ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
193 for (my $i=$#tagB-1 ; $i >= 1 ; $i-=1) {
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
194 &transitionAnalysis($i, $seqName, "-", \$beginUpstream, \$endUpstream, \$beginIncluded, \$endIncluded, \$beginDownstream, \$endDownstream, \@tagB) ;
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
195 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
196 }
a53eb951b164 Uploaded
clairetn
parents:
diff changeset
197 exit(0) ;