R/qtlnet package (pre-publication site) http://www.stat.wisc.edu/~yandell/sysgen/qtlnet Code by Elias Chaibub Neto Package by Brian S. Yandell ========================================================================= 8-9 June 2010 qtlnet_0.8.4 1. Fixed covariates in loci.R. 2. Fixed some manual page entries. 3. Added merge.qtl option to loci.qtlnet to merge QTL on same chromosome for better plots. 4. Fixed bug in parallel.qtlnet(3): needs to use max.parents. 5. Modified names of RESULT files to be unique for each process. ========================================================================= 2 June 2010 qtlnet_0.8.3 1. Now there are Phase1.R through Phase5.R. Refined parallel.qtlnet for parallel execution. ========================================================================= 1 June 2010 qtlnet_0.8.2 1. Renames Steps to Phases for parallel operation. Added qtlnet.phase[1-4] routines. Added Phase0.R file here to pull out explicit loading of libraries. 2. Fixed bugs in use of addcov and intcov. ========================================================================= 28 May 2010 qtlnet_0.8.1 1. Main improvement is expansion of the parallel example. It is now possible to parallelize the BIC score computation (uses R/qtl scanone) and to divide MCMC runs into multiple starts. The example is better developed in help(bic.qtlnet) and is available here as parallel.R. 2. The parallel.R is a rough schema. Actual steps have been broken out in Step[1-4].R. These will soon be prototyped on Condor, and may need some further refinement. ========================================================================= 23 May 2010 qtlnet_0.7.1 1. The routine bic.qtlnet can be used to precomputed needed BIC scores. The example shows how the job can be divided up into many smaller jobs, which can then be distributed across a cluster of machines. The BIC score calculations each involve a call to R/qtl's scanone, with several thousand calls needed. This is the most expensive part of R/qtlnet. 2. The precomputed BIC scores can be joined (using bic.join) into a matrix called saved.scores that can be input to mcmc.qtlnet for the Markov chain Monte Carlo sampling across possible directed graphs, or causal networks. To our knowledge, this part of the algorithm cannot be parallelized (except by using multiple random starts and short runs). 3. Various modest improvemets have been made in the rest of the algorithm. Missing data should work fine. I made changes in the forbiddent.additions and check.reversions routines to slightly improve the proposal calcs. The common code, which is the most used code in the MCMC algorithm after the R/qtl scanone, is pulled out as its own routine, check.downstream. 4. A write.qtlnet routine now prints out simple text file for use with Cytoscape or other plot routines. I still think igraph is a cool way to go, but improvements are needed with Cytoscape (and probably igraph) to make it really effective. 5. Additional economies might be achieved by redesigning proposals to sample pairs of nodes, rather than sample a node, a move, and then a paired node as is done now. However, it may not be worth the programming time to do this. [Note that nbhd.size would have to be examined carefully as well. This is all more a note to BSY and ECN.] ========================================================================= 5 May 2010 qtlnet_0.5.2 1. The new "Rgraphviz.qtlnet" that uses the igraph object created by "igraph.qtlnet". "Rgraphviz.qtlnet" requires the Rgraphviz package, but I did not put Rgraphviz in the DESCRIPTION file for the qtlnet package. The Rgraphviz package requires the external "graphviz" routine. Using the igraph object avoids any need for a particular version of "graphviz", and does not require "graphviz-devel" to be available at all. [If the latter sentences don't mean anything to you, fine.] 2. The igraph plots continue to work as before. But please note two additional changes: 2a. I changed the names of "graph.qtlnet" to "igraph.qtlnet". The name "graph.qtlnet" still works for this version, but I will eventually remove it. 2b. The option for "chr.pos" in "loci.qtlnet" now defaults to TRUE, giving you "chr9@8.7" type QTL listing rather than the R/qtl internal names. This carries forward to the "loci.list" argument to "igraph.qtlnet" if it is missing.