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