Learn R Programming

qtlnet (version 1.2.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 class 'parents.qtlnet':
summary(object, \dots)
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
  • parentsComma-separated string of parents to potential child node.
  • n.childNumber 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
## 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