private void parseTranscripts() {
        logger.info("Parsing gene model file...");
        long tstart = System.currentTimeMillis();
        this.transcripts = new ArrayList<TranscriptRecord>();
        
        try {
            BufferedReader reader = IOUtils.toBufferedReader(new InputStreamReader(new FileInputStream(geneModelFile), "UTF-8"));
            
            String line = null;
            while ((line = reader.readLine()) != null) {
                if (line.startsWith("#")) continue;
                
                TranscriptRecord record = parser.parseLine(line);
                if(record == null) continue;
                
                transcripts.add(record);
            }
        } catch (IOException e) {
            throw new RuntimeException("Failed to read gene modle file", e);
        } catch (GTFParseException e) {
            throw new RuntimeException("Failed to parse gene model file", e);
        }

        long tend = System.currentTimeMillis();
        double totalTime = ((tend - tstart)/1000);
        logger.info("Finished parsing gene model file in: "+totalTime + "s");
        if(transcripts.size() == 0) {
            throw new RuntimeException("No transcripts found! Can't generate fusions without transcripts!");
        }
    }