rbbt-util 5.21.45 → 5.21.46

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c8f05cad1756d79df016e8f652f185a490b1683d
4
- data.tar.gz: c5548662b8fb8f838dd581ef6fcca2c4ca2ecba7
3
+ metadata.gz: 1842f04355fb68456343e2efd33e3f91a392b087
4
+ data.tar.gz: f900fd25199c8ea1e115288ae19419a076a7b295
5
5
  SHA512:
6
- metadata.gz: 5dbef4428dba76968b44ee76272cc0ea5e38bb7b0d7ab99ca020d5a610af70236dbf8fa51e762164d6e92a90ae3b0e60296673432c4a8de59c7ad5076c81bfd7
7
- data.tar.gz: 0427bf495cddf0e82bc2c096d4df52aba8d380a9a76941966cc8800d2de2c08cc5e35ae8653338d3b113bd9ec3405c30301b2be4f32e950b7f303c41a1fdfa03
6
+ metadata.gz: c5acb1a420921a7929890ca011e7e40dc8bea24dde6f8d722bc97306050e70f1220c6688cd00a7c2b5ecc1ce351a8fed55458e8e62d280be9bc0de7fa49a3601
7
+ data.tar.gz: 606c4d21d9c52b3f466cc8f0c6dfef007fd755dffe051d99dba04dc296e8479e99b1a241cf03adaede913b78bee3732109ecc81cbb04edfcf5a0de72eebf2104
@@ -427,7 +427,7 @@ module TSV
427
427
  store.add *value
428
428
  when IO
429
429
  return false if value.nil?
430
- value.strip!
430
+ value.chomp!
431
431
  store.puts value
432
432
  else
433
433
  store << value
@@ -1,5 +1,6 @@
1
1
  module TSV
2
2
 
3
+
3
4
  class CleanSerializer
4
5
  def self.dump(o); o end
5
6
  def self.load(o); o end
@@ -15,14 +16,26 @@ module TSV
15
16
  def self.load(str); str.unpack("d").first; end
16
17
  end
17
18
 
18
- class IntegerArraySerializer
19
+ class StrictIntegerArraySerializer
19
20
  def self.dump(a); a.pack("l*"); end
20
- def self.load(str); str.unpack("l*"); end
21
+ def self.load(str); a = str.unpack("l*"); end
21
22
  end
22
23
 
23
- class FloatArraySerializer
24
+ class StrictFloatArraySerializer
24
25
  def self.dump(a); a.pack("d*"); end
25
- def self.load(str); str.unpack("d*"); end
26
+ def self.load(str); a = str.unpack("d*"); end
27
+ end
28
+
29
+ class IntegerArraySerializer
30
+ NIL_INT = -999
31
+ def self.dump(a); a.collect{|v| v || NIL_INT}.pack("l*"); end
32
+ def self.load(str); a = str.unpack("l*"); a.collect{|v| v == NIL_INT ? nil : v}; end
33
+ end
34
+
35
+ class FloatArraySerializer
36
+ NIL_FLOAT = -999.999
37
+ def self.dump(a); a.collect{|v| v || NIL_FLOAT}.pack("d*"); end
38
+ def self.load(str); a = str.unpack("d*"); a.collect{|v| v == NIL_FLOAT ? nil : v}; end
26
39
  end
27
40
 
28
41
  class StringSerializer
@@ -78,6 +91,8 @@ module TSV
78
91
  :float => FloatSerializer,
79
92
  :integer_array => IntegerArraySerializer,
80
93
  :float_array => FloatArraySerializer,
94
+ :strict_integer_array => StrictIntegerArraySerializer,
95
+ :strict_float_array => StrictFloatArraySerializer,
81
96
  :marshal => Marshal,
82
97
  :single => StringSerializer,
83
98
  :string => StringSerializer,
data/share/Rlib/util.R CHANGED
@@ -513,3 +513,27 @@ rbbt.ranks <- function(x){
513
513
  rbbt.default_code <- function(organism){
514
514
  return(organism + "/feb2014")
515
515
  }
516
+
517
+ # Adapted from
518
+ # http://stackoverflow.com/questions/27418461/calculate-the-modes-in-a-multimodal-distribution-in-r
519
+ # by http://stackoverflow.com/users/6388753/ferroao
520
+ rbbt.get.modes <- function(x,bw = NULL,spar = NULL) {
521
+ if (is.null(bw)) bw = bw.nrd0(x);
522
+ if (is.null(spar)) spar = 0.1;
523
+
524
+ den <- density(x, kernel=c("gaussian"),bw=bw)
525
+ den.s <- smooth.spline(den$x, den$y, all.knots=TRUE, spar=spar)
526
+ s.1 <- predict(den.s, den.s$x, deriv=1)
527
+ s.0 <- predict(den.s, den.s$x, deriv=0)
528
+ den.sign <- sign(s.1$y)
529
+ a<-c(1,1+which(diff(den.sign)!=0))
530
+ b<-rle(den.sign)$values
531
+ df<-data.frame(a,b)
532
+ df = df[which(df$b %in% -1),]
533
+ modes<-s.1$x[df$a]
534
+ density<-s.0$y[df$a]
535
+ df2<-data.frame(modes,density)
536
+ df2<-df2[with(df2, order(-density)), ] # ordered by density
537
+ df2
538
+ }
539
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbbt-util
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.21.45
4
+ version: 5.21.46
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Vazquez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-18 00:00:00.000000000 Z
11
+ date: 2016-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake