Mercurial > repos > stevecassidy > wrassp
annotate get_fm_at_midpoint.R @ 1:dbcf9bc275e3 draft
planemo upload commit 063e049d569aeb45e1008cbf044f2dad850eca3d-dirty
| author | stevecassidy |
|---|---|
| date | Wed, 07 Dec 2016 19:10:51 -0500 |
| parents | 6d6dc275b107 |
| children |
| rev | line source |
|---|---|
|
0
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
1 |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
2 library(wrassp) |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
3 |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
4 get_fm_at_midpoint <- function(segments, wavmap) { |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
5 midpoint_fm <- function(row) { |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
6 start = as.numeric(row[1]) |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
7 end = as.numeric(row[2]) |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
8 identifier = row[5] |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
9 fn = wavmap[identifier] |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
10 if (is.na(fn)) { |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
11 cat("Can't find wav file for ", identifier, "\n") |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
12 return(c(0,0,0,0)) |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
13 } else { |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
14 res = forest(fn, beginTime=start, endTime=end, toFile=FALSE) |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
15 return(res$fm[nrow(res$fm)/2,]) |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
16 } |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
17 } |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
18 |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
19 print(wavmap) |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
20 |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
21 fm = t(apply(segments, 1, midpoint_fm)) |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
22 fm = data.frame(fm=fm, labels=segments$label, identifier=segments$identifier) |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
23 |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
24 return(fm) |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
25 } |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
26 |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
27 args = commandArgs(TRUE) |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
28 # args will be like |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
29 # qresult.dat outfile.dat --wavfile a,b,c --identifier A,B,C |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
30 # need to split out wavfile and identifier args on , |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
31 |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
32 if (length(args) != 6) { |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
33 print("Wrong number of arguments!") |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
34 exit(1) |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
35 } |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
36 |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
37 segmentfile = args[1] |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
38 wavfiles = args[4] |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
39 identifiers = args[6] |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
40 outfile = args[2] |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
41 |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
42 # split on comma |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
43 wavfiles = strsplit(wavfiles, ",")[[1]] |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
44 identifiers = strsplit(identifiers, ",")[[1]] |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
45 |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
46 if( length(wavfiles) != length(identifiers)) { |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
47 print("Lengths of wavfiles and identifiers don't match.") |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
48 exit(1) |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
49 } |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
50 cat("\nWAVMAP\n") |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
51 wavmap = NULL |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
52 for(i in 1:length(wavfiles)) { |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
53 wavmap[identifiers[i]] = wavfiles[i] |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
54 } |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
55 |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
56 segments = read.table(segmentfile, header=TRUE) |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
57 |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
58 result = get_fm_at_midpoint(segments, wavmap) |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
59 |
|
6d6dc275b107
planemo upload commit 0fca33c3b7285bd31f6c7380393d08bbdad4e4d6
stevecassidy
parents:
diff
changeset
|
60 write.table(result, file=outfile, sep="\t", quote=F, row.names=F) |
