2 package org.forester.surfacing;
4 import java.util.ArrayList;
5 import java.util.HashSet;
8 import java.util.SortedMap;
10 import org.forester.phylogeny.Phylogeny;
11 import org.forester.phylogeny.PhylogenyMethods;
12 import org.forester.phylogeny.PhylogenyNode;
13 import org.forester.phylogeny.iterators.PhylogenyNodeIterator;
14 import org.forester.protein.Domain;
15 import org.forester.protein.Protein;
16 import org.forester.species.BasicSpecies;
17 import org.forester.species.Species;
19 public final class MinimalDomainomeCalculator {
21 public static void main( final String[] args ) {
22 Set<String> a = new HashSet<String>();
23 Set<String> b = new HashSet<String>();
24 Set<String> c = new HashSet<String>();
25 Set<String> d = new HashSet<String>();
40 List<Set<String>> domains_per_genome_list = new ArrayList();
41 domains_per_genome_list.add( a );
42 domains_per_genome_list.add( b );
43 domains_per_genome_list.add( c );
44 domains_per_genome_list.add( d );
45 Set<String> x = x( domains_per_genome_list );
46 System.out.println( x );
49 static final public void calc( Phylogeny tre, SortedMap<Species, List<Protein>> protein_lists_per_species ) {
50 for( final PhylogenyNodeIterator iter = tre.iteratorPostorder(); iter.hasNext(); ) {
51 final PhylogenyNode node = iter.next();
52 if ( node.isInternal() ) {
54 if ( node.getNodeData().isHasTaxonomy() ) {
55 System.out.println( node.getNodeData().getTaxonomy().getScientificName() + ":" );
58 System.out.println( node.getName() + ":" );
60 final List<PhylogenyNode> e = node.getAllExternalDescendants();
61 final List<Set<String>> domains_per_genome_list = new ArrayList();
62 for( PhylogenyNode en : e ) {
63 final String code = en.getNodeData().getTaxonomy().getTaxonomyCode();
64 System.out.print( code + " " );
65 //System.out.println( protein_lists_per_species );
66 final List<Protein> x = protein_lists_per_species.get( new BasicSpecies( code ) );
68 final Set<String> d = new HashSet<String>();
69 for( Protein protein : x ) {
70 List<Domain> domains = protein.getProteinDomains();
71 for( Domain domain : domains ) {
72 d.add( domain.getDomainId() );
75 domains_per_genome_list.add( d );
79 Set<String> x = x( domains_per_genome_list );
80 System.out.println( x );
85 static final Set<String> x( List<Set<String>> domains_per_genome_list ) {
86 Set<String> first = domains_per_genome_list.get( 0 );
87 for( int i = 1; i < domains_per_genome_list.size(); ++i ) {
88 first.retainAll( domains_per_genome_list.get( i ) );