/** * Returns the distance matrix used to construct this guide tree. The scores have been normalized. * * @return the distance matrix used to construct this guide tree */ public double[][] getDistanceMatrix() { double[][] matrix = new double[distances.getSize()][distances.getSize()]; for (int i = 0; i < matrix.length; i++) { for (int j = i+1; j < matrix.length; j++) { matrix[i][j] = matrix[j][i] = distances.getValue(i, j); } } return matrix; }
/** * 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; }
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 BasicSymmetricalDistanceMatrix calcKimuraDistances() { final int s = _msa.getNumberOfSequences(); final BasicSymmetricalDistanceMatrix d = new BasicSymmetricalDistanceMatrix( s ); copyIdentifiers( s, d ); calcKimuraDistances( s, d ); return d; }
private void copyIdentifiers( final int s, final BasicSymmetricalDistanceMatrix d ) { for( int i = 0; i < s; i++ ) { d.setIdentifier( i, _msa.getIdentifier( i ) ); } }
@Override public final int getIndex( final String identifier ) { for( int i = 0; i < _identifiers.length; i++ ) { if ( getIdentifier( i ).equals( identifier ) ) { return i; } } throw new IllegalArgumentException( "identifier [" + identifier + "] not found in distance matrix" ); }
@Override public final StringBuffer toStringBuffer( final Format format ) { switch ( format ) { case PHYLIP: return toPhylip(); default: throw new IllegalArgumentException( "Unknown format:" + format ); } }
/** * 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; }
/** * Returns the distance matrix used to construct this guide tree. The scores have been normalized. * * @return the distance matrix used to construct this guide tree */ public double[][] getDistanceMatrix() { double[][] matrix = new double[distances.getSize()][distances.getSize()]; for (int i = 0; i < matrix.length; i++) { for (int j = i+1; j < matrix.length; j++) { matrix[i][j] = matrix[j][i] = distances.getValue(i, j); } } return matrix; }
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 BasicSymmetricalDistanceMatrix calcPoissonDistances() { final int s = _msa.getNumberOfSequences(); final BasicSymmetricalDistanceMatrix d = new BasicSymmetricalDistanceMatrix( s ); copyIdentifiers( s, d ); calcPoissonDistances( s, d ); return d; }
private final void initExternalNodes() { _external_nodes = new PhylogenyNode[ _n ]; String id; for( int i = 0; i < _n; ++i ) { _external_nodes[ i ] = new PhylogenyNode(); id = _d.getIdentifier( i ); if ( id != null ) { _external_nodes[ i ].setName( id ); } else { _external_nodes[ i ].setName( Integer.toString( i ) ); } _mappings[ i ] = i; } }
@Override public final String toString() { return toPhylip().toString(); }
/** * 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; }
private final void reset( final BasicSymmetricalDistanceMatrix distances ) { _n = distances.getSize(); _d = distances; _r = new float[ _n ]; _mappings = new int[ _n ]; _d_values = new float[ distances.getSize() ][ distances.getSize() ]; for( int i = 0; i < distances.getSize(); ++i ) { for( int j = 0; j < distances.getSize(); ++j ) { _d_values[ i ][ j ] = ( float ) distances.getValue( i, j ); } } initExternalNodes(); }
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++; } }
private BasicSymmetricalDistanceMatrix calcFractionalDissimilarities() { final int s = _msa.getNumberOfSequences(); final BasicSymmetricalDistanceMatrix d = new BasicSymmetricalDistanceMatrix( s ); copyIdentifiers( s, d ); calcFractionalDissimilarities( s, d ); return d; }
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 ) ); } } }