bio-samtools 0.4.1 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. data/VERSION +1 -1
  2. data/bio-samtools.gemspec +60 -6
  3. data/doc/Bio.html +171 -0
  4. data/doc/Bio/DB.html +163 -0
  5. data/doc/Bio/DB/Alignment.html +780 -0
  6. data/doc/Bio/DB/SAM.html +1241 -0
  7. data/doc/Bio/DB/SAM/Library.html +217 -0
  8. data/doc/Bio/DB/SAM/Tools.html +331 -0
  9. data/doc/Bio/DB/SAM/Tools/Bam1CoreT.html +159 -0
  10. data/doc/Bio/DB/SAM/Tools/Bam1T.html +220 -0
  11. data/doc/Bio/DB/SAM/Tools/BamHeaderT.html +249 -0
  12. data/doc/Bio/DB/SAM/Tools/BamPileup1T.html +159 -0
  13. data/doc/Bio/DB/SAM/Tools/SamfileT.html +171 -0
  14. data/doc/Bio/DB/SAM/Tools/SamfileTX.html +159 -0
  15. data/doc/Bio/DB/SAMException.html +205 -0
  16. data/doc/Bio/DB/Tag.html +254 -0
  17. data/doc/LICENSE_txt.html +881 -0
  18. data/doc/LibC.html +153 -0
  19. data/doc/Pileup.html +571 -0
  20. data/doc/Vcf.html +473 -0
  21. data/doc/created.rid +10 -1
  22. data/doc/images/add.png +0 -0
  23. data/doc/images/brick.png +0 -0
  24. data/doc/images/brick_link.png +0 -0
  25. data/doc/images/bug.png +0 -0
  26. data/doc/images/bullet_black.png +0 -0
  27. data/doc/images/bullet_toggle_minus.png +0 -0
  28. data/doc/images/bullet_toggle_plus.png +0 -0
  29. data/doc/images/date.png +0 -0
  30. data/doc/images/delete.png +0 -0
  31. data/doc/images/find.png +0 -0
  32. data/doc/images/loadingAnimation.gif +0 -0
  33. data/doc/images/macFFBgHack.png +0 -0
  34. data/doc/images/package.png +0 -0
  35. data/doc/images/page_green.png +0 -0
  36. data/doc/images/page_white_text.png +0 -0
  37. data/doc/images/page_white_width.png +0 -0
  38. data/doc/images/plugin.png +0 -0
  39. data/doc/images/ruby.png +0 -0
  40. data/doc/images/tag_blue.png +0 -0
  41. data/doc/images/tag_green.png +0 -0
  42. data/doc/images/transparent.png +0 -0
  43. data/doc/images/wrench.png +0 -0
  44. data/doc/images/wrench_orange.png +0 -0
  45. data/doc/images/zoom.png +0 -0
  46. data/doc/index.html +109 -21
  47. data/doc/js/darkfish.js +153 -0
  48. data/doc/js/jquery.js +18 -0
  49. data/doc/js/navigation.js +142 -0
  50. data/doc/js/search.js +94 -0
  51. data/doc/js/search_index.js +1 -0
  52. data/doc/js/searcher.js +228 -0
  53. data/doc/lib/bio-samtools_rb.html +115 -0
  54. data/doc/lib/bio/db/sam/bam_rb.html +121 -0
  55. data/doc/lib/bio/db/sam/faidx_rb.html +117 -0
  56. data/doc/lib/bio/db/sam/library_rb.html +115 -0
  57. data/doc/lib/bio/db/sam/pileup_rb.html +171 -0
  58. data/doc/lib/bio/db/sam/sam_rb.html +121 -0
  59. data/doc/lib/bio/db/sam/vcf_rb.html +124 -0
  60. data/doc/lib/bio/db/sam_rb.html +115 -0
  61. data/doc/rdoc.css +543 -0
  62. data/doc/table_of_contents.html +186 -0
  63. data/ext/Makefile-bioruby.patch +1 -1
  64. data/ext/Rakefile +8 -1
  65. data/ext/mkrf_conf.rb +8 -1
  66. data/lib/bio/db/sam.rb +140 -27
  67. data/lib/bio/db/sam/vcf.rb +0 -1
  68. data/test/basictest.rb +4 -4
  69. data/test/test_basic.rb +50 -34
  70. metadata +79 -25
  71. data/test/coverage.rb +0 -26
  72. data/test/coverage_plot.rb +0 -28
  73. data/test/feature.rb +0 -0
  74. data/test/test_pileup.rb +0 -68
data/doc/js/search.js ADDED
@@ -0,0 +1,94 @@
1
+ Search = function(data, input, result) {
2
+ this.data = data;
3
+ this.$input = $(input);
4
+ this.$result = $(result);
5
+
6
+ this.$current = null;
7
+ this.$view = this.$result.parent();
8
+ this.searcher = new Searcher(data.index);
9
+ this.init();
10
+ }
11
+
12
+ Search.prototype = $.extend({}, Navigation, new function() {
13
+ var suid = 1;
14
+
15
+ this.init = function() {
16
+ var _this = this;
17
+ var observer = function() {
18
+ _this.search(_this.$input[0].value);
19
+ };
20
+ this.$input.keyup(observer);
21
+ this.$input.click(observer); // mac's clear field
22
+
23
+ this.searcher.ready(function(results, isLast) {
24
+ _this.addResults(results, isLast);
25
+ })
26
+
27
+ this.initNavigation();
28
+ this.setNavigationActive(false);
29
+ }
30
+
31
+ this.search = function(value, selectFirstMatch) {
32
+ value = jQuery.trim(value).toLowerCase();
33
+ if (value) {
34
+ this.setNavigationActive(true);
35
+ } else {
36
+ this.setNavigationActive(false);
37
+ }
38
+
39
+ if (value == '') {
40
+ this.lastQuery = value;
41
+ this.$result.empty();
42
+ this.setNavigationActive(false);
43
+ } else if (value != this.lastQuery) {
44
+ this.lastQuery = value;
45
+ this.firstRun = true;
46
+ this.searcher.find(value);
47
+ }
48
+ }
49
+
50
+ this.addResults = function(results, isLast) {
51
+ var target = this.$result.get(0);
52
+ if (this.firstRun && (results.length > 0 || isLast)) {
53
+ this.$current = null;
54
+ this.$result.empty();
55
+ }
56
+
57
+ for (var i=0, l = results.length; i < l; i++) {
58
+ target.appendChild(this.renderItem.call(this, results[i]));
59
+ };
60
+
61
+ if (this.firstRun && results.length > 0) {
62
+ this.firstRun = false;
63
+ this.$current = $(target.firstChild);
64
+ this.$current.addClass('current');
65
+ }
66
+ if (jQuery.browser.msie) this.$element[0].className += '';
67
+ }
68
+
69
+ this.move = function(isDown) {
70
+ if (!this.$current) return;
71
+ var $next = this.$current[isDown ? 'next' : 'prev']();
72
+ if ($next.length) {
73
+ this.$current.removeClass('current');
74
+ $next.addClass('current');
75
+ this.scrollIntoView($next[0], this.$view[0]);
76
+ this.$current = $next;
77
+ }
78
+ return true;
79
+ }
80
+
81
+ this.hlt = function(html) {
82
+ return this.escapeHTML(html).
83
+ replace(/\u0001/g, '<em>').
84
+ replace(/\u0002/g, '</em>');
85
+ }
86
+
87
+ this.escapeHTML = function(html) {
88
+ return html.replace(/[&<>]/g, function(c) {
89
+ return '&#' + c.charCodeAt(0) + ';';
90
+ });
91
+ }
92
+
93
+ });
94
+
@@ -0,0 +1 @@
1
+ var search_data = {"index":{"info":[["Bio","","Bio.html","","<p>require ‘rubygems’ require ‘ffi’\n\n<pre class=\"ruby\"><span class=\"ruby-identifier\">require</span> <span class=\"ruby-string\">'bio/db/sam/faidx'</span>\n<span class=\"ruby-identifier\">require</span> <span class=\"ruby-string\">'bio/db/sam/sam'</span>\n</pre>\n<p>require ‘rubygems’ …\n"],["Bio::DB","","Bio/DB.html","",""],["Bio::DB::Alignment","","Bio/DB/Alignment.html","",""],["Bio::DB::SAM","","Bio/DB/SAM.html","",""],["Bio::DB::SAM::Library","","Bio/DB/SAM/Library.html","",""],["Bio::DB::SAM::Tools","","Bio/DB/SAM/Tools.html","",""],["Bio::DB::SAM::Tools::Bam1CoreT","","Bio/DB/SAM/Tools/Bam1CoreT.html","",""],["Bio::DB::SAM::Tools::Bam1T","","Bio/DB/SAM/Tools/Bam1T.html","",""],["Bio::DB::SAM::Tools::BamHeaderT","","Bio/DB/SAM/Tools/BamHeaderT.html","","<p>typedef struct {\n\n<pre>int32_t n_targets;\nchar **target_name;\nuint32_t *target_len;\nvoid *dict, *hash, *rg2lib; ...</pre>\n"],["Bio::DB::SAM::Tools::BamPileup1T","","Bio/DB/SAM/Tools/BamPileup1T.html","",""],["Bio::DB::SAM::Tools::SamfileT","","Bio/DB/SAM/Tools/SamfileT.html","","<p>typedef struct {\n\n<pre>int type;\nunion {\n tamFile tamr;\n bamFile bam;\n FILE *tamw;\n} x; ...</pre>\n"],["Bio::DB::SAM::Tools::SamfileTX","","Bio/DB/SAM/Tools/SamfileTX.html","",""],["Bio::DB::SAMException","","Bio/DB/SAMException.html","",""],["Bio::DB::Sam","","Bio/DB/Sam.html","",""],["Bio::DB::Tag","","Bio/DB/Tag.html","",""],["LibC","","LibC.html","",""],["Pileup","","Pileup.html","","<p>Pileup \n<p>A class representing information in SAMTools pileup format\n<p>Author &mdash; Dan MacLean (dan.maclean@tsl …\n"],["Vcf","","Vcf.html","","<p>Vcf \n<p>A class representing information in Variant Call Format Forked from vcfruby\nat github.com/jesserod/vcfruby …\n"],["average_coverage","Bio::DB::Sam","Bio/DB/Sam.html#method-i-average_coverage","(chromosome, qstart, len)","<p>Returns the average coverage of a region in a bam file.\n"],["bam_sort","Bio::DB::SAM::Tools","Bio/DB/SAM/Tools.html#method-c-bam_sort","(bam_filename, bam_output_prefix)",""],["chromosome_coverage","Bio::DB::Sam","Bio/DB/Sam.html#method-i-chromosome_coverage","(chromosome, qstart, len)","<p>Returns an array with the coverage at each possition in the queried region\nThis is a simple average coverage …\n"],["close","Bio::DB::Sam","Bio/DB/Sam.html#method-i-close","()","<p>Closes the sam file and destroys the C pointers using the functions\nprovided by libbam\n"],["deprecated_pileup","Bio::DB::Sam","Bio/DB/Sam.html#method-i-deprecated_pileup","( cmd )","<p>utility method that does not use the samtools API, it calls samtools\ndirectly as if on the command line …\n"],["fetch","Bio::DB::Sam","Bio/DB/Sam.html#method-i-fetch","(chromosome, qstart, qend)","<p>Returns an array of Alignments on a given region.\n"],["fetch_reference","Bio::DB::Sam","Bio/DB/Sam.html#method-i-fetch_reference","(chromosome, qstart,qend)","<p>Returns the sequence for a given region.\n"],["fetch_with_function","Bio::DB::Sam","Bio/DB/Sam.html#method-i-fetch_with_function","(chromosome, qstart, qend, function)","<p>Executes a function on each Alignment inside the queried region of the\nchromosome. The chromosome can …\n"],["filename","Bio::DB::SAM::Library","Bio/DB/SAM/Library.html#method-c-filename","()","<p>Return the path with the file name of the library for the specific\noperating system\n"],["finalize","Bio::DB::Alignment","Bio/DB/Alignment.html#method-c-finalize","(object_id)",""],["finalize","Bio::DB::Sam","Bio/DB/Sam.html#method-c-finalize","(id)","<p>Destructor method that closes the file before letting the object be garbage\ncollected.\n"],["index_stats","Bio::DB::Sam","Bio/DB/Sam.html#method-i-index_stats","()",""],["int_or_raw","Vcf","Vcf.html#method-i-int_or_raw","(x)",""],["load_index","Bio::DB::Sam","Bio/DB/Sam.html#method-i-load_index","()","<p>Loads the bam index to be used for fetching. If the index doesn’t exists\nthe index is built provided …\n"],["load_reference","Bio::DB::Sam","Bio/DB/Sam.html#method-i-load_reference","()","<p>Loads the reference file to be able to query regions of it. This requires\nthe fai index to exist in the …\n"],["merge","Bio::DB::Sam","Bio/DB/Sam.html#method-c-merge","(files, merged_file, headers, add_RG, by_qname)","<p>Merges n BAM files. This doesn’t require to create a SAM object\n<p>files &mdash; An array with the paths to the files. …\n"],["mpileup","Bio::DB::Sam","Bio/DB/Sam.html#method-i-mpileup","( opts )","<p>calls the mpileup function, opts is a hash of options identical to the\ncommand line options for mpileup. …\n"],["mpileup_plus","Bio::DB::Sam","Bio/DB/Sam.html#method-i-mpileup_plus","( opts )","<p>experimental method that spawns a samtools mpileup | bcftools view process\nand supports returning of …\n"],["new","Bio::DB::Alignment","Bio/DB/Alignment.html#method-c-new","()",""],["new","Bio::DB::SAMException","Bio/DB/SAMException.html#method-c-new","()","<p>we can add further variables to give information of the excpetion\n"],["new","Bio::DB::Sam","Bio/DB/Sam.html#method-c-new","(optsa={})","<p>To make a new sam object. Initialize expects a hash optsa with the\nfollowing elemets:\n<p>fasta &mdash; The fasta …\n"],["new","Pileup","Pileup.html#method-c-new","(pile_up_line)","<p>creates the Pileup object\n\n<pre>pile_up_line = &quot;seq2\\t151\\tG\\tG\\t36\\t0\\t99\\t12\\t...........A\\t:9&lt;;;7=&lt;&lt;&lt;&lt;&lt;&quot; ...</pre>\n"],["new","Vcf","Vcf.html#method-c-new","(line=nil, sample_names=nil)","<p>create the vcf object, use the ordered list of sample names to label\nsamples if provided [‘A’, ‘B’, ‘C’], …\n"],["non_ref_count","Pileup","Pileup.html#method-i-non_ref_count","()","<p>returns the total non-reference bases in the reads at this position\n"],["non_refs","Pileup","Pileup.html#method-i-non_refs","()","<p>Calculate the total count of each non-reference nucleotide and return a\nhash of all 4 nt counts, returns …\n"],["open","Bio::DB::Sam","Bio/DB/Sam.html#method-i-open","()","<p>Function that actually opens the sam file Throws a SAMException if the file\ncan’t be open.\n"],["parse_line","Vcf","Vcf.html#method-i-parse_line","(line, sample_names=nil)","<p>gets the info in the Vcf lines and parses the\n"],["qname","Bio::DB::SAM::Tools::Bam1T","Bio/DB/SAM/Tools/Bam1T.html#method-i-qname","()",""],["query_string","Bio::DB::Sam","Bio/DB/Sam.html#method-i-query_string","(chromosome, qstart,qend)","<p>Generates a query sting to be used by the region parser in samtools. In\nprinciple, you shouldn’t need …\n"],["ref_count","Pileup","Pileup.html#method-i-ref_count","()","<p>returns the count of reference-bases in the reads at this position\n"],["sam=","Bio::DB::Alignment","Bio/DB/Alignment.html#method-i-sam-3D","(sam)",""],["set","Bio::DB::Alignment","Bio/DB/Alignment.html#method-i-set","(bam_alignment, header)",""],["set","Bio::DB::Tag","Bio/DB/Tag.html#method-i-set","(str)",""],["text","Bio::DB::SAM::Tools::BamHeaderT","Bio/DB/SAM/Tools/BamHeaderT.html#method-i-text","()",""],["text=","Bio::DB::SAM::Tools::BamHeaderT","Bio/DB/SAM/Tools/BamHeaderT.html#method-i-text-3D","(str)",""],["to_s","Bio::DB::Sam","Bio/DB/Sam.html#method-i-to_s","()","<p>Prints a description of the sam file in a text format containg if it is\nbinary or text, the path and …\n"],["LICENSE","","LICENSE_txt.html","","<p>Copyright © 2011 Raoul J.P. Bonnal\n<p>Permission is hereby granted, free of charge, to any person obtaining …\n"]],"searchIndex":["bio","db","alignment","sam","library","tools","bam1coret","bam1t","bamheadert","bampileup1t","samfilet","samfiletx","samexception","sam","tag","libc","pileup","vcf","average_coverage()","bam_sort()","chromosome_coverage()","close()","deprecated_pileup()","fetch()","fetch_reference()","fetch_with_function()","filename()","finalize()","finalize()","index_stats()","int_or_raw()","load_index()","load_reference()","merge()","mpileup()","mpileup_plus()","new()","new()","new()","new()","new()","non_ref_count()","non_refs()","open()","parse_line()","qname()","query_string()","ref_count()","sam=()","set()","set()","text()","text=()","to_s()","license"],"longSearchIndex":["bio","bio::db","bio::db::alignment","bio::db::sam","bio::db::sam::library","bio::db::sam::tools","bio::db::sam::tools::bam1coret","bio::db::sam::tools::bam1t","bio::db::sam::tools::bamheadert","bio::db::sam::tools::bampileup1t","bio::db::sam::tools::samfilet","bio::db::sam::tools::samfiletx","bio::db::samexception","bio::db::sam","bio::db::tag","libc","pileup","vcf","bio::db::sam#average_coverage()","bio::db::sam::tools::bam_sort()","bio::db::sam#chromosome_coverage()","bio::db::sam#close()","bio::db::sam#deprecated_pileup()","bio::db::sam#fetch()","bio::db::sam#fetch_reference()","bio::db::sam#fetch_with_function()","bio::db::sam::library::filename()","bio::db::alignment::finalize()","bio::db::sam::finalize()","bio::db::sam#index_stats()","vcf#int_or_raw()","bio::db::sam#load_index()","bio::db::sam#load_reference()","bio::db::sam::merge()","bio::db::sam#mpileup()","bio::db::sam#mpileup_plus()","bio::db::alignment::new()","bio::db::samexception::new()","bio::db::sam::new()","pileup::new()","vcf::new()","pileup#non_ref_count()","pileup#non_refs()","bio::db::sam#open()","vcf#parse_line()","bio::db::sam::tools::bam1t#qname()","bio::db::sam#query_string()","pileup#ref_count()","bio::db::alignment#sam=()","bio::db::alignment#set()","bio::db::tag#set()","bio::db::sam::tools::bamheadert#text()","bio::db::sam::tools::bamheadert#text=()","bio::db::sam#to_s()",""]}}
@@ -0,0 +1,228 @@
1
+ Searcher = function(data) {
2
+ this.data = data;
3
+ this.handlers = [];
4
+ }
5
+
6
+ Searcher.prototype = new function() {
7
+ // search is performed in chunks of 1000 for non-blocking user input
8
+ var CHUNK_SIZE = 1000;
9
+ // do not try to find more than 100 results
10
+ var MAX_RESULTS = 100;
11
+ var huid = 1;
12
+ var suid = 1;
13
+ var runs = 0;
14
+
15
+ this.find = function(query) {
16
+ var queries = splitQuery(query);
17
+ var regexps = buildRegexps(queries);
18
+ var highlighters = buildHilighters(queries);
19
+ var state = { from: 0, pass: 0, limit: MAX_RESULTS, n: suid++};
20
+ var _this = this;
21
+
22
+ this.currentSuid = state.n;
23
+
24
+ if (!query) return;
25
+
26
+ var run = function() {
27
+ // stop current search thread if new search started
28
+ if (state.n != _this.currentSuid) return;
29
+
30
+ var results =
31
+ performSearch(_this.data, regexps, queries, highlighters, state);
32
+ var hasMore = (state.limit > 0 && state.pass < 4);
33
+
34
+ triggerResults.call(_this, results, !hasMore);
35
+ if (hasMore) {
36
+ setTimeout(run, 2);
37
+ }
38
+ runs++;
39
+ };
40
+ runs = 0;
41
+
42
+ // start search thread
43
+ run();
44
+ }
45
+
46
+ /* ----- Events ------ */
47
+ this.ready = function(fn) {
48
+ fn.huid = huid;
49
+ this.handlers.push(fn);
50
+ }
51
+
52
+ /* ----- Utilities ------ */
53
+ function splitQuery(query) {
54
+ return jQuery.grep(query.split(/(\s+|::?|\(\)?)/), function(string) {
55
+ return string.match(/\S/)
56
+ });
57
+ }
58
+
59
+ function buildRegexps(queries) {
60
+ return jQuery.map(queries, function(query) {
61
+ return new RegExp(query.replace(/(.)/g, '([$1])([^$1]*?)'), 'i')
62
+ });
63
+ }
64
+
65
+ function buildHilighters(queries) {
66
+ return jQuery.map(queries, function(query) {
67
+ return jQuery.map(query.split(''), function(l, i) {
68
+ return '\u0001$' + (i*2+1) + '\u0002$' + (i*2+2);
69
+ }).join('');
70
+ });
71
+ }
72
+
73
+ // function longMatchRegexp(index, longIndex, regexps) {
74
+ // for (var i = regexps.length - 1; i >= 0; i--){
75
+ // if (!index.match(regexps[i]) && !longIndex.match(regexps[i])) return false;
76
+ // };
77
+ // return true;
78
+ // }
79
+
80
+
81
+ /* ----- Mathchers ------ */
82
+
83
+ /*
84
+ * This record matches if the index starts with queries[0] and the record
85
+ * matches all of the regexps
86
+ */
87
+ function matchPassBeginning(index, longIndex, queries, regexps) {
88
+ if (index.indexOf(queries[0]) != 0) return false;
89
+ for (var i=1, l = regexps.length; i < l; i++) {
90
+ if (!index.match(regexps[i]) && !longIndex.match(regexps[i]))
91
+ return false;
92
+ };
93
+ return true;
94
+ }
95
+
96
+ /*
97
+ * This record matches if the longIndex starts with queries[0] and the
98
+ * longIndex matches all of the regexps
99
+ */
100
+ function matchPassLongIndex(index, longIndex, queries, regexps) {
101
+ if (longIndex.indexOf(queries[0]) != 0) return false;
102
+ for (var i=1, l = regexps.length; i < l; i++) {
103
+ if (!longIndex.match(regexps[i]))
104
+ return false;
105
+ };
106
+ return true;
107
+ }
108
+
109
+ /*
110
+ * This record matches if the index contains queries[0] and the record
111
+ * matches all of the regexps
112
+ */
113
+ function matchPassContains(index, longIndex, queries, regexps) {
114
+ if (index.indexOf(queries[0]) == -1) return false;
115
+ for (var i=1, l = regexps.length; i < l; i++) {
116
+ if (!index.match(regexps[i]) && !longIndex.match(regexps[i]))
117
+ return false;
118
+ };
119
+ return true;
120
+ }
121
+
122
+ /*
123
+ * This record matches if regexps[0] matches the index and the record
124
+ * matches all of the regexps
125
+ */
126
+ function matchPassRegexp(index, longIndex, queries, regexps) {
127
+ if (!index.match(regexps[0])) return false;
128
+ for (var i=1, l = regexps.length; i < l; i++) {
129
+ if (!index.match(regexps[i]) && !longIndex.match(regexps[i]))
130
+ return false;
131
+ };
132
+ return true;
133
+ }
134
+
135
+
136
+ /* ----- Highlighters ------ */
137
+ function highlightRegexp(info, queries, regexps, highlighters) {
138
+ var result = createResult(info);
139
+ for (var i=0, l = regexps.length; i < l; i++) {
140
+ result.title = result.title.replace(regexps[i], highlighters[i]);
141
+ result.namespace = result.namespace.replace(regexps[i], highlighters[i]);
142
+ };
143
+ return result;
144
+ }
145
+
146
+ function hltSubstring(string, pos, length) {
147
+ return string.substring(0, pos) + '\u0001' + string.substring(pos, pos + length) + '\u0002' + string.substring(pos + length);
148
+ }
149
+
150
+ function highlightQuery(info, queries, regexps, highlighters) {
151
+ var result = createResult(info);
152
+ var pos = 0;
153
+ var lcTitle = result.title.toLowerCase();
154
+
155
+ pos = lcTitle.indexOf(queries[0]);
156
+ if (pos != -1) {
157
+ result.title = hltSubstring(result.title, pos, queries[0].length);
158
+ }
159
+
160
+ result.namespace = result.namespace.replace(regexps[0], highlighters[0]);
161
+ for (var i=1, l = regexps.length; i < l; i++) {
162
+ result.title = result.title.replace(regexps[i], highlighters[i]);
163
+ result.namespace = result.namespace.replace(regexps[i], highlighters[i]);
164
+ };
165
+ return result;
166
+ }
167
+
168
+ function createResult(info) {
169
+ var result = {};
170
+ result.title = info[0];
171
+ result.namespace = info[1];
172
+ result.path = info[2];
173
+ result.params = info[3];
174
+ result.snippet = info[4];
175
+ return result;
176
+ }
177
+
178
+ /* ----- Searching ------ */
179
+ function performSearch(data, regexps, queries, highlighters, state) {
180
+ var searchIndex = data.searchIndex;
181
+ var longSearchIndex = data.longSearchIndex;
182
+ var info = data.info;
183
+ var result = [];
184
+ var i = state.from;
185
+ var l = searchIndex.length;
186
+ var togo = CHUNK_SIZE;
187
+ var matchFunc, hltFunc;
188
+
189
+ while (state.pass < 4 && state.limit > 0 && togo > 0) {
190
+ if (state.pass == 0) {
191
+ matchFunc = matchPassBeginning;
192
+ hltFunc = highlightQuery;
193
+ } else if (state.pass == 1) {
194
+ matchFunc = matchPassLongIndex;
195
+ hltFunc = highlightQuery;
196
+ } else if (state.pass == 2) {
197
+ matchFunc = matchPassContains;
198
+ hltFunc = highlightQuery;
199
+ } else if (state.pass == 3) {
200
+ matchFunc = matchPassRegexp;
201
+ hltFunc = highlightRegexp;
202
+ }
203
+
204
+ for (; togo > 0 && i < l && state.limit > 0; i++, togo--) {
205
+ if (info[i].n == state.n) continue;
206
+ if (matchFunc(searchIndex[i], longSearchIndex[i], queries, regexps)) {
207
+ info[i].n = state.n;
208
+ result.push(hltFunc(info[i], queries, regexps, highlighters));
209
+ state.limit--;
210
+ }
211
+ };
212
+ if (searchIndex.length <= i) {
213
+ state.pass++;
214
+ i = state.from = 0;
215
+ } else {
216
+ state.from = i;
217
+ }
218
+ }
219
+ return result;
220
+ }
221
+
222
+ function triggerResults(results, isLast) {
223
+ jQuery.each(this.handlers, function(i, fn) {
224
+ fn.call(this, results, isLast)
225
+ })
226
+ }
227
+ }
228
+
@@ -0,0 +1,115 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
6
+
7
+ <title>LICENSE</title>
8
+
9
+ <link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet">
10
+
11
+ <script type="text/javascript">
12
+ var rdoc_rel_prefix = "../";
13
+ </script>
14
+
15
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
16
+ <script type="text/javascript" charset="utf-8" src="../js/navigation.js"></script>
17
+ <script type="text/javascript" charset="utf-8" src="../js/search_index.js"></script>
18
+ <script type="text/javascript" charset="utf-8" src="../js/search.js"></script>
19
+ <script type="text/javascript" charset="utf-8" src="../js/searcher.js"></script>
20
+ <script type="text/javascript" charset="utf-8" src="../js/darkfish.js"></script>
21
+
22
+
23
+ <body class="file">
24
+ <nav id="metadata">
25
+ <nav id="home-section" class="section">
26
+ <h3 class="section-header">
27
+ <a href="../index.html">Home</a>
28
+ <a href="../table_of_contents.html#classes">Classes</a>
29
+ <a href="../table_of_contents.html#methods">Methods</a>
30
+ </h3>
31
+ </nav>
32
+
33
+
34
+ <nav id="search-section" class="section project-section" class="initially-hidden">
35
+ <form action="#" method="get" accept-charset="utf-8">
36
+ <h3 class="section-header">
37
+ <input type="text" name="search" placeholder="Search" id="search-field"
38
+ title="Type to search, Up and Down to navigate, Enter to load">
39
+ </h3>
40
+ </form>
41
+
42
+ <ul id="search-results" class="initially-hidden"></ul>
43
+ </nav>
44
+
45
+
46
+ <div id="project-metadata">
47
+ <nav id="fileindex-section" class="section project-section">
48
+ <h3 class="section-header">Pages</h3>
49
+
50
+ <ul>
51
+
52
+ <li class="file"><a href="../LICENSE_txt.html">LICENSE</a>
53
+
54
+ </ul>
55
+ </nav>
56
+
57
+ <nav id="classindex-section" class="section project-section">
58
+ <h3 class="section-header">Class and Module Index</h3>
59
+
60
+ <ul class="link-list">
61
+
62
+ <li><a href="../Bio.html">Bio</a>
63
+
64
+ <li><a href="../Bio/DB.html">Bio::DB</a>
65
+
66
+ <li><a href="../Bio/DB/Alignment.html">Bio::DB::Alignment</a>
67
+
68
+ <li><a href="../Bio/DB/SAM.html">Bio::DB::SAM</a>
69
+
70
+ <li><a href="../Bio/DB/SAM/Library.html">Bio::DB::SAM::Library</a>
71
+
72
+ <li><a href="../Bio/DB/SAM/Tools.html">Bio::DB::SAM::Tools</a>
73
+
74
+ <li><a href="../Bio/DB/SAM/Tools/Bam1CoreT.html">Bio::DB::SAM::Tools::Bam1CoreT</a>
75
+
76
+ <li><a href="../Bio/DB/SAM/Tools/Bam1T.html">Bio::DB::SAM::Tools::Bam1T</a>
77
+
78
+ <li><a href="../Bio/DB/SAM/Tools/BamHeaderT.html">Bio::DB::SAM::Tools::BamHeaderT</a>
79
+
80
+ <li><a href="../Bio/DB/SAM/Tools/BamPileup1T.html">Bio::DB::SAM::Tools::BamPileup1T</a>
81
+
82
+ <li><a href="../Bio/DB/SAM/Tools/SamfileT.html">Bio::DB::SAM::Tools::SamfileT</a>
83
+
84
+ <li><a href="../Bio/DB/SAM/Tools/SamfileTX.html">Bio::DB::SAM::Tools::SamfileTX</a>
85
+
86
+ <li><a href="../Bio/DB/SAMException.html">Bio::DB::SAMException</a>
87
+
88
+ <li><a href="../Bio/DB/Sam.html">Bio::DB::Sam</a>
89
+
90
+ <li><a href="../Bio/DB/Tag.html">Bio::DB::Tag</a>
91
+
92
+ <li><a href="../LibC.html">LibC</a>
93
+
94
+ <li><a href="../Pileup.html">Pileup</a>
95
+
96
+ <li><a href="../Vcf.html">Vcf</a>
97
+
98
+ </ul>
99
+ </nav>
100
+
101
+ </div>
102
+ </nav>
103
+
104
+ <div id="documentation" class="description">
105
+
106
+ </div>
107
+
108
+
109
+
110
+ <footer id="validator-badges">
111
+ <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
112
+ <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.11.
113
+ <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
114
+ </footer>
115
+
@@ -0,0 +1,121 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
6
+
7
+ <title>LICENSE</title>
8
+
9
+ <link type="text/css" media="screen" href="../../../../rdoc.css" rel="stylesheet">
10
+
11
+ <script type="text/javascript">
12
+ var rdoc_rel_prefix = "../../../../";
13
+ </script>
14
+
15
+ <script type="text/javascript" charset="utf-8" src="../../../../js/jquery.js"></script>
16
+ <script type="text/javascript" charset="utf-8" src="../../../../js/navigation.js"></script>
17
+ <script type="text/javascript" charset="utf-8" src="../../../../js/search_index.js"></script>
18
+ <script type="text/javascript" charset="utf-8" src="../../../../js/search.js"></script>
19
+ <script type="text/javascript" charset="utf-8" src="../../../../js/searcher.js"></script>
20
+ <script type="text/javascript" charset="utf-8" src="../../../../js/darkfish.js"></script>
21
+
22
+
23
+ <body class="file">
24
+ <nav id="metadata">
25
+ <nav id="home-section" class="section">
26
+ <h3 class="section-header">
27
+ <a href="../../../../index.html">Home</a>
28
+ <a href="../../../../table_of_contents.html#classes">Classes</a>
29
+ <a href="../../../../table_of_contents.html#methods">Methods</a>
30
+ </h3>
31
+ </nav>
32
+
33
+
34
+ <nav id="search-section" class="section project-section" class="initially-hidden">
35
+ <form action="#" method="get" accept-charset="utf-8">
36
+ <h3 class="section-header">
37
+ <input type="text" name="search" placeholder="Search" id="search-field"
38
+ title="Type to search, Up and Down to navigate, Enter to load">
39
+ </h3>
40
+ </form>
41
+
42
+ <ul id="search-results" class="initially-hidden"></ul>
43
+ </nav>
44
+
45
+
46
+ <div id="project-metadata">
47
+ <nav id="fileindex-section" class="section project-section">
48
+ <h3 class="section-header">Pages</h3>
49
+
50
+ <ul>
51
+
52
+ <li class="file"><a href="../../../../LICENSE_txt.html">LICENSE</a>
53
+
54
+ </ul>
55
+ </nav>
56
+
57
+ <nav id="classindex-section" class="section project-section">
58
+ <h3 class="section-header">Class and Module Index</h3>
59
+
60
+ <ul class="link-list">
61
+
62
+ <li><a href="../../../../Bio.html">Bio</a>
63
+
64
+ <li><a href="../../../../Bio/DB.html">Bio::DB</a>
65
+
66
+ <li><a href="../../../../Bio/DB/Alignment.html">Bio::DB::Alignment</a>
67
+
68
+ <li><a href="../../../../Bio/DB/SAM.html">Bio::DB::SAM</a>
69
+
70
+ <li><a href="../../../../Bio/DB/SAM/Library.html">Bio::DB::SAM::Library</a>
71
+
72
+ <li><a href="../../../../Bio/DB/SAM/Tools.html">Bio::DB::SAM::Tools</a>
73
+
74
+ <li><a href="../../../../Bio/DB/SAM/Tools/Bam1CoreT.html">Bio::DB::SAM::Tools::Bam1CoreT</a>
75
+
76
+ <li><a href="../../../../Bio/DB/SAM/Tools/Bam1T.html">Bio::DB::SAM::Tools::Bam1T</a>
77
+
78
+ <li><a href="../../../../Bio/DB/SAM/Tools/BamHeaderT.html">Bio::DB::SAM::Tools::BamHeaderT</a>
79
+
80
+ <li><a href="../../../../Bio/DB/SAM/Tools/BamPileup1T.html">Bio::DB::SAM::Tools::BamPileup1T</a>
81
+
82
+ <li><a href="../../../../Bio/DB/SAM/Tools/SamfileT.html">Bio::DB::SAM::Tools::SamfileT</a>
83
+
84
+ <li><a href="../../../../Bio/DB/SAM/Tools/SamfileTX.html">Bio::DB::SAM::Tools::SamfileTX</a>
85
+
86
+ <li><a href="../../../../Bio/DB/SAMException.html">Bio::DB::SAMException</a>
87
+
88
+ <li><a href="../../../../Bio/DB/Sam.html">Bio::DB::Sam</a>
89
+
90
+ <li><a href="../../../../Bio/DB/Tag.html">Bio::DB::Tag</a>
91
+
92
+ <li><a href="../../../../LibC.html">LibC</a>
93
+
94
+ <li><a href="../../../../Pileup.html">Pileup</a>
95
+
96
+ <li><a href="../../../../Vcf.html">Vcf</a>
97
+
98
+ </ul>
99
+ </nav>
100
+
101
+ </div>
102
+ </nav>
103
+
104
+ <div id="documentation" class="description">
105
+
106
+ <p>require ‘rubygems’ require ‘ffi’</p>
107
+
108
+ <pre class="ruby"><span class="ruby-identifier">require</span> <span class="ruby-string">'bio/db/sam/faidx'</span>
109
+ <span class="ruby-identifier">require</span> <span class="ruby-string">'bio/db/sam/sam'</span>
110
+ </pre>
111
+
112
+ </div>
113
+
114
+
115
+
116
+ <footer id="validator-badges">
117
+ <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
118
+ <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.11.
119
+ <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
120
+ </footer>
121
+