import java.util.TreeSet;
import org.forester.go.GoId;
-import org.forester.surfacing.BinaryDomainCombination.DomainCombinationType;
+import org.forester.protein.BinaryDomainCombination;
+import org.forester.protein.BinaryDomainCombination.DomainCombinationType;
+import org.forester.protein.Domain;
+import org.forester.protein.DomainId;
+import org.forester.protein.Protein;
+import org.forester.species.Species;
import org.forester.util.BasicDescriptiveStatistics;
import org.forester.util.DescriptiveStatistics;
import org.forester.util.ForesterUtil;
private final static NumberFormat FORMATTER = new DecimalFormat( "0.0E0" );
private static final Comparator<CombinableDomains> DESCENDING_KEY_DOMAIN_COUNT_ORDER = new Comparator<CombinableDomains>() {
+ @Override
public int compare( final CombinableDomains d1,
final CombinableDomains d2 ) {
- if ( d1
- .getKeyDomainCount() < d2
+ if ( d1.getKeyDomainCount() < d2
.getKeyDomainCount() ) {
return 1;
}
};
private static final Comparator<CombinableDomains> DESCENDING_KEY_DOMAIN_PROTEINS_COUNT_ORDER = new Comparator<CombinableDomains>() {
+ @Override
public int compare( final CombinableDomains d1,
final CombinableDomains d2 ) {
- if ( d1
- .getKeyDomainProteinsCount() < d2
+ if ( d1.getKeyDomainProteinsCount() < d2
.getKeyDomainProteinsCount() ) {
return 1;
}
};
private static final Comparator<CombinableDomains> DESCENDING_COMBINATIONS_COUNT_ORDER = new Comparator<CombinableDomains>() {
+ @Override
public int compare( final CombinableDomains d1,
final CombinableDomains d2 ) {
- if ( d1
- .getNumberOfCombinableDomains() < d2
+ if ( d1.getNumberOfCombinableDomains() < d2
.getNumberOfCombinableDomains() ) {
return 1;
}
_combinable_domains_map.put( key, cdc );
}
+ @Override
public boolean contains( final DomainId key_id ) {
return _combinable_domains_map.containsKey( key_id );
}
+ @Override
public CombinableDomains get( final DomainId key_id ) {
return _combinable_domains_map.get( key_id );
}
+ @Override
public SortedMap<DomainId, CombinableDomains> getAllCombinableDomainsIds() {
return _combinable_domains_map;
}
return stats;
}
+ @Override
public int getSize() {
return _combinable_domains_map.size();
}
+ @Override
public Species getSpecies() {
return _species;
}
// Produces something like:
// 2-oxoacid_dh 5 5 2 4.8E-67 Biotin_lipoyl [4], E3_binding [3]
+ @Override
public StringBuilder toStringBuilder( final GenomeWideCombinableDomainsSortOrder sort_order ) {
final StringBuilder sb = new StringBuilder();
final List<CombinableDomains> combinable_domains = new ArrayList<CombinableDomains>();
sb.append( ForesterUtil.pad( new StringBuffer( "" + cb.getKeyDomainCount() ), 8, ' ', false ) );
sb.append( ForesterUtil.pad( new StringBuffer( "" + cb.getKeyDomainProteinsCount() ), 8, ' ', false ) );
sb.append( ForesterUtil.pad( new StringBuffer( "" + cb.getNumberOfCombinableDomains() ), 8, ' ', false ) );
- sb
- .append( ForesterUtil
- .pad( new StringBuffer( ""
- + FORMATTER
- .format( cb.getKeyDomainConfidenceDescriptiveStatistics().median() ) ),
- 10,
- ' ',
- false ) );
+ sb.append( ForesterUtil.pad( new StringBuffer( ""
+ + FORMATTER.format( cb.getKeyDomainConfidenceDescriptiveStatistics()
+ .median() ) ),
+ 10,
+ ' ',
+ false ) );
sb.append( cb.getCombiningDomainIdsAsStringBuilder() );
sb.append( ForesterUtil.getLineSeparator() );
}
ignore_combination_with_same_domain,
species,
null,
- DomainCombinationType.BASIC );
+ DomainCombinationType.BASIC,
+ null,
+ null );
}
public static BasicGenomeWideCombinableDomains createInstance( final List<Protein> protein_list,
final boolean ignore_combination_with_same_domain,
final Species species,
final DomainCombinationType dc_type ) {
- return createInstance( protein_list, ignore_combination_with_same_domain, species, null, dc_type );
+ return createInstance( protein_list, ignore_combination_with_same_domain, species, null, dc_type, null, null );
}
public static BasicGenomeWideCombinableDomains createInstance( final List<Protein> protein_list,
final boolean ignore_combination_with_same_domain,
final Species species,
final Map<DomainId, List<GoId>> domain_id_to_go_ids_map,
- final DomainCombinationType dc_type ) {
+ final DomainCombinationType dc_type,
+ final Map<String, DescriptiveStatistics> protein_length_stats_by_dc,
+ final Map<String, DescriptiveStatistics> domain_number_stats_by_dc ) {
final BasicGenomeWideCombinableDomains instance = new BasicGenomeWideCombinableDomains( species, dc_type );
final Map<DomainId, Integer> domain_counts = new HashMap<DomainId, Integer>();
final Map<DomainId, Integer> domain_protein_counts = new HashMap<DomainId, Integer>();
if ( ( dc_type == DomainCombinationType.DIRECTED_ADJACTANT ) && ( closest != null ) ) {
domain_combination.addCombinableDomain( closest.getDomainId() );
}
+ if ( protein_length_stats_by_dc != null ) {
+ final List<BinaryDomainCombination> dcs = domain_combination.toBinaryDomainCombinations();
+ for( final BinaryDomainCombination dc : dcs ) {
+ final String dc_str = dc.toString();
+ if ( !protein_length_stats_by_dc.containsKey( dc_str ) ) {
+ protein_length_stats_by_dc.put( dc_str, new BasicDescriptiveStatistics() );
+ }
+ protein_length_stats_by_dc.get( dc_str ).addValue( protein.getLength() );
+ }
+ }
+ if ( domain_number_stats_by_dc != null ) {
+ final List<BinaryDomainCombination> dcs = domain_combination.toBinaryDomainCombinations();
+ for( final BinaryDomainCombination dc : dcs ) {
+ final String dc_str = dc.toString();
+ if ( !domain_number_stats_by_dc.containsKey( dc_str ) ) {
+ domain_number_stats_by_dc.put( dc_str, new BasicDescriptiveStatistics() );
+ }
+ domain_number_stats_by_dc.get( dc_str ).addValue( protein.getNumberOfProteinDomains() );
+ }
+ }
+ //
}
}
}