[med-svn] [Git][med-team/trnascan-se][upstream] New upstream version 2.0.7+ds
Étienne Mollier
gitlab at salsa.debian.org
Wed Nov 4 19:52:25 GMT 2020
Étienne Mollier pushed to branch upstream at Debian Med / trnascan-se
Commits:
ca11dede by Étienne Mollier at 2020-11-04T20:19:11+01:00
New upstream version 2.0.7+ds
- - - - -
9 changed files:
- configure.ac
- + lib/gcode/gcode.marsumito
- lib/tRNAscanSE/ArraytRNA.pm
- lib/tRNAscanSE/CM.pm
- lib/tRNAscanSE/GeneticCode.pm
- lib/tRNAscanSE/ScanResult.pm
- lib/tRNAscanSE/tRNA.pm
- tRNAscan-SE.conf.src
- tRNAscan-SE.src
Changes:
=====================================
configure.ac
=====================================
@@ -7,9 +7,25 @@ AC_PREREQ([2.69])
AC_INIT([tRNAscan-SE],[2.0.0],[pchan at soe.ucsc.edu])
AC_CONFIG_HEADERS([config.h])
+AC_ARG_ENABLE(debugging,
+ AS_HELP_STRING([--enable-debugging],[enable debugging, default: no]),
+[
+case "${enableval}" in
+ yes) enable_debugging=yes ;;
+ no) enable_debugging=no ;;
+ *) AC_MSG_ERROR([bad value ${enableval} for --enable-debugging]) ;;
+esac],
+[enable_debugging=no])
+
# Checks for programs.
AC_PROG_CC
+if test "$enable_debugging" != "no"; then
+ CFLAGS="-g -Wall"
+else
+ CFLAGS="-O3"
+fi
+
# standard install program
AC_PROG_INSTALL
=====================================
lib/gcode/gcode.marsumito
=====================================
@@ -0,0 +1,7 @@
+# Marsupial mitochondrial translation codes
+# Format: <Codon> <3-letter AA abreviation> <One letter AA abrev>
+
+TGA Trp W
+ATA Met M
+GGC Asp D
+AGR Stp *
=====================================
lib/tRNAscanSE/ArraytRNA.pm
=====================================
@@ -210,7 +210,14 @@ sub bsearch_id
my $x = shift;
my $key = shift;
my ($l, $u) = (0, @{$self->{ar_tRNAs}} - 1);
- my $i;
+ my $i;
+
+ my @x_parts = ();
+ if ($key eq "gtrnadb_id_parts")
+ {
+ @x_parts = split(/\-/, $x);
+ }
+
while ($l <= $u)
{
$i = int(($l + $u)/2);
@@ -259,6 +266,66 @@ sub bsearch_id
return $i;
}
}
+ elsif ($key eq "gtrnadb_id_parts")
+ {
+ my @ar_parts = split(/\-/, $self->{ar_tRNAs}->[$i]->gtrnadb_id());
+ if ($ar_parts[0] lt $x_parts[0])
+ {
+ $l = $i+1;
+ }
+ elsif ($ar_parts[0] gt $x_parts[0])
+ {
+ $u = $i-1;
+ }
+ else
+ {
+ if ($ar_parts[1] lt $x_parts[1])
+ {
+ $l = $i+1;
+ }
+ elsif ($ar_parts[1] gt $x_parts[1])
+ {
+ $u = $i-1;
+ }
+ else
+ {
+ if ($ar_parts[2] lt $x_parts[2])
+ {
+ $l = $i+1;
+ }
+ elsif ($ar_parts[2] gt $x_parts[2])
+ {
+ $u = $i-1;
+ }
+ else
+ {
+ if ($ar_parts[3] < $x_parts[3])
+ {
+ $l = $i+1;
+ }
+ elsif ($ar_parts[3] > $x_parts[3])
+ {
+ $u = $i-1;
+ }
+ else
+ {
+ if ($ar_parts[4] < $x_parts[4])
+ {
+ $l = $i+1;
+ }
+ elsif ($ar_parts[4] > $x_parts[4])
+ {
+ $u = $i-1;
+ }
+ else
+ {
+ return $i;
+ }
+ }
+ }
+ }
+ }
+ }
elsif ($key eq "extdb_id")
{
if ($self->{ar_tRNAs}->[$i]->extdb_id() lt $x)
@@ -295,6 +362,10 @@ sub sort_array
{
@{$self->{ar_tRNAs}} = sort sort_by_gtrnadb_id @{$self->{ar_tRNAs}};
}
+ elsif ($key eq "gtrnadb_id_parts")
+ {
+ @{$self->{ar_tRNAs}} = sort sort_by_gtrnadb_id_parts @{$self->{ar_tRNAs}};
+ }
elsif ($key eq "extdb_id")
{
@{$self->{ar_tRNAs}} = sort sort_by_extdb_id @{$self->{ar_tRNAs}};
@@ -344,6 +415,18 @@ sub sort_by_gtrnadb_id
return ($a->gtrnadb_id() cmp $b->gtrnadb_id());
}
+sub sort_by_gtrnadb_id_parts
+{
+ my @a_parts = split(/\-/, $a->gtrnadb_id());
+ my @b_parts = split(/\-/, $b->gtrnadb_id());
+
+ return ($a_parts[0] cmp $b_parts[0] ||
+ $a_parts[1] cmp $b_parts[1] ||
+ $a_parts[2] cmp $b_parts[2] ||
+ int($a_parts[3]) <=> int($b_parts[3]) ||
+ int($a_parts[4]) <=> int($b_parts[4]));
+}
+
sub sort_by_extdb_id
{
return ($a->extdb_id() cmp $b->extdb_id());
=====================================
lib/tRNAscanSE/CM.pm
=====================================
@@ -710,7 +710,6 @@ sub find_anticodon
my $seq = $trna->seq();
my $ss = $trna->ss();
- my $model = $trna->model();
my $undef_anticodon = $gc->undef_anticodon();
my $antiloop_index = 0;
@@ -720,29 +719,101 @@ sub find_anticodon
# looking for second stem-loop structure ">>>>...<<<<"
# that should be the anitocodon stem-loop
- if ($opts->mito_mode() and $model eq "SerGCT")
+ if ($ss =~ /^([>.]+<[<.]+>[>.]*)>([.]{4,})<+.+[>.]+<[<.]+/o)
{
- if ($ss =~ /^([>.]+)>([.]{4,})<+.+[>.]+<[<.]+/o)
- {
- # set to index position of first base in anticodon loop
- $antiloop_index = length($1) + 1;
- $antiloop_len = length($2); # anticodon loop length
- }
+ # set to index position of first base in anticodon loop
+ $antiloop_index = length($1) + 1;
+ $antiloop_len = length($2); # anticodon loop length
}
- elsif ($opts->mito_mode())
+
+ if ($antiloop_index != 0 and $antiloop_len != 0)
{
- if ($ss =~ /^([>.]+<[<.]+[>.]*)>([.]{4,})<+.+[>.]+<[<.]+/o)
+ # index of end of anticodon loop
+ $antiloop_end = $antiloop_index + $antiloop_len - 1;
+
+ $antiloop = substr($seq, $antiloop_index, $antiloop_len);
+
+ # remove '-' gaps from loop
+ $antiloop =~ s/[\-]//g;
+
+ # Don't guess if even number of bp in
+ # anticodon loop
+
+ # remove introns & non-canonical bases
+ $antiloop =~ s/[a-z]//g;
+
+ if ((length($antiloop) < 5) || ((length($antiloop) % 2) == 0))
{
- # set to index position of first base in anticodon loop
- $antiloop_index = length($1) + 1;
- $antiloop_len = length($2); # anticodon loop length
+ return ($undef_anticodon, -1, -1, -1);
}
+ # get anticodon
+ $ac_index = (length($antiloop) - 3) / 2;
+ $anticodon = substr($antiloop, $ac_index, 3);
+ $verify_ac = substr($seq, $ac_index + $antiloop_index, 3);
+
+ # check to see if anticodon extracted from the entire
+ # trna sequence (coveseq) is same as that extracted from
+ # just the anticodon loop sequence (antiloop)
+
+ if ($verify_ac ne $anticodon)
+ {
+ $trna->category("undetermined_ac");
+ return ($undef_anticodon, -1, -1, -1);
+ }
+ return ($anticodon, $antiloop_index, $antiloop_end, $ac_index + $antiloop_index + 1);
+ }
+ else
+ {
+ $trna->category("undetermined_ac");
+ return ($undef_anticodon, -1, -1, -1);
+ }
+}
+
+# find anticodon loop & a-codon from coves or cmsearch output
+sub find_mito_anticodon
+{
+ my $self = shift;
+ my ($opts, $trna, $gc) = @_;
+ my ($antiloop, $antiloop_end, $ac_index, $anticodon, $verify_ac);
+
+ my $seq = $trna->seq();
+ my $ss = $trna->ss();
+ my $model = $trna->model();
+ my $undef_anticodon = $gc->undef_anticodon();
+
+ my $antiloop_index = 0;
+ my $antiloop_len = 0;
+
+ # Match pattern in secondary structure output,
+ # looking for second stem-loop structure ">>>>...<<<<"
+ # that should be the anitocodon stem-loop
+
+ if ($model eq "SerGCT" and $ss =~ /^([>.]+)>([.]{4,})<+.+[>.]+<[<.]+/o)
+ {
+ # set to index position of first base in anticodon loop
+ $antiloop_index = length($1) + 1;
+ $antiloop_len = length($2); # anticodon loop length
+ $trna->note("No D-arm");
+ }
+ elsif ($ss =~ /^([>.]+<[<.]+[>.]*)>([.]{4,})<[<.]+[.]{4,}<[<.]+$/o)
+ {
+ # set to index position of first base in anticodon loop
+ $antiloop_index = length($1) + 1;
+ $antiloop_len = length($2); # anticodon loop length
+ $trna->note("No T-arm");
}
- elsif ($ss =~ /^([>.]+<[<.]+>[>.]*)>([.]{4,})<+.+[>.]+<[<.]+/o)
+ elsif ($ss =~ /^([>.]+[.]{4,}[>.]+)>([.]{4,})<[<.]+\.+[>.]+<[<.]+$/o)
{
# set to index position of first base in anticodon loop
$antiloop_index = length($1) + 1;
$antiloop_len = length($2); # anticodon loop length
+ $trna->note("No D-arm");
+ }
+ elsif ($ss =~ /^([>.]+<[<.]+[>.]*)>([.]{4,})<+.+[>.]+<[<.]+/o)
+ {
+ # set to index position of first base in anticodon loop
+ $antiloop_index = length($1) + 1;
+ $antiloop_len = length($2); # anticodon loop length
}
if ($antiloop_index != 0 and $antiloop_len != 0)
@@ -757,65 +828,65 @@ sub find_anticodon
# Don't guess if even number of bp in
# anticodon loop
- if (!$opts->mito_mode())
+ $antiloop = uc($antiloop);
+ if (length($antiloop) < 5)
{
- # remove introns & non-canonical bases
- $antiloop =~ s/[a-z]//g;
-
- if ((length($antiloop) < 5) || ((length($antiloop) % 2) == 0))
- {
- return ($undef_anticodon, -1, -1, -1);
- }
- # get anticodon
- $ac_index = (length($antiloop) - 3) / 2;
- $anticodon = substr($antiloop, $ac_index, 3);
- $verify_ac = substr($seq, $ac_index + $antiloop_index, 3);
+ $trna->category("undetermined_ac");
+ return ($undef_anticodon, -1, -1, -1);
}
- else
+ elsif ((length($antiloop) % 2) == 0)
{
- $antiloop = uc($antiloop);
- if (length($antiloop) < 5)
+ my $found = 0;
+ $ac_index = int((length($antiloop) - 3) / 2);
+ $anticodon = substr($antiloop, $ac_index, 3);
+ my $isotype = $gc->get_tRNA_type($self, $anticodon, $self->{main_cm_file_path}->{$model}, $model, $self->cove_mode());
+ if ($model eq $isotype or ($model eq "SerGCT" and $isotype eq "Ser") or ($model eq "SerTGA" and $isotype eq "Ser")
+ or ($model eq "LeuTAG" and $isotype eq "Leu") or ($model eq "LeuTAA" and $isotype eq "Leu"))
{
- $trna->category("undetermined_ac");
- return ($undef_anticodon, -1, -1, -1);
+ $trna->category("mito_ac_mislocation");
+ $found = 1;
}
- elsif ((length($antiloop) % 2) == 0)
+ else
{
- $ac_index = int((length($antiloop) - 3) / 2);
+ $ac_index = int((length($antiloop) - 3) / 2 + 1);
$anticodon = substr($antiloop, $ac_index, 3);
- my $isotype = $gc->get_tRNA_type($self, $anticodon, $self->{main_cm_file_path}->{$model}, $model, $self->cove_mode());
+ $isotype = $gc->get_tRNA_type($self, $anticodon, $self->{main_cm_file_path}->{$model}, $model, $self->cove_mode());
if ($model eq $isotype or ($model eq "SerGCT" and $isotype eq "Ser") or ($model eq "SerTGA" and $isotype eq "Ser")
or ($model eq "LeuTAG" and $isotype eq "Leu") or ($model eq "LeuTAA" and $isotype eq "Leu"))
{
$trna->category("mito_ac_mislocation");
- $trna->note("(".$anticodon.")");
+ $found = 1;
}
else
{
- $ac_index = int((length($antiloop) - 3) / 2 + 1);
+ $ac_index = 2;
$anticodon = substr($antiloop, $ac_index, 3);
$isotype = $gc->get_tRNA_type($self, $anticodon, $self->{main_cm_file_path}->{$model}, $model, $self->cove_mode());
if ($model eq $isotype or ($model eq "SerGCT" and $isotype eq "Ser") or ($model eq "SerTGA" and $isotype eq "Ser")
or ($model eq "LeuTAG" and $isotype eq "Leu") or ($model eq "LeuTAA" and $isotype eq "Leu"))
{
$trna->category("mito_ac_mislocation");
- $trna->note("(".$anticodon.")");
- }
- else
- {
- $trna->category("mito_mismatch_ac");
- $trna->note("(".$anticodon.")");
+ $found = 1;
}
}
- return ($undef_anticodon, -1, -1, -1);
}
- else
+
+ if ($found)
{
- # get anticodon
- $ac_index = (length($antiloop) - 3) / 2;
- $anticodon = substr($antiloop, $ac_index, 3);
$verify_ac = uc(substr($seq, $ac_index + $antiloop_index, 3));
}
+ else
+ {
+ $trna->category("undetermined_ac");
+ return ($undef_anticodon, -1, -1, -1);
+ }
+ }
+ else
+ {
+ # get anticodon
+ $ac_index = (length($antiloop) - 3) / 2;
+ $anticodon = substr($antiloop, $ac_index, 3);
+ $verify_ac = uc(substr($seq, $ac_index + $antiloop_index, 3));
}
# check to see if anticodon extracted from the entire
@@ -1044,7 +1115,7 @@ sub decode_nci_tRNA_properties
else
{
($intron, $istart, $iend) = $self->find_intron($trna->seq(), $antiloop_index, $antiloop_end);
-
+
if ($intron)
{
$mat_seq = substr($trna->seq(), 0, $istart - 1).substr($trna->seq(), $iend);
@@ -1372,7 +1443,7 @@ sub decode_mito_tRNA_properties
$anticodon = "ERR";
- ($anticodon, $antiloop_index, $antiloop_end, $acodon_index) = $self->find_anticodon($opts, $trna, $gc);
+ ($anticodon, $antiloop_index, $antiloop_end, $acodon_index) = $self->find_mito_anticodon($opts, $trna, $gc);
$trna->anticodon($anticodon);
$trna->add_ac_pos($acodon_index, $acodon_index + 2);
@@ -1424,8 +1495,15 @@ sub decode_mito_tRNA_properties
{
if ($trna->category() eq "")
{
- $trna->category("mito_iso_conflict");
- $trna->note("(".$isotype.")");
+ $trna->category("mito_inconsistent_isotype");
+ if ($trna->note() ne "")
+ {
+ $trna->note("(".$isotype."); ".$trna->note());
+ }
+ else
+ {
+ $trna->note("(".$isotype.")");
+ }
}
$log->broadcast($prescan_tRNA->tRNAscan_id().".trna".$trna->id()." - isotype/anticondon conflict\t Model: ".$trna->model()." Detected: ".$isotype.$anticodon."\n".
$trna->seq()."\n".$trna->ss()."\n");
@@ -1434,15 +1512,22 @@ sub decode_mito_tRNA_properties
{
if ($trna->category() eq "")
{
- $trna->category("mito_mismatch_ac");
- $trna->note("(".$model_ac.")");
+ $trna->category("mito_inconsistent_ac");
+ if ($trna->note() ne "")
+ {
+ $trna->note("(".$model_ac."); ".$trna->note());
+ }
+ else
+ {
+ $trna->note("(".$model_ac.")");
+ }
}
}
if ($vert_mito_isotype eq "")
{
if ($trna->category() eq "")
{
- $trna->category("mito_noncanonical_ac");
+ $trna->category("mito_unexpected_ac");
}
}
@@ -1581,7 +1666,7 @@ sub scan_noncanonical_introns
if ($nci_count > 0)
{
my $ci_seq = "";
- if ($ci_index > -1)
+ if ($ci_index > -1 and $tRNA->model() ne "SeC")
{
if ($add_ci)
{
@@ -1640,7 +1725,7 @@ sub add_canonical_intron
}
}
$mat_seq .= substr($precursor_seq, $introns[scalar(@introns)-1]->{rel_end});
-
+
if (uc($mat_seq) ne uc($tRNA->mat_seq()))
{
my $trna_file = tRNAscanSE::Sequence->new;
@@ -1785,12 +1870,13 @@ sub check_intron_validity
}
my $clip_seq = substr($padded_seq, 0, $cm_intron->start() - $previous_intron_len + length($pre_intron_seq) - 1) . substr($padded_seq, $cm_intron->end() - $previous_intron_len - length($post_intron_seq));
+
my $trna_file = tRNAscanSE::Sequence->new;
$trna_file->open_file($global_constants->get("tmp_trnaseq_file"), "write");
$trna_file->set_seq_info($tRNA->seqname().".trna".&pad_num($tRNA->id(), 6), $tRNA->tRNAscan_id(), length($clip_seq), $clip_seq);
$trna_file->write_fasta();
$trna_file->close_file();
-
+
my $scan_flag = 0;
my $cms_output_file = "";
my $file_idx = -1;
@@ -1852,7 +1938,31 @@ sub check_intron_validity
{
$intron_start = $pos + 1;
$intron_end = length($intron_seq) + $pos;
- my @ar_introns = $tRNA->ar_introns();
+ my @ar_introns_src = $tRNA->ar_introns();
+ my @ar_introns = ();
+ my $intron_rec = {};
+ # Adjust intron relative start and end when round1 seq is different from round2 seq
+ for (my $i = 0; $i < scalar(@ar_introns_src); $i++)
+ {
+ $intron_rec = {};
+ $intron_rec->{seq} = $ar_introns_src[$i]->{seq};
+ $intron_rec->{start} = $ar_introns_src[$i]->{start};
+ $intron_rec->{end} = $ar_introns_src[$i]->{end};
+ $intron_rec->{type} = $ar_introns_src[$i]->{type};
+ if (uc(substr($seq, $ar_introns_src[$i]->{rel_start} - 1, $ar_introns_src[$i]->{rel_end} - $ar_introns_src[$i]->{rel_start} + 1)) ne uc($ar_introns_src[$i]->{seq}))
+ {
+ my $pos_i = index(uc($seq), uc($ar_introns_src[$i]->{seq}));
+ $intron_rec->{rel_start} = $pos_i + 1;
+ $intron_rec->{rel_end} = length($ar_introns_src[$i]->{seq}) + $pos_i;
+ }
+ else
+ {
+ $intron_rec->{rel_start} = $ar_introns_src[$i]->{rel_start};
+ $intron_rec->{rel_end} = $ar_introns_src[$i]->{rel_end};
+ }
+ $ar_introns[$i] = $intron_rec;
+ }
+ # Check intron duplication
for (my $i = 0; $i < scalar(@ar_introns); $i++)
{
if ($ar_introns[$i]->{rel_start} == $intron_start and $ar_introns[$i]->{rel_end} == $intron_end)
@@ -1879,6 +1989,13 @@ sub check_intron_validity
$log->debug("Overlap with intron ".$tRNA->tRNAscan_id()." ".$intron_seq);
last;
}
+ elsif ($ar_introns[$i]->{type} eq "NCI" and
+ &seg_overlap($ar_introns[$i]->{rel_start}, $ar_introns[$i]->{rel_end}, $intron_start, $intron_end, 0))
+ {
+ $ret_value = 0;
+ $log->debug("Overlap with noncanonical intron ".$tRNA->tRNAscan_id()." ".$intron_seq);
+ last;
+ }
}
}
@@ -1901,6 +2018,16 @@ sub check_intron_validity
my $hit_overlap = &seg_overlap($tRNA->start(), $tRNA->end(), $start, $end, 40);
if ($ret_value and $hit_overlap and $cm_tRNA->score() > $tRNA->score() and length($cm_tRNA->seq()) >= $self->{min_tRNA_no_intron})
{
+ # Adjust intron relative start and end when round1 seq is different from round2 seq
+ my @ar_introns = $tRNA->ar_introns();
+ for (my $i = 0; $i < scalar(@ar_introns); $i++)
+ {
+ if (uc(substr($seq, $ar_introns[$i]->{rel_start} - 1, $ar_introns[$i]->{rel_end} - $ar_introns[$i]->{rel_start} + 1)) ne uc($ar_introns[$i]->{seq}))
+ {
+ my $pos_i = index(uc($seq), uc($ar_introns[$i]->{seq}));
+ $tRNA->set_intron($i, $pos_i + 1, length($ar_introns[$i]->{seq}) + $pos_i, $ar_introns[$i]->{type}, $ar_introns[$i]->{seq});
+ }
+ }
$tRNA->upstream(substr($clip_seq, 0, $upstream_len));
$tRNA->downstream(substr($clip_seq, $cm_tRNA->end()));
$tRNA->seq($seq);
=====================================
lib/tRNAscanSE/GeneticCode.pm
=====================================
@@ -117,7 +117,7 @@ sub initialize
'GAA'=>'Phe', 'GTT'=>'Asn', 'TTT'=>'Lys', 'GTC'=>'Asp', 'TTC'=>'Glu',
'GTG'=>'His', 'TTG'=>'Gln', 'GTA'=>'Tyr',
'GAT'=>'Ile', 'TAT'=>'Met', 'CAT'=>'Met',
- 'GCA'=>'Cys', 'TCA'=>'Trp'
+ 'GCA'=>'Cys', 'TCA'=>'Trp', 'GCC'=>'Asp',
};
$self->{trans_map} = +{};
=====================================
lib/tRNAscanSE/ScanResult.pm
=====================================
@@ -548,15 +548,26 @@ sub save_allStruct_output
$note = $tRNA->category();
$note =~ s/_/ /g;
$note =~ s/mito //g;
- $note =~ s/iso/type/g;
$note =~ s/ac/anticodon/g;
$note = uc(substr($note, 0, 1)).substr($note, 1);
if ($tRNA->note() ne "")
{
- $note = $note . " ". $tRNA->note();
+ if ($tRNA->note() =~ /^\(/)
+ {
+ $note = $note . " ". $tRNA->note();
+ }
+ else
+ {
+ $note = $note . ";". $tRNA->note();
+ }
}
$line .= "Note: ".$note;
}
+ elsif ($tRNA->note() ne "")
+ {
+ $note = $tRNA->note();
+ $line .= "Note: ".$note;
+ }
}
if ($line ne "")
@@ -832,13 +843,23 @@ sub construct_tab_output
if ($tRNA->category() ne "" and $opts->detail())
{
$note = $tRNA->category();
- $note =~ s/mito //g;
- $note =~ s/iso/type/g;
+ $note =~ s/mito_//g;
if ($tRNA->note() ne "")
{
- $note = $note . $tRNA->note();
+ if ($tRNA->note() =~ /^\(/)
+ {
+ $note = $note . " " . $tRNA->note();
+ }
+ else
+ {
+ $note = $note . ";" . $tRNA->note();
+ }
}
}
+ elsif ($tRNA->note() ne "" and $opts->detail())
+ {
+ $note = $tRNA->note();
+ }
$result_line .= "\t".$note;
}
$result_line .= "\n";
=====================================
lib/tRNAscanSE/tRNA.pm
=====================================
@@ -1274,6 +1274,22 @@ sub get_base_at_rel_align_pos
return $base;
}
+sub get_seq_at_rel_align_pos
+{
+ my $self = shift;
+ my $rel_pos_start = shift;
+ my $rel_pos_end = shift;
+
+ my $len = $rel_pos_end - $rel_pos_start + 1;
+
+ my $seq = "";
+ if ($rel_pos_start != -1 and $len > 0)
+ {
+ $seq = substr($self->{data}->[_sprinzl_align], $rel_pos_start, $len);
+ }
+ return $seq;
+}
+
sub get_rel_pos
{
my $self = shift;
=====================================
tRNAscan-SE.conf.src
=====================================
@@ -82,6 +82,7 @@ gc_invert_mito: {lib_dir}/gcode/gcode.invmito
gc_ciliate_cyto: {lib_dir}/gcode/gcode.cilnuc
gc_echinoderm_mito: {lib_dir}/gcode/gcode.echdmito
gc_other_mito: {lib_dir}/gcode/gcode.othmito
+gc_marsu_mito: {lib_dir}/gcode/gcode.marsumito
# Infernal 1.1 covariance models
cm_dir: {lib_dir}/models
=====================================
tRNAscan-SE.src
=====================================
@@ -4,7 +4,7 @@
# tRNAscan-SE: a program for improved detection of transfer RNA
# genes in genomic sequence
#
-# Version 2.0.6
+# Version 2.0.7
#
# Copyright (C) 2020 Patricia Chan and Todd Lowe
#
@@ -39,8 +39,8 @@ use tRNAscanSE::IntResultFile;
use tRNAscanSE::MultiResultFile;
use tRNAscanSE::SS;
-our $version = "2.0.6";
-our $release_date = "May 2020";
+our $version = "2.0.7";
+our $release_date = "Oct 2020";
our $program_id = "tRNAscan-SE-".$version;
# modified by 'make'
@@ -621,7 +621,7 @@ sub error_handler
sub display_credits
{
- print STDERR "Copyright (C) 2019 Patricia Chan and Todd Lowe\n",
+ print STDERR "Copyright (C) 2020 Patricia Chan and Todd Lowe\n",
" University of California Santa Cruz\n",
"Freely distributed under the GNU General Public License (GPLv3)\n\n";
}
@@ -1063,7 +1063,7 @@ sub set_options
$opts->no_isotype(0);
if ($opt_isocm eq "off")
{
- $opts->no_isotype(0);
+ $opts->no_isotype(1);
}
if ($opt_mt ne '')
View it on GitLab: https://salsa.debian.org/med-team/trnascan-se/-/commit/ca11dedea08701701140b444d70b16900c7713f8
--
View it on GitLab: https://salsa.debian.org/med-team/trnascan-se/-/commit/ca11dedea08701701140b444d70b16900c7713f8
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20201104/9d7ffc5c/attachment-0001.html>
More information about the debian-med-commit
mailing list