String ToString() {
        String retVal = "**************\n" + name + ": \n";
        retVal += "************** \n";
        retVal += "\t " + maxLength + " the maximum length of a domain\n";
        retVal += "\t " + minLength + " the minimum length of a domain\n";
        retVal += "\t " + averageLength + " The average length of the domain\n";
        retVal += "\t " + comparisonResult.insideIntervalsCounterDomainsInGenes + " domains within genes" + "\n";
        if (!comparisonResult.intersectedNeighbourDomainsGenes.isEmpty()) {
            retVal += "\t domains on the border: ";
            for (Interval i : comparisonResult.intersectedNeighbourDomainsGenes) {
                retVal += " " + i + ",";
            }
            retVal = retVal.substring(0, retVal.length() - 1) + "\n";
        }
        retVal += "\t " + comparisonResult.insideIntervalsCounterGenesInDomains + " genes within the domains" + "\n";
        retVal += "\t " + intervalsAmount + " number of domains in the current chromosome" + "\n";
        if (!comparisonResult.numberGenesOnBorderInterval.isEmpty()) {
            for (Interval i : comparisonResult.numberGenesOnBorderInterval.keySet()) {
                retVal += "in domain " + i + " " + comparisonResult.numberGenesOnBorderInterval.get(i).size() +
                        " : " + comparisonResult.numberGenesOnBorderInterval.get(i) + " genes cross the border" + "\n";
            }
            retVal = retVal.substring(0, retVal.length() - 1) + "\n";
        }
        if (!comparisonResult.intersectedNeighbourDomainsGenes.isEmpty()) {
            retVal += "\t Domain on the border: ";
            for (Interval i : comparisonResult.intersectedNeighbourDomainsGenes) {
                retVal += " " + i + ",";
            }
            retVal = retVal.substring(0, retVal.length() - 1) + "\n";
        }
        retVal += "\t domain " + comparisonResult.genRichInterval + " contains the highest number of genes " + comparisonResult.countMax + "\n";
        if (!comparisonResult.numberOfGenesIncludedInInterval.isEmpty()) {
            for (Interval i : comparisonResult.numberOfGenesIncludedInInterval.keySet()) {
                retVal += "domain " + i + "\t contains\t" + comparisonResult.numberOfGenesIncludedInInterval.get(i).size() + "\tgenes\t" + comparisonResult.numberOfGenesIncludedInInterval.get(i) + " \n";
            }
            retVal = retVal.substring(0, retVal.length() - 1) + "\n";
        }
        return retVal;
    }