public void run() throws IOException {
        System.out.println("started processing " + dirName);

        //all transcripts from ensembl, sorted
        getAllTranscripts();
        Collections.sort(allTranscr);
        trSize = allTranscr.size(); //number of transcripts

        //all files to use
        ArrayList<String> fNames = null;
        if (fileList == null){
            fNames = getFileNames();//get file names and sample names
        }
        else{
            TextFile flist = new TextFile(fileList, false);
            
            fNames = new ArrayList<String>(Arrays.asList(flist.readAsArray(1, TextFile.tab)));
            sampleNames = new String[fNames.size()];
            flist.close();
            flist = new TextFile(fileList, false);
            sampleNames = flist.readAsArray(0, TextFile.tab);

            flist.close();
        }
        samplesSize = fNames.size(); //number of samples

        makeTable(fNames);

        //print the result
        if (! normalizeByLength)
            printTable();
        else
            printTableNormByLength();
    }