Révision 5badc2fd src/R/nucleominer.R
b/src/R/nucleominer.R | ||
---|---|---|
1 |
# get_content = function(# Get content from cached |
|
2 |
# ### Acces to the cached content of a file via the global variable NM_CACHE. Load content in NM_CACHE if needed. |
|
3 |
# obj, ##<< The object that we want its content. |
|
4 |
# ... ##<< Parameters that will be passed to my_read |
|
5 |
# ) { |
|
6 |
# UseMethod("get_content", obj) |
|
7 |
# ### Returns the cached content of the current object. |
|
8 |
# } |
|
9 |
# |
|
10 |
# get_content.default = structure( function(# Get content from cached |
|
11 |
# ### Acces to the cached content of a file via the global variable NM_CACHE. Load content in NM_CACHE if needed. |
|
12 |
# obj, ##<< The object that we want its content. |
|
13 |
# ... ##<< Parameters that will be passed to my_read |
|
14 |
# ) { |
|
15 |
# if (inherits(try(NM_CACHE,TRUE), "try-error") || is.null(NM_CACHE)) { |
|
16 |
# NM_CACHE <<- list() |
|
17 |
# } |
|
18 |
# if (is.null(NM_CACHE[[obj$filename]])) { |
|
19 |
# print(paste("Loading file ",obj$filename, sep="")) |
|
20 |
# tmp_content = my_read(obj, ...) |
|
21 |
# print("affect it...") |
|
22 |
# NM_CACHE[[obj$filename]] <<- tmp_content |
|
23 |
# print("done.") |
|
24 |
# } |
|
25 |
# return(NM_CACHE[[obj$filename]]) |
|
26 |
# ### Returns the cached content of the current object. |
|
27 |
# }, ex=function(){ |
|
28 |
# # Create a dataframe |
|
29 |
# df = NULL |
|
30 |
# df = dfadd(df, list(key1 = "value1", key2 = "value2")) |
|
31 |
# df = dfadd(df, list(key1 = "value1'", key2 = "value3'")) |
|
32 |
# # Dump it into tmp file |
|
33 |
# write.table(df, file="/tmp/tmp.dump.table.tmp") |
|
34 |
# # Load it into cache using feature. |
|
35 |
# cached_content_object = list(filename="/tmp/tmp.dump.table.tmp") |
|
36 |
# class(cached_content_object) = "table" |
|
37 |
# # First time it will be load into cache |
|
38 |
# print(get_content(cached_content_object)) |
|
39 |
# # Second time not |
|
40 |
# print(get_content(cached_content_object)) |
|
41 |
# |
|
42 |
# }) |
|
43 |
# |
|
44 |
# my_read = function( |
|
45 |
# ### Abstract my_read function. |
|
46 |
# obj, ...) { |
|
47 |
# UseMethod("my_read", obj) |
|
48 |
# } |
|
49 |
# |
|
50 |
# my_read.default = function( |
|
51 |
# ### Default my_read function. |
|
52 |
# obj, ...){ |
|
53 |
# stop(paste("ERROR, my_read is not defined for any Objects (file ", obj$filename," )", sep="")) |
|
54 |
# } |
|
55 |
# |
|
56 |
# my_read.fasta = function( |
|
57 |
# ### my_read function for fasta files. |
|
58 |
# obj, ...){ |
|
59 |
# # require(seqinr) |
|
60 |
# return(read.fasta(obj$filename, ...)) |
|
61 |
# } |
|
62 |
# |
|
63 |
# my_read.table = function( |
|
64 |
# ### my_read function for table files. |
|
65 |
# obj, ...){ |
|
66 |
# if (rev(unlist(strsplit(obj$filename, ".", fixed=TRUE)))[1] == "gz") { |
|
67 |
# return(read.table(file=gzfile(obj$filename), ...)) |
|
68 |
# } else { |
|
69 |
# return(read.table(file=obj$filename, ...)) |
|
70 |
# } |
|
71 |
# } |
|
72 |
# |
|
73 |
# my_read.cvs = function( |
|
74 |
# ### my_read function for cvs files. |
|
75 |
# obj, ...){ |
|
76 |
# return(read.csv(file=obj$filename, ...)) |
|
77 |
# } |
|
78 |
|
|
79 |
|
|
80 |
|
|
81 |
|
|
82 |
|
|
83 |
|
|
84 |
|
|
85 |
|
|
86 |
|
|
87 | 1 |
FDR = structure(function# False Discovery Rate |
88 | 2 |
### From a vector x of independent p-values, extract the cutoff corresponding to the specified FDR. See Benjamini & Hochberg 1995 paper |
89 | 3 |
##author<< Gael Yvert, |
... | ... | |
273 | 187 |
|
274 | 188 |
|
275 | 189 |
aggregate_intra_strain_nucs = structure(function(# Aggregate replicated sample's nucleosomes. |
276 |
### This function aggregates nucleosomes from replicated samples. It uses TemplateFilter ouput of each sample as replicate. Each sample owns a set of nucleosomes computed using TemplateFilter and ordered by the position of their center (dyad). A chain of nucleosomes is builts across all replicates. Adjacent nucleosomes of the chain are compared two by two. Comparison is based on a log likelihood ratio (LLR1). depending on the LLR1 value nucleosomes are merged (low LLR) or separated (high LLR). Finally the function returns a list of clusters and all computed llr_scores. Each cluster ows an attribute wp for “well positioned”. This attribute is set to TRUE if the cluster is composed of exactly one nucleosome of each sample.
|
|
190 |
### This function aggregates nucleosomes from replicated samples. It uses TemplateFilter ouput of each sample as replicate. Each sample owns a set of nucleosomes computed using TemplateFilter and ordered by the position of their center (dyad). A chain of nucleosomes is builts across all replicates. Adjacent nucleosomes of the chain are compared two by two. Comparison is based on a log likelihood ratio (LLR1). depending on the LLR1 value nucleosomes are merged (low LLR) or separated (high LLR). Finally the function returns a list of clusters and all computed llr_scores. Each cluster ows an attribute wp for "well positioned". This attribute is set to TRUE if the cluster is composed of exactly one nucleosome of each sample.
|
|
277 | 191 |
samples, ##<< A list of samples. Each sample is a list like \emph{sample = list(id=..., marker=..., strain=..., roi=..., inputs=..., outputs=...)} with \emph{roi = list(name=..., begin=..., end=..., chr=..., genome=...)}. |
278 | 192 |
llr_thres=20, ##<< Log likelihood ratio threshold to decide between merging and separating |
279 | 193 |
coord_max=20000000 ##<< A too big value to be a coord for a nucleosome lower bound. |
... | ... | |
1085 | 999 |
# print(snep_design) |
1086 | 1000 |
thres = FDR(reads$pvalsGLM, FDR) |
1087 | 1001 |
reads$snep_index = reads$pvalsGLM < thres |
1088 |
print(paste(sum(reads$snep_index), " SNEPs found for ", length(reads[,1])," nucs and ", fdr*100,"% of FDR.", sep = ""))
|
|
1002 |
print(paste(sum(reads$snep_index), " SNEPs found for ", length(reads[,1])," nucs and ", FDR*100,"% of FDR.", sep = ""))
|
|
1089 | 1003 |
return(reads) |
1090 | 1004 |
}, ex=function(){ |
1091 | 1005 |
marker = "H3K4me1" |
... | ... | |
1946 | 1860 |
if (length(nucs$center) > 0) { |
1947 | 1861 |
col = 1 |
1948 | 1862 |
for (i in 1:length(nucs$center)) { |
1949 |
foo<<-nucs |
|
1950 | 1863 |
if (change_col) { |
1951 | 1864 |
col = col + 1 |
1952 | 1865 |
} else { |
Formats disponibles : Unified diff