X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Fapplication%2Fsurfacing.java;h=a085c9de586460293314bc99d4400cb2cce3626a;hb=8e37534c03f75befdad0d75fbf8e05be11cde71a;hp=c19902f6535aa8bc63cc2199da58c7c058c83c71;hpb=7bd2b51cf167a38ef4e11fa45d8877706f40e4a2;p=jalview.git diff --git a/forester/java/src/org/forester/application/surfacing.java b/forester/java/src/org/forester/application/surfacing.java index c19902f..a085c9d 100644 --- a/forester/java/src/org/forester/application/surfacing.java +++ b/forester/java/src/org/forester/application/surfacing.java @@ -46,7 +46,7 @@ import java.util.TreeSet; import org.forester.evoinference.distance.NeighborJoining; import org.forester.evoinference.matrix.character.CharacterStateMatrix.Format; -import org.forester.evoinference.matrix.distance.DistanceMatrix; +import org.forester.evoinference.matrix.distance.BasicSymmetricalDistanceMatrix; import org.forester.go.GoId; import org.forester.go.GoNameSpace; import org.forester.go.GoTerm; @@ -63,14 +63,17 @@ import org.forester.phylogeny.PhylogenyMethods; import org.forester.phylogeny.PhylogenyNode; import org.forester.phylogeny.factories.ParserBasedPhylogenyFactory; import org.forester.phylogeny.iterators.PhylogenyNodeIterator; +import org.forester.protein.BinaryDomainCombination; +import org.forester.protein.Domain; +import org.forester.protein.DomainId; +import org.forester.protein.Protein; +import org.forester.species.BasicSpecies; +import org.forester.species.Species; import org.forester.surfacing.BasicDomainSimilarityCalculator; import org.forester.surfacing.BasicGenomeWideCombinableDomains; -import org.forester.surfacing.BasicSpecies; -import org.forester.surfacing.BinaryDomainCombination; import org.forester.surfacing.CombinationsBasedPairwiseDomainSimilarityCalculator; import org.forester.surfacing.DomainCountsBasedPairwiseSimilarityCalculator; import org.forester.surfacing.DomainCountsDifferenceUtil; -import org.forester.surfacing.DomainId; import org.forester.surfacing.DomainLengthsTable; import org.forester.surfacing.DomainParsimonyCalculator; import org.forester.surfacing.DomainSimilarity; @@ -85,9 +88,7 @@ import org.forester.surfacing.PairwiseDomainSimilarityCalculator; import org.forester.surfacing.PairwiseGenomeComparator; import org.forester.surfacing.PrintableDomainSimilarity; import org.forester.surfacing.PrintableDomainSimilarity.PRINT_OPTION; -import org.forester.surfacing.Protein; import org.forester.surfacing.ProteinCountsBasedPairwiseDomainSimilarityCalculator; -import org.forester.surfacing.Species; import org.forester.surfacing.SurfacingUtil; import org.forester.util.BasicDescriptiveStatistics; import org.forester.util.BasicTable; @@ -234,8 +235,8 @@ public class surfacing { final static private String INPUT_SPECIES_TREE_OPTION = "species_tree"; final static private String SEQ_EXTRACT_OPTION = "prot_extract"; final static private char SEPARATOR_FOR_INPUT_VALUES = '#'; - final static private String PRG_VERSION = "2.230"; - final static private String PRG_DATE = "2012.04.22"; + final static private String PRG_VERSION = "2.250"; + final static private String PRG_DATE = "2012.05.07"; final static private String E_MAIL = "czmasek@burnham.org"; final static private String WWW = "www.phylosoft.org/forester/applications/surfacing"; final static private boolean IGNORE_DUFS_DEFAULT = true; @@ -285,6 +286,7 @@ public class surfacing { public static final String INDEPENDENT_DC_GAINS_FITCH_PARS_DC_MAPPED_OUTPUT_SUFFIX = "_indep_dc_gains_fitch_lists_MAPPED.txt"; public static final String INDEPENDENT_DC_GAINS_FITCH_PARS_DC_FOR_GO_MAPPING_MAPPED_OUTPUT_SUFFIX = "_indep_dc_gains_fitch_lists_for_go_mapping_MAPPED.txt"; public static final String INDEPENDENT_DC_GAINS_FITCH_PARS_DC_FOR_GO_MAPPING_MAPPED_OUTPUT_UNIQUE_SUFFIX = "_indep_dc_gains_fitch_lists_for_go_mapping_unique_MAPPED.txt"; + private static final boolean PERFORM_DC_REGAIN_PROTEINS_STATS = true; private static void checkWriteabilityForPairwiseComparisons( final PrintableDomainSimilarity.PRINT_OPTION domain_similarity_print_option, final String[][] input_file_properties, @@ -358,6 +360,7 @@ public class surfacing { * @param sum_of_all_domains_encountered * @param all_bin_domain_combinations_encountered * @param is_gains_analysis + * @param protein_length_stats_by_dc * @throws IOException */ private static void executeFitchGainsAnalysis( final File output_file, @@ -543,7 +546,8 @@ public class surfacing { return intrees; } - private static List inferSpeciesTrees( final File outfile, final List distances_list ) { + private static List inferSpeciesTrees( final File outfile, + final List distances_list ) { final NeighborJoining nj = NeighborJoining.createInstance(); final List phylogenies = nj.execute( distances_list ); final PhylogenyWriter w = new PhylogenyWriter(); @@ -1412,7 +1416,6 @@ public class surfacing { System.out.println( "Ignore combination with self: " + ignore_combination_with_same ); html_desc.append( "Ignore combination with self for domain combination similarity analyses:" + ignore_combination_with_same + "" + nl ); - ; System.out.println( "Consider directedness : " + ( dc_type != BinaryDomainCombination.DomainCombinationType.BASIC ) ); html_desc.append( "Consider directedness of binary domain combinations:" @@ -1759,6 +1762,13 @@ public class surfacing { catch ( final IOException e3 ) { e3.printStackTrace(); } + Map protein_length_stats_by_dc = null; + Map domain_number_stats_by_dc = null; + final Map domain_length_stats_by_domain = new HashMap(); + if ( PERFORM_DC_REGAIN_PROTEINS_STATS ) { + protein_length_stats_by_dc = new HashMap(); + domain_number_stats_by_dc = new HashMap(); + } // Main loop: for( int i = 0; i < number_of_genomes; ++i ) { System.out.println(); @@ -1909,6 +1919,13 @@ public class surfacing { dc_data_writer.write( SurfacingUtil.proteinToDomainCombinations( protein, count + "", "\t" ) .toString() ); ++count; + for( final Domain d : protein.getProteinDomains() ) { + final String d_str = d.getDomainId().toString(); + if ( !domain_length_stats_by_domain.containsKey( d_str ) ) { + domain_length_stats_by_domain.put( d_str, new BasicDescriptiveStatistics() ); + } + domain_length_stats_by_domain.get( d_str ).addValue( d.getLength() ); + } } } catch ( final IOException e ) { @@ -1927,7 +1944,9 @@ public class surfacing { ignore_combination_with_same, new BasicSpecies( input_file_properties[ i ][ 1 ] ), domain_id_to_go_ids_map, - dc_type ) ); + dc_type, + protein_length_stats_by_dc, + domain_number_stats_by_dc ) ); domain_lengths_table.addLengths( protein_list ); if ( gwcd_list.get( i ).getSize() > 0 ) { SurfacingUtil.writeDomainCombinationsCountsFile( input_file_properties, @@ -2255,7 +2274,10 @@ public class surfacing { output_binary_domain_combinationsfor_graph_analysis, all_bin_domain_combinations_gained_fitch, all_bin_domain_combinations_lost_fitch, - dc_type ); + dc_type, + protein_length_stats_by_dc, + domain_number_stats_by_dc, + domain_length_stats_by_domain ); // Listing of all domain combinations gained is only done if only one input tree is used. if ( ( domain_id_to_secondary_features_maps != null ) && ( domain_id_to_secondary_features_maps.length > 0 ) ) {