diff --git a/misc-scripts/chimp/ErrCode.pm b/misc-scripts/chimp/ErrCode.pm new file mode 100644 index 0000000000000000000000000000000000000000..af22e3ce0762e91def9ec076cada39692f8b9179 --- /dev/null +++ b/misc-scripts/chimp/ErrCode.pm @@ -0,0 +1,107 @@ +use strict; +use warnings; + +package ErrCode; + +use Exporter; + +use vars qw(@EXPORT_OK @ISA); + +@ISA = qw(Exporter); + +@EXPORT_OK = qw(&set_err &get_err &ec2str); + + +use constant OK => 0; + +use constant PART_EXON_CDS_DELETE_TOO_LONG => 1; +use constant PART_EXON_CDS_FRAMESHIFT_DELETE_TOO_LONG => 2; +use constant PART_EXON_CDS_DELETE_ENTIRE => 3; +use constant PART_EXON_CDS_INSERT_TOO_LONG => 4; +use constant PART_EXON_CDS_FRAMESHIFT_INSERT_TOO_LONG => 5; +use constant PART_EXON_CONFUSED => 6; + +use constant NO_CDS_LEFT => 7; + +use constant EXON_DELETE_CODING => 10; +use constant EXON_STRAND_FLIP => 11; +use constant EXON_INVERT => 12; +use constant EXON_SCAFFOLD_SPAN => 13; + +use constant TRANSCRIPT_STRAND_FLIP => 20; +use constant TRANSCRIPT_INVERT => 21; +use constant TRANSCRIPT_SCAFFOLD_SPAN => 22; + +use constant TRANSCRIPT_DOES_NOT_TRANSLATE => 30; + + +my $ERR; + +sub set_err { + $ERR = shift; +} + +sub get_err { + my $cur_err = $ERR; + $ERR = OK; + return $cur_err; +} + + +#converts an error code to a string +sub ec2str { + my $ec = shift; + + my $str = ''; + + if($ec == OK) { + $str = 'OK'; + } + elsif($ec == PART_EXON_CDS_DELETE_TOO_LONG) { + $str = 'Exon CDS deletion too long.'; + } + elsif($ec == PART_EXON_CDS_FRAMESHIFT_DELETE_TOO_LONG) { + $str = 'Exon frameshifting deletion too long.'; + } + elsif($ec == PART_EXON_CDS_DELETE_ENTIRE) { + $str = 'Entire CDS deleteion.'; + } + elsif($ec == PART_EXON_CDS_INSERT_TOO_LONG) { + $str = 'Exon CDS insertion too long.'; + } + elsif($ec == PART_EXON_CDS_FRAMESHIFT_INSERT_TOO_LONG) { + $str = 'Exon frameshifting insertion too long.'; + } + elsif($ec == NO_CDS_LEFT) { + $str = 'No CDS left following CDS adjustments due to inserts/deletions'; + } + elsif($ec == PART_EXON_CONFUSED) { + $str = 'Confused due to insert following short match consumed ' . + 'by introduced frameshift intron.'; + } + elsif($ec == EXON_DELETE_CODING) { + $str = 'Entire coding exon deletion.'; + } + elsif($ec == EXON_STRAND_FLIP) { + $str = 'Exon flips strands.'; + } + elsif($ec == EXON_INVERT) { + $str = 'Exon inversion.'; + } + elsif($ec == EXON_SCAFFOLD_SPAN) { + $str = 'Exon spans multiple scaffolds.'; + } + elsif($ec == TRANSCRIPT_STRAND_FLIP) { + $str = 'Transcript flips strands.'; + } + elsif($ec == TRANSCRIPT_INVERT) { + $str = 'Transcript inversion.'; + } + elsif($ec == TRANSCRIPT_SCAFFOLD_SPAN) { + $str = 'Transcript spans multiple scaffolds.'; + } + + return $str; +} + +1;