ngs_server 0.1

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 (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