- counter += step;
- }
- }
-
- Phylogeny pi( final String matrix ) {
- final Phylogeny master_phy = inferNJphylogeny( PWD_DISTANCE_METHOD.KIMURA_DISTANCE, _msa, true, matrix );
- final int seed = 15;
- final int n = 100;
- final ResampleableMsa resampleable_msa = new ResampleableMsa( ( BasicMsa ) _msa );
- final int[][] resampled_column_positions = BootstrapResampler.createResampledColumnPositions( _msa.getLength(),
- n,
- seed );
- final Phylogeny[] eval_phys = new Phylogeny[ n ];
- for( int i = 0; i < n; ++i ) {
- resampleable_msa.resample( resampled_column_positions[ i ] );
- eval_phys[ i ] = inferNJphylogeny( PWD_DISTANCE_METHOD.KIMURA_DISTANCE, resampleable_msa, false, null );
- }
- ConfidenceAssessor.evaluate( "bootstrap", eval_phys, master_phy, true, 1 );
- PhylogenyMethods.extractFastaInformation( master_phy );
- return master_phy;
- }
-
- private Phylogeny inferNJphylogeny( final PWD_DISTANCE_METHOD pwd_distance_method,
- final Msa msa,
- final boolean write_matrix,
- final String matrix_name ) {
- BasicSymmetricalDistanceMatrix m = null;
- switch ( pwd_distance_method ) {
- case KIMURA_DISTANCE:
- m = PairwiseDistanceCalculator.calcKimuraDistances( msa );
- break;
- case POISSON_DISTANCE:
- m = PairwiseDistanceCalculator.calcPoissonDistances( msa );
- break;
- case FRACTIONAL_DISSIMILARITY:
- m = PairwiseDistanceCalculator.calcFractionalDissimilarities( msa );
- break;
- default:
- throw new IllegalArgumentException( "invalid pwd method" );
- }
- if ( write_matrix ) {
- try {
- m.write( ForesterUtil.createBufferedWriter( matrix_name ) );