parents.qtlnet {qtlnet} | R Documentation |
Determine and group node-parent combinations.
Description
Routines useful for examining the size of node-parent combinations.
Usage
parents.qtlnet(pheno.col, max.parents = 3, codes.only = FALSE)
## S3 method for class 'parents.qtlnet'
summary(object, ...)
size.qtlnet(pheno.col, max.parents = 3)
group.qtlnet(pheno.col, max.parents = 3, n.groups = NULL,
group.size = 50000, parents = parents.qtlnet(pheno.col, max.parents))
Arguments
pheno.col |
Phenotype identifiers from |
max.parents |
Maximum number of parents per node. This reduces the complexity of graphs and shortens run time. Probably best to consider values of 3-5. |
parents |
List containing all possible parents up to |
codes.only |
Return only codes of parents if |
n.groups |
Number of groups for parallel computation. Determined from
|
group.size |
Size of groups for parallel computation. See details. |
object |
Object of class |
... |
Additional arguments ignored. |
Details
The most expensive part of calculations is running
scanone
on each phenotype with parent phenotypes as
covariates. One strategy is to pre-compute the BIC contributions using a
cluster and save them for later use. The parents.qtlnet
routine
creates a list of all possible parent sets (up to max.parents
in
size). The size.qtlnet
determines the number of
scanone
calculations possible for a network with
nodes pheno.col
and maximum parent size max.parents
. The
group.qtlnet
groups the parent sets into roughly equal size
groups for parallel computations. See bic.qtlnet
for
further details.
Value
The size.qtlnet
returns the number of possible
scanone
computations needed for BIC scores.
The group.qtlnet
produces and index into the parents list
created by parents.qtlnet
. See details.
The parents.qtlnet
creates a list object with names being the
code
.
The summary
method for such an object is a data
frame with row.names being the code
, a binary code as decimal
for the parents of a phenotype node, excluding the phenotype. Value is
between 0 (no parents) and 2 ^ (length(pheno.col) - 1)
. The
columns are
parents |
Comma-separated string of parents to potential child node. |
n.child |
Number of possible child nodes to this parent set. |
Author(s)
Brian S. Yandell and Elias Chaibub Neto
References
Chaibub Neto E, Keller MP, Attie AD, Yandell BS (2010) Causal Graphical Models in Systems Genetics: a unified framework for joint inference of causal network and genetic architecture for correlated phenotypes. Ann Appl Statist 4: 320-339. http://dx.doi.org/10.1214/09-AOAS288
See Also
Examples
## Restrict to at most 3 parents per node.
pheno.col <- 1:6
max.parents <- 3
size.qtlnet(pheno.col, max.parents)
parents <- parents.qtlnet(pheno.col, max.parents)
summary(parents)
## Allow an arbitrary number (up to 12) of parents per node.
pheno.col <- 1:13
max.parents <- 12
size.qtlnet(pheno.col, max.parents)
## Make ~53 groups of ~1000, for a total of 53248 scanone runs.
parents <- parents.qtlnet(pheno.col, max.parents)
n.child <- summary(parents)$n.child
table(n.child)
groups <- group.qtlnet(parents = parents, group.size = 1000)
apply(groups, 1,
function(group, parents) sapply(parents[seq(group[1], group[2])], length),
parents)