ngs_server 0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (284) hide show
  1. data/.gitignore +4 -0
  2. data/Gemfile +4 -0
  3. data/Rakefile +2 -0
  4. data/bin/ngs_server +58 -0
  5. data/data/holder.txt +0 -0
  6. data/ext/bamtools/CMakeLists.txt +49 -0
  7. data/ext/bamtools/LICENSE +22 -0
  8. data/ext/bamtools/README +60 -0
  9. data/ext/bamtools/Tutorial_Toolkit_BamTools-1.0.pdf +0 -0
  10. data/ext/bamtools/docs/Doxyfile +1601 -0
  11. data/ext/bamtools/extconf.rb +9 -0
  12. data/ext/bamtools/src/CMakeFiles/CMakeDirectoryInformation.cmake +22 -0
  13. data/ext/bamtools/src/CMakeFiles/SharedHeaders.dir/DependInfo.cmake +13 -0
  14. data/ext/bamtools/src/CMakeFiles/SharedHeaders.dir/build.make +65 -0
  15. data/ext/bamtools/src/CMakeFiles/SharedHeaders.dir/cmake_clean.cmake +8 -0
  16. data/ext/bamtools/src/CMakeFiles/SharedHeaders.dir/depend.internal +3 -0
  17. data/ext/bamtools/src/CMakeFiles/SharedHeaders.dir/depend.make +3 -0
  18. data/ext/bamtools/src/CMakeFiles/SharedHeaders.dir/progress.make +2 -0
  19. data/ext/bamtools/src/CMakeFiles/progress.marks +1 -0
  20. data/ext/bamtools/src/CMakeLists.txt +18 -0
  21. data/ext/bamtools/src/ExportHeader.cmake +31 -0
  22. data/ext/bamtools/src/Makefile +182 -0
  23. data/ext/bamtools/src/api/BamAlignment.cpp +2432 -0
  24. data/ext/bamtools/src/api/BamAlignment.h +206 -0
  25. data/ext/bamtools/src/api/BamAux.h +456 -0
  26. data/ext/bamtools/src/api/BamConstants.h +127 -0
  27. data/ext/bamtools/src/api/BamIndex.h +79 -0
  28. data/ext/bamtools/src/api/BamMultiReader.cpp +395 -0
  29. data/ext/bamtools/src/api/BamMultiReader.h +126 -0
  30. data/ext/bamtools/src/api/BamReader.cpp +369 -0
  31. data/ext/bamtools/src/api/BamReader.h +117 -0
  32. data/ext/bamtools/src/api/BamWriter.cpp +142 -0
  33. data/ext/bamtools/src/api/BamWriter.h +63 -0
  34. data/ext/bamtools/src/api/CMakeFiles/APIHeaders.dir/DependInfo.cmake +14 -0
  35. data/ext/bamtools/src/api/CMakeFiles/APIHeaders.dir/build.make +80 -0
  36. data/ext/bamtools/src/api/CMakeFiles/APIHeaders.dir/cmake_clean.cmake +8 -0
  37. data/ext/bamtools/src/api/CMakeFiles/APIHeaders.dir/depend.internal +3 -0
  38. data/ext/bamtools/src/api/CMakeFiles/APIHeaders.dir/depend.make +3 -0
  39. data/ext/bamtools/src/api/CMakeFiles/APIHeaders.dir/progress.make +2 -0
  40. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/BamAlignment.cpp.o +0 -0
  41. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/BamMultiReader.cpp.o +0 -0
  42. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/BamReader.cpp.o +0 -0
  43. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/BamWriter.cpp.o +0 -0
  44. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/CXX.includecache +596 -0
  45. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/DependInfo.cmake +41 -0
  46. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/SamHeader.cpp.o +0 -0
  47. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/SamProgram.cpp.o +0 -0
  48. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/SamProgramChain.cpp.o +0 -0
  49. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/SamReadGroup.cpp.o +0 -0
  50. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/SamReadGroupDictionary.cpp.o +0 -0
  51. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/SamSequence.cpp.o +0 -0
  52. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/SamSequenceDictionary.cpp.o +0 -0
  53. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/build.make +675 -0
  54. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/cmake_clean.cmake +32 -0
  55. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/cmake_clean_target.cmake +3 -0
  56. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/depend.internal +295 -0
  57. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/depend.make +295 -0
  58. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/flags.make +8 -0
  59. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/internal/BamHeader_p.cpp.o +0 -0
  60. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/internal/BamIndexFactory_p.cpp.o +0 -0
  61. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/internal/BamMultiReader_p.cpp.o +0 -0
  62. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/internal/BamRandomAccessController_p.cpp.o +0 -0
  63. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/internal/BamReader_p.cpp.o +0 -0
  64. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/internal/BamStandardIndex_p.cpp.o +0 -0
  65. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/internal/BamToolsIndex_p.cpp.o +0 -0
  66. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/internal/BamWriter_p.cpp.o +0 -0
  67. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/internal/BgzfStream_p.cpp.o +0 -0
  68. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/internal/SamFormatParser_p.cpp.o +0 -0
  69. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/internal/SamFormatPrinter_p.cpp.o +0 -0
  70. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/internal/SamHeaderValidator_p.cpp.o +0 -0
  71. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/link.txt +2 -0
  72. data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/progress.make +24 -0
  73. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/BamAlignment.cpp.o +0 -0
  74. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/BamMultiReader.cpp.o +0 -0
  75. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/BamReader.cpp.o +0 -0
  76. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/BamWriter.cpp.o +0 -0
  77. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/CXX.includecache +596 -0
  78. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/DependInfo.cmake +47 -0
  79. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/SamHeader.cpp.o +0 -0
  80. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/SamProgram.cpp.o +0 -0
  81. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/SamProgramChain.cpp.o +0 -0
  82. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/SamReadGroup.cpp.o +0 -0
  83. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/SamReadGroupDictionary.cpp.o +0 -0
  84. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/SamSequence.cpp.o +0 -0
  85. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/SamSequenceDictionary.cpp.o +0 -0
  86. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/build.make +677 -0
  87. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/cmake_clean.cmake +33 -0
  88. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/depend.internal +295 -0
  89. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/depend.make +295 -0
  90. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/flags.make +8 -0
  91. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/internal/BamHeader_p.cpp.o +0 -0
  92. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/internal/BamIndexFactory_p.cpp.o +0 -0
  93. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/internal/BamMultiReader_p.cpp.o +0 -0
  94. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/internal/BamRandomAccessController_p.cpp.o +0 -0
  95. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/internal/BamReader_p.cpp.o +0 -0
  96. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/internal/BamStandardIndex_p.cpp.o +0 -0
  97. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/internal/BamToolsIndex_p.cpp.o +0 -0
  98. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/internal/BamWriter_p.cpp.o +0 -0
  99. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/internal/BgzfStream_p.cpp.o +0 -0
  100. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/internal/SamFormatParser_p.cpp.o +0 -0
  101. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/internal/SamFormatPrinter_p.cpp.o +0 -0
  102. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/internal/SamHeaderValidator_p.cpp.o +0 -0
  103. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/link.txt +1 -0
  104. data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/progress.make +24 -0
  105. data/ext/bamtools/src/api/CMakeFiles/CMakeDirectoryInformation.cmake +22 -0
  106. data/ext/bamtools/src/api/CMakeFiles/progress.marks +1 -0
  107. data/ext/bamtools/src/api/CMakeLists.txt +78 -0
  108. data/ext/bamtools/src/api/Makefile +902 -0
  109. data/ext/bamtools/src/api/SamConstants.h +95 -0
  110. data/ext/bamtools/src/api/SamHeader.cpp +184 -0
  111. data/ext/bamtools/src/api/SamHeader.h +68 -0
  112. data/ext/bamtools/src/api/SamProgram.cpp +139 -0
  113. data/ext/bamtools/src/api/SamProgram.h +61 -0
  114. data/ext/bamtools/src/api/SamProgramChain.cpp +351 -0
  115. data/ext/bamtools/src/api/SamProgramChain.h +85 -0
  116. data/ext/bamtools/src/api/SamReadGroup.cpp +221 -0
  117. data/ext/bamtools/src/api/SamReadGroup.h +68 -0
  118. data/ext/bamtools/src/api/SamReadGroupDictionary.cpp +289 -0
  119. data/ext/bamtools/src/api/SamReadGroupDictionary.h +86 -0
  120. data/ext/bamtools/src/api/SamSequence.cpp +161 -0
  121. data/ext/bamtools/src/api/SamSequence.h +60 -0
  122. data/ext/bamtools/src/api/SamSequenceDictionary.cpp +292 -0
  123. data/ext/bamtools/src/api/SamSequenceDictionary.h +88 -0
  124. data/ext/bamtools/src/api/api_global.h +21 -0
  125. data/ext/bamtools/src/api/cmake_install.cmake +122 -0
  126. data/ext/bamtools/src/api/internal/BamHeader_p.cpp +132 -0
  127. data/ext/bamtools/src/api/internal/BamHeader_p.h +71 -0
  128. data/ext/bamtools/src/api/internal/BamIndexFactory_p.cpp +112 -0
  129. data/ext/bamtools/src/api/internal/BamIndexFactory_p.h +49 -0
  130. data/ext/bamtools/src/api/internal/BamMultiMerger_p.h +297 -0
  131. data/ext/bamtools/src/api/internal/BamMultiReader_p.cpp +805 -0
  132. data/ext/bamtools/src/api/internal/BamMultiReader_p.h +103 -0
  133. data/ext/bamtools/src/api/internal/BamRandomAccessController_p.cpp +272 -0
  134. data/ext/bamtools/src/api/internal/BamRandomAccessController_p.h +93 -0
  135. data/ext/bamtools/src/api/internal/BamReader_p.cpp +380 -0
  136. data/ext/bamtools/src/api/internal/BamReader_p.h +112 -0
  137. data/ext/bamtools/src/api/internal/BamStandardIndex_p.cpp +986 -0
  138. data/ext/bamtools/src/api/internal/BamStandardIndex_p.h +236 -0
  139. data/ext/bamtools/src/api/internal/BamToolsIndex_p.cpp +641 -0
  140. data/ext/bamtools/src/api/internal/BamToolsIndex_p.h +187 -0
  141. data/ext/bamtools/src/api/internal/BamWriter_p.cpp +424 -0
  142. data/ext/bamtools/src/api/internal/BamWriter_p.h +66 -0
  143. data/ext/bamtools/src/api/internal/BgzfStream_p.cpp +438 -0
  144. data/ext/bamtools/src/api/internal/BgzfStream_p.h +108 -0
  145. data/ext/bamtools/src/api/internal/SamFormatParser_p.cpp +230 -0
  146. data/ext/bamtools/src/api/internal/SamFormatParser_p.h +61 -0
  147. data/ext/bamtools/src/api/internal/SamFormatPrinter_p.cpp +210 -0
  148. data/ext/bamtools/src/api/internal/SamFormatPrinter_p.h +60 -0
  149. data/ext/bamtools/src/api/internal/SamHeaderValidator_p.cpp +510 -0
  150. data/ext/bamtools/src/api/internal/SamHeaderValidator_p.h +101 -0
  151. data/ext/bamtools/src/api/internal/SamHeaderVersion_p.h +134 -0
  152. data/ext/bamtools/src/cmake_install.cmake +42 -0
  153. data/ext/bamtools/src/shared/bamtools_global.h +78 -0
  154. data/ext/bamtools/src/third_party/CMakeFiles/CMakeDirectoryInformation.cmake +22 -0
  155. data/ext/bamtools/src/third_party/CMakeFiles/progress.marks +1 -0
  156. data/ext/bamtools/src/third_party/CMakeLists.txt +10 -0
  157. data/ext/bamtools/src/third_party/Makefile +167 -0
  158. data/ext/bamtools/src/third_party/cmake_install.cmake +35 -0
  159. data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/CMakeDirectoryInformation.cmake +22 -0
  160. data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/CXX.includecache +144 -0
  161. data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/DependInfo.cmake +27 -0
  162. data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/build.make +157 -0
  163. data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/cmake_clean.cmake +13 -0
  164. data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/depend.internal +31 -0
  165. data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/depend.make +31 -0
  166. data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/flags.make +8 -0
  167. data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/json_reader.cpp.o +0 -0
  168. data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/json_value.cpp.o +0 -0
  169. data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/json_writer.cpp.o +0 -0
  170. data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/link.txt +1 -0
  171. data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/progress.make +4 -0
  172. data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/progress.marks +1 -0
  173. data/ext/bamtools/src/third_party/jsoncpp/CMakeLists.txt +23 -0
  174. data/ext/bamtools/src/third_party/jsoncpp/LICENSE +55 -0
  175. data/ext/bamtools/src/third_party/jsoncpp/Makefile +263 -0
  176. data/ext/bamtools/src/third_party/jsoncpp/cmake_install.cmake +29 -0
  177. data/ext/bamtools/src/third_party/jsoncpp/json.h +15 -0
  178. data/ext/bamtools/src/third_party/jsoncpp/json_batchallocator.h +130 -0
  179. data/ext/bamtools/src/third_party/jsoncpp/json_config.h +42 -0
  180. data/ext/bamtools/src/third_party/jsoncpp/json_features.h +47 -0
  181. data/ext/bamtools/src/third_party/jsoncpp/json_forwards.h +42 -0
  182. data/ext/bamtools/src/third_party/jsoncpp/json_internalarray.inl +453 -0
  183. data/ext/bamtools/src/third_party/jsoncpp/json_internalmap.inl +612 -0
  184. data/ext/bamtools/src/third_party/jsoncpp/json_reader.cpp +870 -0
  185. data/ext/bamtools/src/third_party/jsoncpp/json_reader.h +201 -0
  186. data/ext/bamtools/src/third_party/jsoncpp/json_tool.h +93 -0
  187. data/ext/bamtools/src/third_party/jsoncpp/json_value.cpp +1701 -0
  188. data/ext/bamtools/src/third_party/jsoncpp/json_value.h +1059 -0
  189. data/ext/bamtools/src/third_party/jsoncpp/json_valueiterator.inl +297 -0
  190. data/ext/bamtools/src/third_party/jsoncpp/json_writer.cpp +819 -0
  191. data/ext/bamtools/src/third_party/jsoncpp/json_writer.h +179 -0
  192. data/ext/bamtools/src/toolkit/CMakeFiles/CMakeDirectoryInformation.cmake +25 -0
  193. data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/CXX.includecache +698 -0
  194. data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/DependInfo.cmake +34 -0
  195. data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools.cpp.o +0 -0
  196. data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_convert.cpp.o +0 -0
  197. data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_count.cpp.o +0 -0
  198. data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_coverage.cpp.o +0 -0
  199. data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_filter.cpp.o +0 -0
  200. data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_header.cpp.o +0 -0
  201. data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_index.cpp.o +0 -0
  202. data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_merge.cpp.o +0 -0
  203. data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_random.cpp.o +0 -0
  204. data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_resolve.cpp.o +0 -0
  205. data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_revert.cpp.o +0 -0
  206. data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_sort.cpp.o +0 -0
  207. data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_split.cpp.o +0 -0
  208. data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_stats.cpp.o +0 -0
  209. data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/build.make +447 -0
  210. data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/cmake_clean.cmake +24 -0
  211. data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/depend.internal +319 -0
  212. data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/depend.make +319 -0
  213. data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/flags.make +8 -0
  214. data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/link.txt +1 -0
  215. data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/progress.make +15 -0
  216. data/ext/bamtools/src/toolkit/CMakeFiles/progress.marks +1 -0
  217. data/ext/bamtools/src/toolkit/CMakeLists.txt +44 -0
  218. data/ext/bamtools/src/toolkit/Makefile +560 -0
  219. data/ext/bamtools/src/toolkit/bamtools.cpp +163 -0
  220. data/ext/bamtools/src/toolkit/bamtools_convert.cpp +888 -0
  221. data/ext/bamtools/src/toolkit/bamtools_convert.h +37 -0
  222. data/ext/bamtools/src/toolkit/bamtools_count.cpp +187 -0
  223. data/ext/bamtools/src/toolkit/bamtools_count.h +37 -0
  224. data/ext/bamtools/src/toolkit/bamtools_coverage.cpp +196 -0
  225. data/ext/bamtools/src/toolkit/bamtools_coverage.h +37 -0
  226. data/ext/bamtools/src/toolkit/bamtools_filter.cpp +911 -0
  227. data/ext/bamtools/src/toolkit/bamtools_filter.h +37 -0
  228. data/ext/bamtools/src/toolkit/bamtools_header.cpp +122 -0
  229. data/ext/bamtools/src/toolkit/bamtools_header.h +38 -0
  230. data/ext/bamtools/src/toolkit/bamtools_index.cpp +126 -0
  231. data/ext/bamtools/src/toolkit/bamtools_index.h +37 -0
  232. data/ext/bamtools/src/toolkit/bamtools_merge.cpp +221 -0
  233. data/ext/bamtools/src/toolkit/bamtools_merge.h +37 -0
  234. data/ext/bamtools/src/toolkit/bamtools_random.cpp +255 -0
  235. data/ext/bamtools/src/toolkit/bamtools_random.h +37 -0
  236. data/ext/bamtools/src/toolkit/bamtools_resolve.cpp +1396 -0
  237. data/ext/bamtools/src/toolkit/bamtools_resolve.h +42 -0
  238. data/ext/bamtools/src/toolkit/bamtools_revert.cpp +194 -0
  239. data/ext/bamtools/src/toolkit/bamtools_revert.h +37 -0
  240. data/ext/bamtools/src/toolkit/bamtools_sort.cpp +410 -0
  241. data/ext/bamtools/src/toolkit/bamtools_sort.h +37 -0
  242. data/ext/bamtools/src/toolkit/bamtools_split.cpp +551 -0
  243. data/ext/bamtools/src/toolkit/bamtools_split.h +38 -0
  244. data/ext/bamtools/src/toolkit/bamtools_stats.cpp +286 -0
  245. data/ext/bamtools/src/toolkit/bamtools_stats.h +37 -0
  246. data/ext/bamtools/src/toolkit/bamtools_tool.h +35 -0
  247. data/ext/bamtools/src/toolkit/bamtools_version.h +20 -0
  248. data/ext/bamtools/src/toolkit/bamtools_version.h.in +20 -0
  249. data/ext/bamtools/src/toolkit/cmake_install.cmake +52 -0
  250. data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/CXX.includecache +250 -0
  251. data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/DependInfo.cmake +29 -0
  252. data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/bamtools_fasta.cpp.o +0 -0
  253. data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/bamtools_options.cpp.o +0 -0
  254. data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/bamtools_pileup_engine.cpp.o +0 -0
  255. data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/bamtools_utilities.cpp.o +0 -0
  256. data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/build.make +184 -0
  257. data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/cmake_clean.cmake +14 -0
  258. data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/depend.internal +40 -0
  259. data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/depend.make +40 -0
  260. data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/flags.make +8 -0
  261. data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/link.txt +1 -0
  262. data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/progress.make +5 -0
  263. data/ext/bamtools/src/utils/CMakeFiles/CMakeDirectoryInformation.cmake +23 -0
  264. data/ext/bamtools/src/utils/CMakeFiles/progress.marks +1 -0
  265. data/ext/bamtools/src/utils/CMakeLists.txt +30 -0
  266. data/ext/bamtools/src/utils/Makefile +290 -0
  267. data/ext/bamtools/src/utils/bamtools_fasta.cpp +632 -0
  268. data/ext/bamtools/src/utils/bamtools_fasta.h +47 -0
  269. data/ext/bamtools/src/utils/bamtools_filter_engine.h +552 -0
  270. data/ext/bamtools/src/utils/bamtools_filter_properties.h +195 -0
  271. data/ext/bamtools/src/utils/bamtools_filter_ruleparser.h +319 -0
  272. data/ext/bamtools/src/utils/bamtools_options.cpp +287 -0
  273. data/ext/bamtools/src/utils/bamtools_options.h +213 -0
  274. data/ext/bamtools/src/utils/bamtools_pileup_engine.cpp +327 -0
  275. data/ext/bamtools/src/utils/bamtools_pileup_engine.h +94 -0
  276. data/ext/bamtools/src/utils/bamtools_utilities.cpp +333 -0
  277. data/ext/bamtools/src/utils/bamtools_utilities.h +67 -0
  278. data/ext/bamtools/src/utils/bamtools_variant.h +128 -0
  279. data/ext/bamtools/src/utils/cmake_install.cmake +29 -0
  280. data/ext/bamtools/src/utils/utils_global.h +21 -0
  281. data/lib/ngs_server/version.rb +3 -0
  282. data/lib/ngs_server.rb +3 -0
  283. data/ngs_server.gemspec +23 -0
  284. metadata +339 -0
@@ -0,0 +1,632 @@
1
+ // ***************************************************************************
2
+ // bamtools_fasta.cpp (c) 2010 Derek Barnett, Erik Garrison
3
+ // Marth Lab, Department of Biology, Boston College
4
+ // ---------------------------------------------------------------------------
5
+ // Last modified: 13 July 2010
6
+ // ---------------------------------------------------------------------------
7
+ // Provides FASTA reading/indexing functionality.
8
+ // ***************************************************************************
9
+
10
+ #include <utils/bamtools_fasta.h>
11
+ using namespace BamTools;
12
+
13
+ #include <cstdio>
14
+ #include <cstdlib>
15
+ #include <cstring>
16
+ #include <fstream>
17
+ #include <iostream>
18
+ #include <sstream>
19
+ #include <vector>
20
+ using namespace std;
21
+
22
+ #ifdef _MSC_VER
23
+ #define ftello _ftelli64
24
+ #define fseeko _fseeki64
25
+ #endif
26
+
27
+ struct Fasta::FastaPrivate {
28
+
29
+ struct FastaIndexData {
30
+ string Name;
31
+ int32_t Length;
32
+ int64_t Offset;
33
+ int32_t LineLength;
34
+ int32_t ByteLength; // LineLength + newline character(s) - varies on OS where file was generated
35
+ };
36
+
37
+ // data members
38
+ FILE* Stream;
39
+ bool IsOpen;
40
+
41
+ FILE* IndexStream;
42
+ bool HasIndex;
43
+ bool IsIndexOpen;
44
+
45
+ vector<FastaIndexData> Index;
46
+
47
+ // ctor
48
+ FastaPrivate(void);
49
+ ~FastaPrivate(void);
50
+
51
+ // 'public' API methods
52
+ bool Close(void);
53
+ bool CreateIndex(const string& indexFilename);
54
+ bool GetBase(const int& refId, const int& position, char& base);
55
+ bool GetSequence(const int& refId, const int& start, const int& stop, string& sequence);
56
+ bool Open(const string& filename, const string& indexFilename);
57
+
58
+ // internal methods
59
+ private:
60
+ void Chomp(char* sequence);
61
+ bool GetNameFromHeader(const string& header, string& name);
62
+ bool GetNextHeader(string& header);
63
+ bool GetNextSequence(string& sequence);
64
+ bool LoadIndexData(void);
65
+ bool Rewind(void);
66
+ bool WriteIndexData(void);
67
+ };
68
+
69
+ Fasta::FastaPrivate::FastaPrivate(void)
70
+ : IsOpen(false)
71
+ , HasIndex(false)
72
+ , IsIndexOpen(false)
73
+ { }
74
+
75
+ Fasta::FastaPrivate::~FastaPrivate(void) {
76
+ Close();
77
+ }
78
+
79
+ // remove any trailing newlines
80
+ void Fasta::FastaPrivate::Chomp(char* sequence) {
81
+
82
+ static const int CHAR_LF = 10;
83
+ static const int CHAR_CR = 13;
84
+
85
+ size_t seqLength = strlen(sequence);
86
+ if ( seqLength == 0 ) return;
87
+ --seqLength; // ignore null terminator
88
+
89
+ while ( sequence[seqLength] == CHAR_LF ||
90
+ sequence[seqLength] == CHAR_CR
91
+ )
92
+ {
93
+ sequence[seqLength] = 0;
94
+ --seqLength;
95
+ if (seqLength < 0)
96
+ break;
97
+ }
98
+ }
99
+
100
+ bool Fasta::FastaPrivate::Close(void) {
101
+
102
+ // close fasta file
103
+ if ( IsOpen ) {
104
+ fclose(Stream);
105
+ IsOpen = false;
106
+ }
107
+
108
+ // close index file
109
+ if ( HasIndex && IsIndexOpen ) {
110
+ fclose(IndexStream);
111
+ HasIndex = false;
112
+ IsIndexOpen = false;
113
+ }
114
+
115
+ // return success
116
+ return true;
117
+ }
118
+
119
+ bool Fasta::FastaPrivate::CreateIndex(const string& indexFilename) {
120
+
121
+ // check that file is open
122
+ if ( !IsOpen ) {
123
+ cerr << "FASTA error : cannot create index, FASTA file not open" << endl;
124
+ return false;
125
+ }
126
+
127
+ // rewind FASTA file
128
+ if ( !Rewind() ) {
129
+ cerr << "FASTA error : could not rewind FASTA file" << endl;
130
+ return false;
131
+ }
132
+
133
+ // clear out prior index data
134
+ Index.clear();
135
+
136
+ // -------------------------------------------
137
+ // calculate lineLength & byteLength
138
+
139
+ int lineLength = 0;
140
+ int byteLength = 0;
141
+
142
+ // skip over header
143
+ char buffer[1024];
144
+ if ( fgets(buffer, 1024, Stream) == 0 ) {
145
+ cerr << "FASTA error : could not read from file" << endl;
146
+ return false;
147
+ }
148
+ if ( feof(Stream) ) return false;
149
+ if ( buffer[0] != '>' ) {
150
+ cerr << "FASTA error : expected header ('>'), instead : " << buffer[0] << endl;
151
+ return false;
152
+ }
153
+
154
+ // read in first line of sequence
155
+ char c = fgetc(Stream);
156
+ while ( (c >= 0) && (c != '\n') ) {
157
+ ++byteLength;
158
+ if (isgraph(c)) ++lineLength;
159
+ c = fgetc(Stream);
160
+ }
161
+ ++byteLength; // store newline
162
+
163
+ // rewind FASTA file
164
+ if ( !Rewind() ) {
165
+ cerr << "FASTA error : could not rewind FASTA file" << endl;
166
+ return false;
167
+ }
168
+
169
+ // iterate through fasta entries
170
+ int currentId = 0;
171
+ string header = "";
172
+ string sequence = "";
173
+ while ( GetNextHeader(header) ) {
174
+
175
+ // ---------------------------
176
+ // build index entry data
177
+ FastaIndexData data;
178
+
179
+ // store file offset of beginning of DNA sequence (after header)
180
+ data.Offset = ftello(Stream);
181
+
182
+ // parse header, store sequence name in data.Name
183
+ if ( !GetNameFromHeader(header, data.Name) ) {
184
+ cerr << "FASTA error : could not parse read name from FASTA header" << endl;
185
+ return false;
186
+ }
187
+
188
+ // retrieve FASTA sequence
189
+ if ( !GetNextSequence(sequence) ) {
190
+ cerr << "FASTA error : could not read in next sequence from FASTA file" << endl;
191
+ return false;
192
+ }
193
+
194
+ // store sequence length & line/byte lengths
195
+ data.Length = sequence.length();
196
+ data.LineLength = lineLength;
197
+ data.ByteLength = byteLength;
198
+
199
+ // store index entry
200
+ Index.push_back(data);
201
+
202
+ // update ref Id
203
+ ++currentId;
204
+ }
205
+
206
+ // open index file
207
+ if ( !indexFilename.empty() ) {
208
+ IndexStream = fopen(indexFilename.c_str(), "wb");
209
+ if ( !IndexStream ) {
210
+ cerr << "FASTA error : Could not open " << indexFilename << " for writing." << endl;
211
+ return false;
212
+ }
213
+ IsIndexOpen = true;
214
+ }
215
+
216
+ // write index data
217
+ if ( !WriteIndexData() ) return false;
218
+ HasIndex = true;
219
+
220
+ // close index file
221
+ fclose(IndexStream);
222
+ IsIndexOpen = false;
223
+
224
+ // return succes status
225
+ return true;
226
+ }
227
+
228
+ bool Fasta::FastaPrivate::GetBase(const int& refId, const int& position, char& base) {
229
+
230
+ // make sure FASTA file is open
231
+ if ( !IsOpen ) {
232
+ cerr << "FASTA error : file not open for reading" << endl;
233
+ return false;
234
+ }
235
+
236
+ // use index if available
237
+ if ( HasIndex && !Index.empty() ) {
238
+
239
+ // validate reference id
240
+ if ( (refId < 0) || (refId >= (int)Index.size()) ) {
241
+ cerr << "FASTA error: invalid refId specified: " << refId << endl;
242
+ return false;
243
+ }
244
+
245
+ // retrieve reference index data
246
+ const FastaIndexData& referenceData = Index.at(refId);
247
+
248
+ // validate position
249
+ if ( (position < 0) || (position > referenceData.Length) ) {
250
+ cerr << "FASTA error: invalid position specified: " << position << endl;
251
+ return false;
252
+ }
253
+
254
+ // seek to beginning of sequence data
255
+ if ( fseeko(Stream, referenceData.Offset, SEEK_SET) != 0 ) {
256
+ cerr << "FASTA error : could not sek in file" << endl;
257
+ return false;
258
+ }
259
+
260
+ // retrieve sequence
261
+ string sequence = "";
262
+ if ( !GetNextSequence(sequence) ) {
263
+ cerr << "FASTA error : could not retrieve base from FASTA file" << endl;
264
+ return false;
265
+ }
266
+
267
+ // set base & return success
268
+ base = sequence.at(position);
269
+ return true;
270
+ }
271
+
272
+ // else plow through sequentially
273
+ else {
274
+
275
+ // rewind FASTA file
276
+ if ( !Rewind() ) {
277
+ cerr << "FASTA error : could not rewind FASTA file" << endl;
278
+ return false;
279
+ }
280
+
281
+ // iterate through fasta entries
282
+ int currentId = 0;
283
+ string header = "";
284
+ string sequence = "";
285
+
286
+ // get first entry
287
+ GetNextHeader(header);
288
+ GetNextSequence(sequence);
289
+
290
+ while ( currentId != refId ) {
291
+ GetNextHeader(header);
292
+ GetNextSequence(sequence);
293
+ ++currentId;
294
+ }
295
+
296
+ // get desired base from sequence
297
+ // TODO: error reporting on invalid position
298
+ if ( currentId == refId && (sequence.length() >= (size_t)position) ) {
299
+ base = sequence.at(position);
300
+ return true;
301
+ }
302
+
303
+ // could not get sequence
304
+ return false;
305
+ }
306
+
307
+ // return success
308
+ return true;
309
+ }
310
+
311
+ bool Fasta::FastaPrivate::GetNameFromHeader(const string& header, string& name) {
312
+
313
+ // get rid of the leading greater than sign
314
+ string s = header.substr(1);
315
+
316
+ // extract the first non-whitespace segment
317
+ char* pName = (char*)s.data();
318
+ unsigned int nameLen = (unsigned int)s.size();
319
+
320
+ unsigned int start = 0;
321
+ while ( (pName[start] == 32) || (pName[start] == 9) || (pName[start] == 10) || (pName[start] == 13) ) {
322
+ start++;
323
+ if ( start == nameLen )
324
+ break;
325
+ }
326
+
327
+ unsigned int stop = start;
328
+ if ( stop < nameLen ) {
329
+ while( (pName[stop] != 32) && (pName[stop] != 9) && (pName[stop] != 10) && (pName[stop] != 13) ) {
330
+ stop++;
331
+ if ( stop == nameLen )
332
+ break;
333
+ }
334
+ }
335
+
336
+ if ( start == stop ) {
337
+ cerr << "FASTA error : could not parse read name from FASTA header" << endl;
338
+ return false;
339
+ }
340
+
341
+ name = s.substr(start, stop - start).c_str();
342
+ return true;
343
+ }
344
+
345
+ bool Fasta::FastaPrivate::GetNextHeader(string& header) {
346
+
347
+ // validate input stream
348
+ if ( !IsOpen || feof(Stream) )
349
+ return false;
350
+
351
+ // read in header line
352
+ char buffer[1024];
353
+ if ( fgets(buffer, 1024, Stream) == 0 ) {
354
+ cerr << "FASTA error : could not read from file" << endl;
355
+ return false;
356
+ }
357
+
358
+ // make sure it's a FASTA header
359
+ if ( buffer[0] != '>' ) {
360
+ cerr << "FASTA error : expected header ('>'), instead : " << buffer[0] << endl;
361
+ return false;
362
+ }
363
+
364
+ // import buffer contents to header string
365
+ stringstream headerBuffer("");
366
+ headerBuffer << buffer;
367
+ header = headerBuffer.str();
368
+
369
+ // return success
370
+ return true;
371
+ }
372
+
373
+ bool Fasta::FastaPrivate::GetNextSequence(string& sequence) {
374
+
375
+ // validate input stream
376
+ if ( !IsOpen || feof(Stream) )
377
+ return false;
378
+
379
+ // read in sequence
380
+ char buffer[1024];
381
+ ostringstream seqBuffer("");
382
+ while(true) {
383
+
384
+ char ch = fgetc(Stream);
385
+ ungetc(ch, Stream);
386
+ if( (ch == '>') || feof(Stream) )
387
+ break;
388
+
389
+ if ( fgets(buffer, 1024, Stream) == 0 ) {
390
+ cerr << "FASTA error : could not read from file" << endl;
391
+ return false;
392
+ }
393
+
394
+ Chomp(buffer);
395
+ seqBuffer << buffer;
396
+ }
397
+
398
+ // import buffer contents to sequence string
399
+ sequence = seqBuffer.str();
400
+
401
+ // return success
402
+ return true;
403
+ }
404
+
405
+ bool Fasta::FastaPrivate::GetSequence(const int& refId, const int& start, const int& stop, string& sequence) {
406
+
407
+ // make sure FASTA file is open
408
+ if ( !IsOpen ) {
409
+ cerr << "FASTA error : file not open for reading" << endl;
410
+ return false;
411
+ }
412
+
413
+ // use index if available
414
+ if ( HasIndex && !Index.empty() ) {
415
+
416
+ // validate reference id
417
+ if ( (refId < 0) || (refId >= (int)Index.size()) ) {
418
+ cerr << "FASTA error: invalid refId specified: " << refId << endl;
419
+ return false;
420
+ }
421
+
422
+ // retrieve reference index data
423
+ const FastaIndexData& referenceData = Index.at(refId);
424
+
425
+ // validate stop position
426
+ if ( (start < 0) || (start > stop) || (stop > referenceData.Length) ) {
427
+ cerr << "FASTA error: invalid start/stop positions specified: " << start << ", " << stop << endl;
428
+ return false;
429
+ }
430
+
431
+ // seek to beginning of sequence data
432
+ if ( fseeko(Stream, referenceData.Offset, SEEK_SET) != 0 ) {
433
+ cerr << "FASTA error : could not sek in file" << endl;
434
+ return false;
435
+ }
436
+
437
+ // retrieve full sequence
438
+ string fullSequence = "";
439
+ if ( !GetNextSequence(fullSequence) ) {
440
+ cerr << "FASTA error : could not retrieve sequence from FASTA file" << endl;
441
+ return false;
442
+ }
443
+
444
+ // set sub-sequence & return success
445
+ const int seqLength = (stop - start) + 1;
446
+ sequence = fullSequence.substr(start, seqLength);
447
+ return true;
448
+ }
449
+
450
+ // else plow through sequentially
451
+ else {
452
+
453
+ // rewind FASTA file
454
+ if ( !Rewind() ) {
455
+ cerr << "FASTA error : could not rewind FASTA file" << endl;
456
+ return false;
457
+ }
458
+
459
+ // iterate through fasta entries
460
+ int currentId = 0;
461
+ string header = "";
462
+ string fullSequence = "";
463
+
464
+ // get first entry
465
+ GetNextHeader(header);
466
+ GetNextSequence(fullSequence);
467
+
468
+ while ( currentId != refId ) {
469
+ GetNextHeader(header);
470
+ GetNextSequence(fullSequence);
471
+ ++currentId;
472
+ }
473
+
474
+ // get desired substring from sequence
475
+ // TODO: error reporting on invalid start/stop positions
476
+ if ( currentId == refId && (fullSequence.length() >= (size_t)stop) ) {
477
+ const int seqLength = (stop - start) + 1;
478
+ sequence = fullSequence.substr(start, seqLength);
479
+ return true;
480
+ }
481
+
482
+ // could not get sequence
483
+ return false;
484
+ }
485
+
486
+ // return success
487
+ return true;
488
+ }
489
+
490
+ bool Fasta::FastaPrivate::LoadIndexData(void) {
491
+
492
+ // skip if no index file available
493
+ if ( !IsIndexOpen ) return false;
494
+
495
+ // clear any prior index data
496
+ Index.clear();
497
+
498
+ char buffer[1024];
499
+ stringstream indexBuffer;
500
+ while ( true ) {
501
+
502
+ char c = fgetc(IndexStream);
503
+ if ( (c == '\n') || feof(IndexStream) ) break;
504
+ ungetc(c, IndexStream);
505
+
506
+ // clear index buffer
507
+ indexBuffer.str("");
508
+
509
+ // read line from index file
510
+ if ( fgets(buffer, 1024, IndexStream) == 0 ) {
511
+ cerr << "FASTA LoadIndexData() error : could not read from index file" << endl;
512
+ HasIndex = false;
513
+ return false;
514
+ }
515
+
516
+ // store line in indexBuffer
517
+ indexBuffer << buffer;
518
+
519
+ // retrieve fasta index data from line
520
+ FastaIndexData data;
521
+ indexBuffer >> data.Name;
522
+ indexBuffer >> data.Length;
523
+ indexBuffer >> data.Offset;
524
+ indexBuffer >> data.LineLength;
525
+ indexBuffer >> data.ByteLength;
526
+
527
+ // store index entry
528
+ Index.push_back(data);
529
+ }
530
+
531
+ return true;
532
+ }
533
+
534
+ bool Fasta::FastaPrivate::Open(const string& filename, const string& indexFilename) {
535
+
536
+ bool success = true;
537
+
538
+ // open FASTA filename
539
+ Stream = fopen(filename.c_str(), "rb");
540
+ if ( !Stream ) {
541
+ cerr << "FASTA error: Could not open " << filename << " for reading" << endl;
542
+ return false;
543
+ }
544
+ IsOpen = true;
545
+ success &= IsOpen;
546
+
547
+ // open index file if it exists
548
+ if ( !indexFilename.empty() ) {
549
+ IndexStream = fopen(indexFilename.c_str(), "rb");
550
+ if ( !IndexStream ) {
551
+ cerr << "FASTA error : Could not open " << indexFilename << " for reading." << endl;
552
+ return false;
553
+ }
554
+ IsIndexOpen = true;
555
+ success &= IsIndexOpen;
556
+
557
+ // attempt to load index data
558
+ HasIndex = LoadIndexData();
559
+ success &= HasIndex;
560
+ }
561
+
562
+ // return success status
563
+ return success;
564
+ }
565
+
566
+ bool Fasta::FastaPrivate::Rewind(void) {
567
+ if ( !IsOpen ) return false;
568
+ return ( fseeko(Stream, 0, SEEK_SET) == 0 );
569
+ }
570
+
571
+ bool Fasta::FastaPrivate::WriteIndexData(void) {
572
+
573
+ // skip if no index file available
574
+ if ( !IsIndexOpen ) return false;
575
+
576
+ // iterate over index entries
577
+ bool success = true;
578
+ stringstream indexBuffer;
579
+ vector<FastaIndexData>::const_iterator indexIter = Index.begin();
580
+ vector<FastaIndexData>::const_iterator indexEnd = Index.end();
581
+ for ( ; indexIter != indexEnd; ++indexIter ) {
582
+
583
+ // clear stream
584
+ indexBuffer.str("");
585
+
586
+ // write data to stream
587
+ const FastaIndexData& data = (*indexIter);
588
+ indexBuffer << data.Name << "\t"
589
+ << data.Length << "\t"
590
+ << data.Offset << "\t"
591
+ << data.LineLength << "\t"
592
+ << data.ByteLength << endl;
593
+
594
+ // write stream to file
595
+ success &= ( fputs(indexBuffer.str().c_str(), IndexStream) >= 0 );
596
+ }
597
+
598
+ // return success status
599
+ return success;
600
+ }
601
+
602
+ // --------------------------------
603
+ // Fasta implementation
604
+
605
+ Fasta::Fasta(void) {
606
+ d = new FastaPrivate;
607
+ }
608
+
609
+ Fasta::~Fasta(void) {
610
+ delete d;
611
+ d = 0;
612
+ }
613
+
614
+ bool Fasta::Close(void) {
615
+ return d->Close();
616
+ }
617
+
618
+ bool Fasta::CreateIndex(const string& indexFilename) {
619
+ return d->CreateIndex(indexFilename);
620
+ }
621
+
622
+ bool Fasta::GetBase(const int& refId, const int& position, char& base) {
623
+ return d->GetBase(refId, position, base);
624
+ }
625
+
626
+ bool Fasta::GetSequence(const int& refId, const int& start, const int& stop, string& sequence) {
627
+ return d->GetSequence(refId, start, stop, sequence);
628
+ }
629
+
630
+ bool Fasta::Open(const string& filename, const string& indexFilename) {
631
+ return d->Open(filename, indexFilename);
632
+ }
@@ -0,0 +1,47 @@
1
+ // ***************************************************************************
2
+ // bamtools_fasta.h (c) 2010 Derek Barnett, Erik Garrison
3
+ // Marth Lab, Department of Biology, Boston College
4
+ // ---------------------------------------------------------------------------
5
+ // Last modified: 19 November 2010
6
+ // ---------------------------------------------------------------------------
7
+ // Provides FASTA reading/indexing functionality.
8
+ // ***************************************************************************
9
+
10
+ #ifndef BAMTOOLS_FASTA_H
11
+ #define BAMTOOLS_FASTA_H
12
+
13
+ #include <utils/utils_global.h>
14
+ #include <string>
15
+
16
+ namespace BamTools {
17
+
18
+ class UTILS_EXPORT Fasta {
19
+
20
+ // ctor & dtor
21
+ public:
22
+ Fasta(void);
23
+ ~Fasta(void);
24
+
25
+ // file-handling methods
26
+ public:
27
+ bool Close(void);
28
+ bool Open(const std::string& filename, const std::string& indexFilename = "");
29
+
30
+ // sequence access methods
31
+ public:
32
+ bool GetBase(const int& refID, const int& position, char& base);
33
+ bool GetSequence(const int& refId, const int& start, const int& stop, std::string& sequence);
34
+
35
+ // index-handling methods
36
+ public:
37
+ bool CreateIndex(const std::string& indexFilename);
38
+
39
+ // internal implementation
40
+ private:
41
+ struct FastaPrivate;
42
+ FastaPrivate* d;
43
+ };
44
+
45
+ } // BAMTOOLS_FASTA_H
46
+
47
+ #endif // BAMTOOLS_FASTA_H