==============================================================================
=                                                                            =
=                       SPRINT BETA 0.2.0 RELEASE NOTES                      =
=                                                                            =
==============================================================================

Latest release SPRINT Beta 0.2.0 - 22.06.2010
Previous release SPRINT Beta 0.1.0 - 15.01.2010


-------
Content
-------

	1. Scope
	2. What's new in SPRINT Beta 0.2.0


--------
1. Scope
--------

The main change in SPRINT beta 0.2.0 is the addition of a permutation test 
function to the SPRINT library of parallelized statistical R functions. It
parallelizes the mt.maxT function found in the multtest R package 
(http://cran.r-project.org/web/packages/multtest/index.html). 
Also changes to the implementation of the SPRINT pcor() function allows for 
the distance matrix to be returned as the output of pcor() instead of the 
correlation coefficient matrix. 
Finaly, SPRINT Beta 0.2.0 has simplified installation process and a reduced 
set of requirements. 


----------------------------------
2. What's new in SPRINT Beta 0.2.0
----------------------------------

1. A new permutation test function, pmaxT(), has been added to the SPRINT 
   Library. It parallelizes the mt.maxT function found in the multtest R 
   package (http://cran.r-project.org/web/packages/multtest/index.html).
   
   The interface and parameters to the parallel pmaxt() are identical to those 
   for the sequential mt.maxt():

    mt.maxT(X, classlabel, test = "t", side = "abs", B = 10000, 
            na = .mt.naNUM, fixed.seed.sampling = "y", nonpara = "n")
    
    and

	pmaxT(X, classlabel, test = "t", side = "abs", B = 10000, 
	      na = .mt.naNUM, fixed.seed.sampling = "y", nonpara = "n") 

    where:
		- 'X' is the input data array,
		- 'classlabel' is the class labels of the columns of the input 
		  dataset,
		- 'test' is the statistical method used for testing the null 
		  hypothesis. The following six methods are supported:
	  		. t: Tests based on a two-sample Welch t-statistics 
	  		     (unequal variances)
		 	. t.equalvar: tests based on a two-sample t-statistics with equal 
		                  variance for the two samples.
			. Wilcoxon: Tests based on standardized rank sum Wilcoxon 
						statistics.
			. F: Tests based on F-statistics.
			. Pair-T: Tests based on paired t-statistics.
			. Block-F: Tests based on F-statistics which adjust for block 
		    	       differences.
		- 'side' is the type of rejection region. The following values are 
	  	  available:
	  		. "abs" for absolute difference
	  		. "upper" for the maximum difference
	  		. "lower" for the minimum difference
		- 'B' is the number of permutations. If set to "0" then the complete 
		   permutations of the data will be computed. 
		- 'na' is the representation used for missing values. Missing values 
		  are excluded from all computations.    
		- 'fixed.seed.sampling' can either be: 
			. "y" to compute the permutations on the fly
			. "n" to save all permutations in memory prior to computations
		- 'nonpara' can either be:
	    	. "y" for non-parametric test statistics
	    	. "n" otherwise.
		                        
2. The distance matrix can now be returned as an output from the pcor() 
   function. The interface to pcor has changed from:

		pcor(data, caching_ = "mmeachflush", filename_ = NULL)
    to:
		pcor(data, distance = FALSE, caching_ = "mmeachflush", 
		     filename_ = NULL)
        
	where:
		- 'data' is the input matrix data,
        - 'distance' is a boolean indicating whether the output is to be a 
          distance matrix rather than the correlation coefficient matrix,
		- 'caching_' caching scheme for the backend, currently mmnoflush or
	      mmeachflush (flush mmpages at each swap) if no name is specified
          the default value is "mmeachflush",
	    - 'filename' is a string and is optional. It specifies the name of
	      a file where the results will be saved. By default, the results are
	      saved to a temporary file that is delete after exiting from SPRINT.

	Examples of valid calls to pcor to replace cor_result <- cor(t(inData)):
		- ff_obj <- pcor(t(inData))
		- ff_obj <- pcor(t(inData), filename_="output.dat")
        - ff_obj <- pcor(t(inData), distance=TRUE, filename_="output.dat")
		- ff_obj <- pcor(data, caching_="mmeachflush", filename_="output.dat")

3.  The output from ptest() is now more specific and returns the 
    identification number of each node in the cluster.

4.  The SPRINT installation has been streamlined. The R package ff is no 
    longer a requirement. The R interface of pcor() has been enhanced in order
    to load the ff package automatically.
    
5. 	The core architecture was changed. Worker processes are now launched as R 
    scripts and they also support calls to R commands.

6.  The following bugs were fixed:
	* SPRINT will not crash if pterminate() is called more than once.
    * SPRINT will not freeze if called only by the master process and the 
      workers were not launched. 
    * SPRINT will not crash if MPI failed to initialize. 
    * pcor will not crash due to insufficient memory allocation.


==============================================================================
SPRINT Team

email: sprint@ed.ac.uk
http://www.r-sprint.org

Copyright  2010 The University of Edinburgh.
==============================================================================


