R: Haplotype Extraction and Frequencies

haplotype {pegas} | R Documentation

## Haplotype Extraction and Frequencies

### Description

`haplotype` extracts the haplotypes from a set of DNA sequences. The result can be plotted with the appropriate function.

### Usage

    haplotype(x, ...)
    ## S3 method for class 'DNAbin'
    haplotype(x, labels = NULL, strict = FALSE,
                      trailingGapsAsN = TRUE, ...)
    ## S3 method for class 'character'
    haplotype(x, labels = NULL, ...)
    ## S3 method for class 'numeric'
    haplotype(x, labels = NULL, ...)
    ## S3 method for class 'haplotype'
    plot(x, xlab = "Haplotype", ylab = "Number", ...)
    ## S3 method for class 'haplotype'
    print(x, ...)
    ## S3 method for class 'haplotype'
    summary(object, ...)
    ## S3 method for class 'haplotype'
    sort(x,
         decreasing = ifelse(what == "frequencies", TRUE, FALSE),
         what = "frequencies", ...)
    ## S3 method for class 'haplotype'
    x[...]

### Arguments

`x` | a set of DNA sequences (as an object of class `"DNAbin"`), or an object of class `"haplotype"`.
`object` | an object of class `"haplotype"`.
`labels` | a vector of character strings used as names for the rows of the returned object. By default, Roman numerals are given.
`strict` | a logical value; if `TRUE`, ambiguities and gaps in the sequences are ignored.
`trailingGapsAsN` | a logical value; if `TRUE` (the default), the leading and trailing alignment gaps are considered as unknown bases (i.e., N).
`xlab, ylab` | labels for the x- and x-axes.
`...` | further arguments passed to `barplot` (unused in `print` and `sort`).
`decreasing` | a logical value specifying in which order to sort the haplotypes; by default this depends on the value of `what`.
`what` | a character specifying on what feature the haplotypes should be sorted: this must be `"frequencies"` or `"labels"`, or an unambiguous abbreviation of these.

### Details

The way ambiguities in the sequences are taken into account is explained in a post to r-sig-phylo (see the examples below):

https://www.mail-archive.com/r-sig-phylo@r-project.org/msg05541.html

The `sort` method sorts the haplotypes in decreasing frequencies (the default) or in alphabetical order of their labels (if `what = "labels"`). Note that if these labels are Roman numerals (as assigned by `haplotype`), their alphabetical order may not be their numerical one (e.g., IX is alphabetically before VIII).

From pegas 0.7, `haplotype` extracts haplotypes taking into account base ambiguities.

### Value

`haplotype` returns an object of class `c("haplotype", "DNAbin")` which is an object of class `"DNAbin"` with two additional attributes: `"index"` identifying the index of each observation that share the same haplotype, and `"from"` giving the name of the original data.

`sort` returns an object of the same class respecting its attributes.

### Author(s)

Emmanuel Paradis

### See Also

`haploNet`, `haploFreq`, `subset.haplotype`, `DNAbin` for manipulation of DNA sequences in R.

The `haplotype` method for objects of class `"loci"` is documented separately: `haplotype.loci`.

### Examples

    ## generate some artificial data from 'woodmouse':
    data(woodmouse)
    x <- woodmouse[sample(15, size = 110, replace = TRUE), ]
    (h <- haplotype(x))
    ## the indices of the individuals belonging to the 1st haplotype:
    attr(h, "index")[[1]]
    plot(sort(h))
    ## get the frequencies in a named vector:
    setNames(lengths(attr(h, "index")), labels(h))

    ## data posted by Hirra Farooq on r-sig-phylo (see link above):
    cat(">[A]\nCCCGATTTTATATCAACATTTATTT------",
        ">[D]\nCCCGATTTT----------------------",
        ">[B]\nCCCGATTTTATATCAACATTTATTT------",
        ">[C]\nCCCGATTTTATATCACCATTTATTTTGATTT",
        file = "x.fas", sep = "\n")
    x <- read.dna("x.fas", "f")
    unlink("x.fas")

    ## show the sequences and the distances:
    alview(x)
    dist.dna(x, "N", p = TRUE)

    ## by default there are 3 haplotypes with a warning about ambiguity:
    haplotype(x)

    ## the same 3 haplotypes without warning:
    haplotype(x, strict = TRUE)

    ## if we remove the last sequence there is, by default, a single haplotype with a warning:
    haplotype(x[-4, ])

    ## to get two haplotypes separately as with the complete data:
    haplotype(x[-4, ], strict = TRUE)

    ## a simpler example:
    y <- as.DNAbin(matrix(c("A", "A", "A", "A", "R", "-"), 3))
    haplotype(y) # 1 haplotype
    haplotype(y, strict = TRUE) # 3 haplotypes
    haplotype(y, trailingGapsAsN = FALSE) # 2 haplotypes

[Package pegas version 0.13 Index]