public final void setRow( final String s, final int row ) { final StringTokenizer tk = new StringTokenizer( s ); int i = 0; while ( tk.hasMoreElements() ) { setValue( i, row, new Double( tk.nextToken() ).doubleValue() ); i++; } }
public final void randomize( final long seed ) { final java.util.Random r = new java.util.Random( seed ); for( int j = 0; j < getSize(); ++j ) { for( int i = 0; i < j; ++i ) { setValue( i, j, r.nextDouble() ); } } }
private void calcKimuraDistances( final int s, final BasicSymmetricalDistanceMatrix d ) { for( int i = 1; i < s; i++ ) { for( int j = 0; j < i; j++ ) { d.setValue( i, j, calcKimuraDistance( i, j ) ); } } }
private void calcFractionalDissimilarities( final int s, final BasicSymmetricalDistanceMatrix d ) { for( int i = 1; i < s; i++ ) { for( int j = 0; j < i; j++ ) { d.setValue( i, j, calcFractionalDissimilarity( i, j ) ); } } }
private void calcPoissonDistances( final int s, final BasicSymmetricalDistanceMatrix d ) { for( int i = 1; i < s; i++ ) { for( int j = 0; j < i; j++ ) { d.setValue( i, j, calcPoissonDistance( i, j ) ); } } }
/** * Creates a guide tree for use during progressive multiple sequence alignment. * * @param sequences the {@link List} of {@link Sequence}s to align * @param scorers list of sequence pair scorers, one for each pair of sequences given */ public GuideTree(List<S> sequences, List<PairwiseSequenceScorer<S, C>> scorers) { this.sequences = Collections.unmodifiableList(sequences); this.scorers = Collections.unmodifiableList(scorers); distances = new BasicSymmetricalDistanceMatrix(sequences.size()); for (int i = 0, n = 0; i < sequences.size(); i++) { AccessionID id = sequences.get(i).getAccession(); String str = (id == null) ? Integer.toString(i + 1) : id.getID(); distances.setIdentifier(i, str); for (int j = i+1; j < sequences.size(); j++) { double dist = scorers.get(n++).getDistance(); distances.setValue(i, j, dist); } } BasicSymmetricalDistanceMatrix distclone = ForesterWrapper.cloneDM(distances); Phylogeny phylogeny = TreeConstructor.distanceTree(distclone, TreeConstructorType.NJ); newick = phylogeny.toString(); root = new Node(phylogeny.getRoot(), null); }
/** * Creates a guide tree for use during progressive multiple sequence alignment. * * @param sequences the {@link List} of {@link Sequence}s to align * @param scorers list of sequence pair scorers, one for each pair of sequences given */ public GuideTree(List<S> sequences, List<PairwiseSequenceScorer<S, C>> scorers) { this.sequences = Collections.unmodifiableList(sequences); this.scorers = Collections.unmodifiableList(scorers); distances = new BasicSymmetricalDistanceMatrix(sequences.size()); for (int i = 0, n = 0; i < sequences.size(); i++) { AccessionID id = sequences.get(i).getAccession(); String str = (id == null) ? Integer.toString(i + 1) : id.getID(); distances.setIdentifier(i, str); for (int j = i+1; j < sequences.size(); j++) { double dist = scorers.get(n++).getDistance(); distances.setValue(i, j, dist); } } BasicSymmetricalDistanceMatrix distclone = ForesterWrapper.cloneDM(distances); Phylogeny phylogeny = TreeConstructor.distanceTree(distclone, TreeConstructorType.NJ); newick = phylogeny.toString(); root = new Node(phylogeny.getRoot(), null); }
genome_simiarity_calculator.setAllowDomainsToBeIgnored( true ); genome_simiarity_calculator.setDomainIdsToIgnore( domain_ids_to_ignore ); shared_domains_based_distances.setValue( i, j, 1.0 - genome_simiarity_calculator .calculateSharedDomainsBasedGenomeSimilarityScore() ); shared_binary_combinations_based_distances.setValue( i, j, 1.0 - genome_simiarity_calculator .calculateSharedBinaryDomainCombinationBasedGenomeSimilarityScore() );
|| ( list_of_genome_wide_combinable_domains.get( j ).getSize() < 1 ) ) { domain_distance_scores_means .setValue( i, j, DomainArchitectureBasedGenomeSimilarityCalculator.MAX_SIMILARITY_SCORE ); shared_domains_based_distances .setValue( i, j, DomainArchitectureBasedGenomeSimilarityCalculator.MAX_SIMILARITY_SCORE ); shared_binary_combinations_based_distances .setValue( i, j, DomainArchitectureBasedGenomeSimilarityCalculator.MAX_SIMILARITY_SCORE ); continue; final double shared_binary_combinations_based_genome_distance = 1.0 - genome_similarity_calculator .calculateSharedBinaryDomainCombinationBasedGenomeSimilarityScore(); domain_distance_scores_means.setValue( i, j, dissimilarity_score_mean ); shared_domains_based_distances.setValue( i, j, shared_domains_based_genome_distance ); shared_binary_combinations_based_distances.setValue( i, j, shared_binary_combinations_based_genome_distance );
/** * Helper function to clone a forester symmetrical DistanceMatrix. * * @param distM * forester symmetrical DistanceMatrix * @return identical copy of the forester symmetrical DistanceMatrix */ public static BasicSymmetricalDistanceMatrix cloneDM( BasicSymmetricalDistanceMatrix distM) { int n = distM.getSize(); BasicSymmetricalDistanceMatrix cloneDM = new BasicSymmetricalDistanceMatrix(n); for (int i = 0; i < n; i++) { cloneDM.setIdentifier(i, distM.getIdentifier(i)); for (int j = i + 1; j < n; j++) { cloneDM.setValue(i, j, distM.getValue(i, j)); } } return cloneDM; }
/** * Helper function to clone a forester symmetrical DistanceMatrix. * * @param distM * forester symmetrical DistanceMatrix * @return identical copy of the forester symmetrical DistanceMatrix */ public static BasicSymmetricalDistanceMatrix cloneDM( BasicSymmetricalDistanceMatrix distM) { int n = distM.getSize(); BasicSymmetricalDistanceMatrix cloneDM = new BasicSymmetricalDistanceMatrix(n); for (int i = 0; i < n; i++) { cloneDM.setIdentifier(i, distM.getIdentifier(i)); for (int j = i + 1; j < n; j++) { cloneDM.setValue(i, j, distM.getValue(i, j)); } } return cloneDM; }
/** * Helper function to clone a forester symmetrical DistanceMatrix. * * @param distM * forester symmetrical DistanceMatrix * @return identical copy of the forester symmetrical DistanceMatrix */ public static BasicSymmetricalDistanceMatrix cloneDM( BasicSymmetricalDistanceMatrix distM) { int n = distM.getSize(); BasicSymmetricalDistanceMatrix cloneDM = new BasicSymmetricalDistanceMatrix(n); for (int i = 0; i < n; i++) { cloneDM.setIdentifier(i, distM.getIdentifier(i)); for (int j = i + 1; j < n; j++) { cloneDM.setValue(i, j, distM.getValue(i, j)); } } return cloneDM; }