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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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)