/fingerprint/R/bitspec.R
http://github.com/rajarshi/cdkr · R · 22 lines · 20 code · 2 blank · 0 comment · 10 complexity · 0c94477e5334b69df55f95f0e5b86afc MD5 · raw file
- bit.spectrum <- function(fplist) {
- if (class(fplist) != 'list') stop("Must provide a list of fingerprint objects")
- if (any(unlist(lapply(fplist, class)) != 'fingerprint'))
- stop("Must provide a list of fingerprint objects");
- nbit <- length(fplist[[1]])
- spec <- numeric(nbit)
- for (i in 1:length(fplist)) {
- bits <- fplist[[i]]@bits
- spec[bits] <- spec[bits]+1
- }
- spec / length(fplist)
- }
- shannon <- function(fplist) {
- if (class(fplist) != 'list') stop("Must provide a list of fingerprint objects")
- if (any(unlist(lapply(fplist, class)) != 'fingerprint'))
- stop("Must provide a list of fingerprint objects");
- bs <- bit.spectrum(fplist)
- bs <- bs[ bs != 0 ]
- -1 * sum( bs * log2(bs) )
- }