Skip to content

Commit 6b8031e

Browse files
committed
fix index out of range when --sqanti_output is used
1 parent 7172d83 commit 6b8031e

3 files changed

+34
-10
lines changed

src/alignment_processor.py

-7
Original file line numberDiff line numberDiff line change
@@ -409,13 +409,6 @@ def process_genic(self, alignment_storage, gene_info, region):
409409
read_assignment.exon_gene_profile = alignment_info.combined_profile.read_exon_profile.gene_profile
410410
read_assignment.intron_gene_profile = alignment_info.combined_profile.read_intron_profile.gene_profile
411411

412-
if self.params.sqanti_output:
413-
indel_count, junctions_with_indels = self.count_indel_stats(alignment)
414-
read_assignment.set_additional_info("indel_count", indel_count)
415-
read_assignment.set_additional_info("junctions_with_indels", junctions_with_indels)
416-
read_assignment.introns_match = \
417-
all(e == 1 for e in alignment_info.combined_profile.read_intron_profile.read_profile)
418-
419412
assignment_storage.append(read_assignment)
420413
logger.debug("=== Finished read " + read_id + " ===")
421414
return assignment_storage

src/dataset_processor.py

-2
Original file line numberDiff line numberDiff line change
@@ -299,8 +299,6 @@ def __init__(self, args, sample, read_groups, gffutils_db=None, chr_id=None, gzi
299299
additional_header=self.common_header, gzipped=gzipped)
300300
printer_list.append(self.basic_printer)
301301
if self.args.sqanti_output:
302-
# self.sqanti_printer = SqantiTSVPrinter(sample.out_alt_tsv, self.args, self.io_support)
303-
# printer_list.append(self.sqanti_printer)
304302
self.t2t_sqanti_printer = SqantiTSVPrinter(sample.out_t2t_tsv, self.args, self.io_support)
305303
self.global_printer = ReadAssignmentCompositePrinter(printer_list)
306304

src/graph_based_model_construction.py

+34-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,14 @@
2525
from .assignment_io import ReadAssignmentType
2626
from .gene_info import GeneInfo, StrandDetector, TranscriptModel, TranscriptModelType
2727
from .intron_graph import IntronGraph, VERTEX_polya, VERTEX_polyt, VERTEX_read_end, VERTEX_read_start
28-
from .isoform_assignment import is_matching_assignment, match_subtype_to_str_with_additional_info, MatchEventSubtype
28+
from .isoform_assignment import (
29+
is_matching_assignment,
30+
match_subtype_to_str_with_additional_info,
31+
MatchEventSubtype,
32+
ReadAssignment,
33+
MatchClassification,
34+
IsoformMatch
35+
)
2936
from .long_read_assigner import LongReadAssigner
3037
from .long_read_profiles import CombinedProfileConstructor
3138
from .polya_finder import PolyAInfo
@@ -163,6 +170,32 @@ def forward_counts(self):
163170
self.transcript_counter.add_confirmed_features([model.transcript_id for model in self.transcript_model_storage])
164171

165172
def compare_models_with_known(self):
173+
if not self.gene_info.all_isoforms_exons:
174+
for model in self.transcript_model_storage:
175+
# create intergenic
176+
assignment = ReadAssignment(model.transcript_id,
177+
ReadAssignmentType.intergenic,
178+
IsoformMatch(MatchClassification.intergenic))
179+
if model.strand == "-":
180+
polya_info = PolyAInfo(-1, model.exon_blocks[0][0], -1, -1)
181+
else:
182+
polya_info = PolyAInfo(model.exon_blocks[-1][1], -1, -1, -1)
183+
184+
assignment.polya_info = polya_info
185+
assignment.cage_found = False
186+
assignment.exons = model.exon_blocks
187+
assignment.strand = model.strand
188+
assignment.chr_id = model.chr_id
189+
assignment.set_additional_info("indel_count", "NA")
190+
assignment.set_additional_info("junctions_with_indels", "NA")
191+
assignment.introns_match = False
192+
assignment.gene_info = self.gene_info
193+
194+
FSM_class = "C"
195+
assignment.set_additional_info("FSM_class", FSM_class)
196+
self.transcript2transcript.append(assignment)
197+
return
198+
166199
gene_to_model_dict = defaultdict(list)
167200
for model in self.transcript_model_storage:
168201
gene_to_model_dict[model.gene_id].append(model.transcript_id)

0 commit comments

Comments
 (0)