1counter =
2function(max = 10)
3{
4  counts = numeric()
5  numRecords = 0
6
7  read = function(txt) {
8
9     id = gsub("^>(.*) .*", "\\1", txt)
10
11     vals = table(id)
12
13     for(id in names(vals))
14       counts[id] <<- ifelse(id %in% names(counts), counts[id], 0) + vals[id]
15
16     numRecords <<- numRecords + 1
17
18     if(numRecords >= max) {
19       msg = list(message = "Reached maximum count")
20       class(msg) = c("CountException", "error", "condition")
21       stop(msg)
22     }
23
24#     sum(nchar(txt))
25  }
26
27  list(read = read, counts = function() counts)
28}
29
30theCount = counter()
31f = chunk2LineReader(theCount$read)
32
33x = postForm("http://www.wormbase.org/db/searches/advanced/dumper",
34         species = "elegans",
35         list = "AC3.8  M7  X  IV  III:1000..4000",
36         feature = "BLASTX Hits",
37         DNA = "feature coordinates only",
38         flank5 = "0",
39         flank3 = "0",
40         relative = "Chromosome",
41         orientation = "Relative to feature",
42         dump  = "Plain TEXT",
43         DUMP = "DUMP",
44         .cgifields = c("feature", "orientation", "dump", "relative", "DNA"),
45         .opts = list(writefunction = f$read))
46
47nchar(x)
48
49
50
51
52
53#         DNA = 'feature and flanking sequences',
54#         DUMP = 'DUMP',
55         #species = 'elegans',
56
57x = postForm('http://www.wormbase.org/db/searches/advanced/dumper',
58         species="briggsae",
59         list="AC3.8 M7 X IV III:1000..4000",
60         flank3="0",
61         flank5="0",
62         feature="Gene Models",
63         dump = "Plain TEXT",
64         orientation = "Relative to feature",
65         relative = "Chromsome",
66         DNA ="flanking sequences only",
67         .cgifields = paste(c("feature", "orientation", "DNA", "dump", "relative"), collapse=", "))
68
69print(x)
70