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,95 @@
1
+ // ***************************************************************************
2
+ // SamConstants.h (c) 2010 Derek Barnett
3
+ // Marth Lab, Department of Biology, Boston College
4
+ // ---------------------------------------------------------------------------
5
+ // Last modified: 19 April 2011 (DB)
6
+ // ---------------------------------------------------------------------------
7
+ // Provides constants for SAM header
8
+ // ***************************************************************************
9
+
10
+ #ifndef SAM_CONSTANTS_H
11
+ #define SAM_CONSTANTS_H
12
+
13
+ #include <api/api_global.h>
14
+ #include <string>
15
+
16
+ namespace BamTools {
17
+ namespace Constants {
18
+
19
+ // basic char constants used in SAM format
20
+ const char SAM_COLON = ':';
21
+ const char SAM_EQUAL = '=';
22
+ const char SAM_PERIOD = '.';
23
+ const char SAM_STAR = '*';
24
+ const char SAM_TAB = '\t';
25
+ const std::string SAM_DIGITS = "0123456789";
26
+
27
+ // HD entries
28
+ const std::string SAM_HD_BEGIN_TOKEN = "@HD";
29
+ const std::string SAM_HD_VERSION_TAG = "VN";
30
+ const std::string SAM_HD_SORTORDER_TAG = "SO";
31
+ const std::string SAM_HD_GROUPORDER_TAG = "GO";
32
+
33
+ // SQ entries
34
+ const std::string SAM_SQ_BEGIN_TOKEN = "@SQ";
35
+ const std::string SAM_SQ_ASSEMBLYID_TAG = "AS";
36
+ const std::string SAM_SQ_CHECKSUM_TAG = "M5";
37
+ const std::string SAM_SQ_LENGTH_TAG = "LN";
38
+ const std::string SAM_SQ_NAME_TAG = "SN";
39
+ const std::string SAM_SQ_SPECIES_TAG = "SP";
40
+ const std::string SAM_SQ_URI_TAG = "UR";
41
+
42
+ // RG entries
43
+ const std::string SAM_RG_BEGIN_TOKEN = "@RG";
44
+ const std::string SAM_RG_DESCRIPTION_TAG = "DS";
45
+ const std::string SAM_RG_FLOWORDER_TAG = "FO";
46
+ const std::string SAM_RG_ID_TAG = "ID";
47
+ const std::string SAM_RG_KEYSEQUENCE_TAG = "KS";
48
+ const std::string SAM_RG_LIBRARY_TAG = "LB";
49
+ const std::string SAM_RG_PLATFORMUNIT_TAG = "PU";
50
+ const std::string SAM_RG_PREDICTEDINSERTSIZE_TAG = "PI";
51
+ const std::string SAM_RG_PRODUCTIONDATE_TAG = "DT";
52
+ const std::string SAM_RG_PROGRAM_TAG = "PG";
53
+ const std::string SAM_RG_SAMPLE_TAG = "SM";
54
+ const std::string SAM_RG_SEQCENTER_TAG = "CN";
55
+ const std::string SAM_RG_SEQTECHNOLOGY_TAG = "PL";
56
+
57
+ // PG entries
58
+ const std::string SAM_PG_BEGIN_TOKEN = "@PG";
59
+ const std::string SAM_PG_COMMANDLINE_TAG = "CL";
60
+ const std::string SAM_PG_ID_TAG = "ID";
61
+ const std::string SAM_PG_NAME_TAG = "PN";
62
+ const std::string SAM_PG_PREVIOUSPROGRAM_TAG = "PP";
63
+ const std::string SAM_PG_VERSION_TAG = "VN";
64
+
65
+ // CO entries
66
+ const std::string SAM_CO_BEGIN_TOKEN = "@CO";
67
+
68
+ // HD:SO values
69
+ const std::string SAM_HD_SORTORDER_COORDINATE = "coordinate";
70
+ const std::string SAM_HD_SORTORDER_QUERYNAME = "queryname";
71
+ const std::string SAM_HD_SORTORDER_UNKNOWN = "unknown";
72
+ const std::string SAM_HD_SORTORDER_UNSORTED = "unsorted";
73
+
74
+ // HD:GO values
75
+ const std::string SAM_HD_GROUPORDER_NONE = "none";
76
+ const std::string SAM_HD_GROUPORDER_QUERY = "query";
77
+ const std::string SAM_HD_GROUPORDER_REFERENCE = "reference";
78
+
79
+ // SQ:LN values
80
+ const unsigned int SAM_SQ_LENGTH_MIN = 1;
81
+ const unsigned int SAM_SQ_LENGTH_MAX = 536870911; // 2^29 - 1
82
+
83
+ // RG:PL values
84
+ const std::string SAM_RG_SEQTECHNOLOGY_CAPILLARY = "CAPILLARY";
85
+ const std::string SAM_RG_SEQTECHNOLOGY_HELICOS = "HELICOS";
86
+ const std::string SAM_RG_SEQTECHNOLOGY_ILLUMINA = "ILLUMINA";
87
+ const std::string SAM_RG_SEQTECHNOLOGY_IONTORRENT = "IONTORRENT";
88
+ const std::string SAM_RG_SEQTECHNOLOGY_LS454 = "LS454";
89
+ const std::string SAM_RG_SEQTECHNOLOGY_PACBIO = "PACBIO";
90
+ const std::string SAM_RG_SEQTECHNOLOGY_SOLID = "SOLID";
91
+
92
+ } // namespace Constants
93
+ } // namespace BamTools
94
+
95
+ #endif // SAM_CONSTANTS_H
@@ -0,0 +1,184 @@
1
+ // ***************************************************************************
2
+ // SamHeader.cpp (c) 2010 Derek Barnett
3
+ // Marth Lab, Department of Biology, Boston College
4
+ // ---------------------------------------------------------------------------
5
+ // Last modified: 19 April 2011 (DB)
6
+ // ---------------------------------------------------------------------------
7
+ // Provides direct read/write access to the SAM header data fields.
8
+ // ***************************************************************************
9
+
10
+ #include <api/SamConstants.h>
11
+ #include <api/SamHeader.h>
12
+ #include <api/internal/SamFormatParser_p.h>
13
+ #include <api/internal/SamFormatPrinter_p.h>
14
+ #include <api/internal/SamHeaderValidator_p.h>
15
+ using namespace BamTools;
16
+ using namespace BamTools::Internal;
17
+ using namespace std;
18
+
19
+ /*! \struct BamTools::SamHeader
20
+ \brief Represents the SAM-formatted text header that is part of the BAM file header.
21
+
22
+ Provides direct read/write access to the SAM header data fields.
23
+
24
+ \sa \samSpecURL
25
+ */
26
+ /*! \var SamHeader::Version
27
+ \brief corresponds to \@HD VN:\<Version\>
28
+
29
+ Required for valid SAM header, if @HD record is present.
30
+ */
31
+ /*! \var SamHeader::SortOrder
32
+ \brief corresponds to \@HD SO:\<SortOrder\>
33
+ */
34
+ /*! \var SamHeader::GroupOrder
35
+ \brief corresponds to \@HD GO:\<GroupOrder\>
36
+ */
37
+ /*! \var SamHeader::Sequences
38
+ \brief corresponds to \@SQ entries
39
+ \sa SamSequence, SamSequenceDictionary
40
+ */
41
+ /*! \var SamHeader::ReadGroups
42
+ \brief corresponds to \@RG entries
43
+ \sa SamReadGroup, SamReadGroupDictionary
44
+ */
45
+ /*! \var SamHeader::ProgramName
46
+ \brief corresponds to \@PG ID:\<ProgramName\>
47
+ */
48
+ /*! \var SamHeader::ProgramVersion
49
+ \brief corresponds to \@PG VN:\<ProgramVersion\>
50
+ */
51
+ /*! \var SamHeader::ProgramCommandLine
52
+ \brief corresponds to \@PG CL:\<ProgramCommandLine\>
53
+ */
54
+ /*! \var SamHeader::Comments
55
+ \brief corresponds to \@CO entries
56
+ */
57
+
58
+ /*! \fn SamHeader::SamHeader(const std::string& headerText = "")
59
+ \brief constructor
60
+ */
61
+ SamHeader::SamHeader(const std::string& headerText)
62
+ : Version("")
63
+ , SortOrder(Constants::SAM_HD_SORTORDER_UNKNOWN)
64
+ , GroupOrder("")
65
+ {
66
+ SamFormatParser parser(*this);
67
+ parser.Parse(headerText);
68
+ }
69
+
70
+ /*! \fn SamHeader::SamHeader(const SamHeader& other)
71
+ \brief copy constructor
72
+ */
73
+ SamHeader::SamHeader(const SamHeader& other)
74
+ : Version(other.Version)
75
+ , SortOrder(other.SortOrder)
76
+ , GroupOrder(other.GroupOrder)
77
+ , Sequences(other.Sequences)
78
+ , ReadGroups(other.ReadGroups)
79
+ , Programs(other.Programs)
80
+ { }
81
+
82
+ /*! \fn SamHeader::~SamHeader(void)
83
+ \brief destructor
84
+ */
85
+ SamHeader::~SamHeader(void) { }
86
+
87
+ /*! \fn void SamHeader::Clear(void)
88
+ \brief Clears all header contents.
89
+ */
90
+ void SamHeader::Clear(void) {
91
+ Version.clear();
92
+ SortOrder.clear();
93
+ GroupOrder.clear();
94
+ Sequences.Clear();
95
+ ReadGroups.Clear();
96
+ Programs.Clear();
97
+ Comments.clear();
98
+ }
99
+
100
+ /*! \fn bool SamHeader::HasVersion(void) const
101
+ \brief Returns \c true if header contains \@HD ID:\<Version\>
102
+ */
103
+ bool SamHeader::HasVersion(void) const {
104
+ return (!Version.empty());
105
+ }
106
+
107
+ /*! \fn bool SamHeader::HasSortOrder(void) const
108
+ \brief Returns \c true if header contains \@HD SO:\<SortOrder\>
109
+ */
110
+ bool SamHeader::HasSortOrder(void) const {
111
+ return (!SortOrder.empty());
112
+ }
113
+
114
+ /*! \fn bool SamHeader::HasGroupOrder(void) const
115
+ \brief Returns \c true if header contains \@HD GO:\<GroupOrder\>
116
+ */
117
+ bool SamHeader::HasGroupOrder(void) const {
118
+ return (!GroupOrder.empty());
119
+ }
120
+
121
+ /*! \fn bool SamHeader::HasSequences(void) const
122
+ \brief Returns \c true if header contains any \@SQ entries
123
+ */
124
+ bool SamHeader::HasSequences(void) const {
125
+ return (!Sequences.IsEmpty());
126
+ }
127
+
128
+ /*! \fn bool SamHeader::HasReadGroups(void) const
129
+ \brief Returns \c true if header contains any \@RG entries
130
+ */
131
+ bool SamHeader::HasReadGroups(void) const {
132
+ return (!ReadGroups.IsEmpty());
133
+ }
134
+
135
+ /*! \fn bool SamHeader::HasPrograms(void) const
136
+ \brief Returns \c true if header contains any \@PG entries
137
+ */
138
+ bool SamHeader::HasPrograms(void) const {
139
+ return (!Programs.IsEmpty());
140
+ }
141
+
142
+ /*! \fn bool SamHeader::HasComments(void) const
143
+ \brief Returns \c true if header contains any \@CO entries
144
+ */
145
+ bool SamHeader::HasComments(void) const {
146
+ return (!Comments.empty());
147
+ }
148
+
149
+ /*! \fn bool SamHeader::IsValid(bool verbose = false) const
150
+ \brief Checks header contents for required data and proper formatting.
151
+ \param verbose If set to true, validation errors & warnings will be printed to stderr.
152
+ Otherwise, output is suppressed and only validation check occurs.
153
+ \return \c true if SAM header is well-formed
154
+ */
155
+ bool SamHeader::IsValid(bool verbose) const {
156
+ SamHeaderValidator validator(*this);
157
+ return validator.Validate(verbose);
158
+ }
159
+
160
+ /*! \fn void SamHeader::SetHeaderText(const std::string& headerText)
161
+ \brief Replaces header contents with \a headerText.
162
+ \param headerText SAM formatted-text that will be parsed into data fields
163
+ */
164
+ void SamHeader::SetHeaderText(const std::string& headerText) {
165
+
166
+ // clear prior data
167
+ Clear();
168
+
169
+ // parse header text into data
170
+ SamFormatParser parser(*this);
171
+ parser.Parse(headerText);
172
+ }
173
+
174
+ /*! \fn std::string SamHeader::ToString(void) const
175
+ \brief Converts data fields to SAM-formatted text.
176
+
177
+ Applies any local modifications made since creating this object or calling SetHeaderText().
178
+
179
+ \return SAM-formatted header text
180
+ */
181
+ string SamHeader::ToString(void) const {
182
+ SamFormatPrinter printer(*this);
183
+ return printer.ToString();
184
+ }
@@ -0,0 +1,68 @@
1
+ // ***************************************************************************
2
+ // SamHeader.h (c) 2010 Derek Barnett
3
+ // Marth Lab, Department of Biology, Boston College
4
+ // ---------------------------------------------------------------------------
5
+ // Last modified: 18 April 2011 (DB)
6
+ // ---------------------------------------------------------------------------
7
+ // Provides direct read/write access to the SAM header data fields.
8
+ // ***************************************************************************
9
+
10
+ #ifndef SAM_HEADER_H
11
+ #define SAM_HEADER_H
12
+
13
+ #include <api/api_global.h>
14
+ #include <api/SamProgramChain.h>
15
+ #include <api/SamReadGroupDictionary.h>
16
+ #include <api/SamSequenceDictionary.h>
17
+ #include <string>
18
+ #include <vector>
19
+
20
+ namespace BamTools {
21
+
22
+ struct API_EXPORT SamHeader {
23
+
24
+ // ctor & dtor
25
+ SamHeader(const std::string& headerText = "");
26
+ SamHeader(const SamHeader& other);
27
+ ~SamHeader(void);
28
+
29
+ // query/modify entire SamHeader
30
+ void Clear(void); // clears all header contents
31
+ bool IsValid(bool verbose = false) const; // returns true if SAM header is well-formed
32
+ void SetHeaderText(const std::string& headerText); // replaces data fields with contents of SAM-formatted text
33
+ std::string ToString(void) const; // returns the printable, SAM-formatted header text
34
+
35
+ // convenience query methods
36
+ bool HasVersion(void) const; // returns true if header contains format version entry
37
+ bool HasSortOrder(void) const; // returns true if header contains sort order entry
38
+ bool HasGroupOrder(void) const; // returns true if header contains group order entry
39
+ bool HasSequences(void) const; // returns true if header contains any sequence entries
40
+ bool HasReadGroups(void) const; // returns true if header contains any read group entries
41
+ bool HasPrograms(void) const; // returns true if header contains any program record entries
42
+ bool HasComments(void) const; // returns true if header contains comments
43
+
44
+ // --------------
45
+ // data members
46
+ // --------------
47
+
48
+ // header metadata (@HD line)
49
+ std::string Version; // VN:<Version> *Required for valid SAM header, if @HD record is present*
50
+ std::string SortOrder; // SO:<SortOrder>
51
+ std::string GroupOrder; // GO:<GroupOrder>
52
+
53
+ // header sequences (@SQ entries)
54
+ SamSequenceDictionary Sequences;
55
+
56
+ // header read groups (@RG entries)
57
+ SamReadGroupDictionary ReadGroups;
58
+
59
+ // header program data (@PG entries)
60
+ SamProgramChain Programs;
61
+
62
+ // header comments (@CO entries)
63
+ std::vector<std::string> Comments;
64
+ };
65
+
66
+ } // namespace BamTools
67
+
68
+ #endif // SAM_HEADER_H
@@ -0,0 +1,139 @@
1
+ // ***************************************************************************
2
+ // SamProgram.cpp (c) 2011 Derek Barnett
3
+ // Marth Lab, Department of Biology, Boston College
4
+ // ---------------------------------------------------------------------------
5
+ // Last modified: 19 April 2011 (DB)
6
+ // ---------------------------------------------------------------------------
7
+ // Provides direct read/write access to the SAM header program records.
8
+ // ***************************************************************************
9
+
10
+ #include <api/SamProgram.h>
11
+ using namespace BamTools;
12
+ using namespace std;
13
+
14
+ /*! \struct BamTools::SamProgram
15
+ \brief Represents a SAM program record.
16
+
17
+ Provides direct read/write access to the SAM header program records.
18
+
19
+ \sa \samSpecURL
20
+ */
21
+ /*! \var SamProgram::CommandLine
22
+ \brief corresponds to \@PG CL:\<CommandLine\>
23
+ */
24
+ /*! \var SamProgram::ID
25
+ \brief corresponds to \@PG ID:\<ID\>
26
+
27
+ Required for valid SAM header.
28
+ */
29
+ /*! \var SamProgram::Name
30
+ \brief corresponds to \@PG PN:\<Name\>
31
+ */
32
+ /*! \var SamProgram::PreviousProgramID
33
+ \brief corresponds to \@PG PP:\<PreviousProgramID\>
34
+ */
35
+ /*! \var SamProgram::Version
36
+ \brief corresponds to \@PG VN:\<Version\>
37
+ */
38
+ /*! \var SamProgram::NextProgramID
39
+ \internal
40
+ Holds ID of the "next" program record in a SamProgramChain
41
+ */
42
+
43
+ /*! \fn SamProgram::SamProgram(void)
44
+ \brief default constructor
45
+ */
46
+ SamProgram::SamProgram(void)
47
+ : CommandLine("")
48
+ , ID("")
49
+ , Name("")
50
+ , PreviousProgramID("")
51
+ , Version("")
52
+ , NextProgramID("")
53
+ { }
54
+
55
+ /*! \fn SamProgram::SamProgram(const std::string& id)
56
+ \brief constructs program record with \a id
57
+
58
+ \param id desired program record ID
59
+ */
60
+ SamProgram::SamProgram(const std::string& id)
61
+ : CommandLine("")
62
+ , ID(id)
63
+ , Name("")
64
+ , PreviousProgramID("")
65
+ , Version("")
66
+ , NextProgramID("")
67
+ { }
68
+
69
+ /*! \fn SamProgram::SamProgram(const SamProgram& other)
70
+ \brief copy constructor
71
+ */
72
+ SamProgram::SamProgram(const SamProgram& other)
73
+ : CommandLine(other.CommandLine)
74
+ , ID(other.ID)
75
+ , Name(other.Name)
76
+ , PreviousProgramID(other.PreviousProgramID)
77
+ , Version(other.Version)
78
+ , NextProgramID(other.NextProgramID)
79
+ { }
80
+
81
+ /*! \fn SamProgram::~SamProgram(void)
82
+ \brief destructor
83
+ */
84
+ SamProgram::~SamProgram(void) { }
85
+
86
+ /*! \fn void SamProgram::Clear(void)
87
+ \brief Clears all data fields.
88
+ */
89
+ void SamProgram::Clear(void) {
90
+ CommandLine.clear();
91
+ ID.clear();
92
+ Name.clear();
93
+ PreviousProgramID.clear();
94
+ Version.clear();
95
+ NextProgramID.clear();
96
+ }
97
+
98
+ /*! \fn bool SamProgram::HasCommandLine(void) const
99
+ \brief Returns \c true if program record contains \@PG: CL:\<CommandLine\>
100
+ */
101
+ bool SamProgram::HasCommandLine(void) const {
102
+ return (!CommandLine.empty());
103
+ }
104
+
105
+ /*! \fn bool SamProgram::HasID(void) const
106
+ \brief Returns \c true if program record contains \@PG: ID:\<ID\>
107
+ */
108
+ bool SamProgram::HasID(void) const {
109
+ return (!ID.empty());
110
+ }
111
+
112
+ /*! \fn bool SamProgram::HasName(void) const
113
+ \brief Returns \c true if program record contains \@PG: PN:\<Name\>
114
+ */
115
+ bool SamProgram::HasName(void) const {
116
+ return (!Name.empty());
117
+ }
118
+
119
+ /*! \fn bool SamProgram::HasNextProgramID(void) const
120
+ \internal
121
+ \return true if program has a "next" record in a SamProgramChain
122
+ */
123
+ bool SamProgram::HasNextProgramID(void) const {
124
+ return (!NextProgramID.empty());
125
+ }
126
+
127
+ /*! \fn bool SamProgram::HasPreviousProgramID(void) const
128
+ \brief Returns \c true if program record contains \@PG: PP:\<PreviousProgramID\>
129
+ */
130
+ bool SamProgram::HasPreviousProgramID(void) const {
131
+ return (!PreviousProgramID.empty());
132
+ }
133
+
134
+ /*! \fn bool SamProgram::HasVersion(void) const
135
+ \brief Returns \c true if program record contains \@PG: VN:\<Version\>
136
+ */
137
+ bool SamProgram::HasVersion(void) const {
138
+ return (!Version.empty());
139
+ }
@@ -0,0 +1,61 @@
1
+ // ***************************************************************************
2
+ // SamProgram.h (c) 2011 Derek Barnett
3
+ // Marth Lab, Department of Biology, Boston College
4
+ // ---------------------------------------------------------------------------
5
+ // Last modified: 19 April 2011 (DB)
6
+ // ---------------------------------------------------------------------------
7
+ // Provides direct read/write access to the SAM header program records.
8
+ // ***************************************************************************
9
+
10
+ #ifndef SAM_PROGRAM_H
11
+ #define SAM_PROGRAM_H
12
+
13
+ #include "api/api_global.h"
14
+ #include <string>
15
+
16
+ namespace BamTools {
17
+
18
+ class SamProgramChain;
19
+
20
+ struct API_EXPORT SamProgram {
21
+
22
+ // ctor & dtor
23
+ SamProgram(void);
24
+ SamProgram(const std::string& id);
25
+ SamProgram(const SamProgram& other);
26
+ ~SamProgram(void);
27
+
28
+ // query/modify entire program record
29
+ void Clear(void); // clears all data fields
30
+
31
+ // convenience query methods
32
+ bool HasCommandLine(void) const; // returns true if program record has a command line entry
33
+ bool HasID(void) const; // returns true if program record has an ID
34
+ bool HasName(void) const; // returns true if program record has a name
35
+ bool HasPreviousProgramID(void) const; // returns true if program record has a 'previous program ID'
36
+ bool HasVersion(void) const; // returns true if program record has a version
37
+
38
+ // data members
39
+ std::string CommandLine; // CL:<CommandLine>
40
+ std::string ID; // ID:<ID> *Required for valid SAM header*
41
+ std::string Name; // PN:<Name>
42
+ std::string PreviousProgramID; // PP:<PreviousProgramID>
43
+ std::string Version; // VN:<Version>
44
+
45
+ // internal (non-standard) methods & fields
46
+ private:
47
+ bool HasNextProgramID(void) const;
48
+ std::string NextProgramID;
49
+ friend class BamTools::SamProgramChain;
50
+ };
51
+
52
+ /*! \fn bool operator==(const SamProgram& lhs, const SamProgram& rhs)
53
+ \brief tests equality by comparing program IDs
54
+ */
55
+ API_EXPORT inline bool operator==(const SamProgram& lhs, const SamProgram& rhs) {
56
+ return lhs.ID == rhs.ID;
57
+ }
58
+
59
+ } // namespace BamTools
60
+
61
+ #endif // SAM_PROGRAM_H