Learn R Programming

qtlnet (version 1.5.4)

parents.qtlnet: 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 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 cross object. May be numeric, logical or character.

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 max.parents in size. May be a subset

codes.only

Return only codes of parents if TRUE.

n.groups

Number of groups for parallel computation. Determined from group.size if missing.

group.size

Size of groups for parallel computation. See details.

object

Object of class parent.qtlnet.

Additional arguments ignored.

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.

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.

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

bic.qtlnet

Examples

Run this code
# NOT RUN {
## 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)
# }

Run the code above in your browser using DataLab