Description Usage Arguments Details Value Author(s) Examples
This is the main function in NucDyn. It allows to compare the reads of two NGS experiments of nucleosome coverage.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | nucleosomeDynamics(setA, setB, maxLen = 170, equalSize = FALSE,
readSize = 140, maxDiff = 74, minDiff = 10, mc.cores = 1)
## S4 method for signature 'IRanges,IRanges'
nucleosomeDynamics(setA, setB, maxLen = 170,
equalSize = FALSE, readSize = 140, maxDiff = 74, minDiff = 10)
## S4 method for signature 'RangedData,RangedData'
nucleosomeDynamics(setA, setB,
maxLen = 170, equalSize = FALSE, readSize = 140, maxDiff = 74,
minDiff = 10, mc.cores = 1)
## S4 method for signature 'GRanges,GRanges'
nucleosomeDynamics(setA, setB, maxLen = 170,
equalSize = FALSE, readSize = 140, maxDiff = 74, minDiff = 10,
mc.cores = 1)
|
setA |
Reads of the first experiment in |
setB |
Reads of the second experiment in |
maxLen |
Reads longer than this number will be filtered out. |
equalSize |
If set to |
readSize |
Length to which all reads will be set in case |
maxDiff |
Maximum distance between the dyads of two reads that allows them to still be considered a "shift". |
minDiff |
Minimum distance between the dyads of two reads that allows them to still be considered a "shift". |
mc.cores |
If |
The aim of nucleosomeDynamics is to infer "movement" (with direction and magnitude) of the reads between two reference nucleosome maps. In contrast with a simple coverage difference, nucleosomeDynamics can tell how the reads change between two different experiments. This is useful to analyze regions where fine regulatory role of the nucleosomes is suspected to happen.
This method is based on the idea that reads in a reference state (ref1) should match those in another reference state (ref2) after applying a few shifts and/or indels. Both ref1 and ref2 should be experimental nucleosome maps obtained from two experimental conditions.
The function looks for a match to each read in ref1 with a read in ref2 to discard those that correspond to unchanged nucleosomes between the two experimental conditions (equal start and/or end). After all possible matches have been found, those reads are discarded and nucleosomeDynamics looks then for matches in the remaining reads, corresponding to relevant changes (shifts), using a dynamic programming algorithm that minimizes distances between matched reads. Then, to account for the possibility that one sample has a higher coverage than the other, randomly picked reads are removed from the dataset with more reads to obtain sets of the same size. After this, all the remaining reads are considered indels.
The different types of matches, in the order in which they are tried are:
Coinciding: Reads that start and end in the exact same position in both sets.
Same start: Reads that start in the same position in both sets but end at a different one.
Same end: Reads that end in the same position in both sets but start at a different one.
Contained: Reads from one set that are contained or contain reads from the other set. For a read to be contained by another, it has to start at a more upstream position but end in a more downstream position than the second read.
Shifts: Reads whose dyads are separated by less than a maximum distance
of maxDist
.
Indels: Reads present in only one experiment.
If equalSize=TRUE
, all reads are forced to the same size, and the match
types "Same start", "Same end" and "Contained" do not apply.
In an attempt to find the optimum pairing for the shifts, we use dynamic
programming approach. It is done in such a way that the score is inversely
proportional to the dyad distance (to favor shortest possible distance), but
with a very high gap penalty (to favor more pairs at longer distance rather
than less closer pairs) and a penalty of -Inf
for distances higher than
maxDist
so that those don't happen at all.
An object of class NucDyn.
Ricard Illa, Diana Buitrago diana.buitrago@irbbarcelona.org
1 2 3 | data(readsG2_chrII)
data(readsM_chrII)
dyn <- nucleosomeDynamics(setA=readsG2_chrII, setB=readsM_chrII)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.