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,230 @@
1
+ // ***************************************************************************
2
+ // SamFormatParser.cpp (c) 2010 Derek Barnett
3
+ // Marth Lab, Department of Biology, Boston College
4
+ // ---------------------------------------------------------------------------
5
+ // Last modified: 19 April 2011 (DB)
6
+ // ---------------------------------------------------------------------------
7
+ // Provides functionality for parsing SAM header text into SamHeader object
8
+ // ***************************************************************************
9
+
10
+ #include <api/SamConstants.h>
11
+ #include <api/SamHeader.h>
12
+ #include <api/internal/SamFormatParser_p.h>
13
+ using namespace BamTools;
14
+ using namespace BamTools::Internal;
15
+
16
+ #include <iostream>
17
+ #include <sstream>
18
+ #include <vector>
19
+ using namespace std;
20
+
21
+ SamFormatParser::SamFormatParser(SamHeader& header)
22
+ : m_header(header)
23
+ { }
24
+
25
+ SamFormatParser::~SamFormatParser(void) { }
26
+
27
+ void SamFormatParser::Parse(const string& headerText) {
28
+
29
+ // clear header's prior contents
30
+ m_header.Clear();
31
+
32
+ // empty header is OK, but skip processing
33
+ if ( headerText.empty() )
34
+ return;
35
+
36
+ // other wise parse SAM lines
37
+ istringstream headerStream(headerText);
38
+ string headerLine("");
39
+ while ( getline(headerStream, headerLine) )
40
+ ParseSamLine(headerLine);
41
+ }
42
+
43
+ void SamFormatParser::ParseSamLine(const string& line) {
44
+
45
+ // skip if line is not long enough to contain true values
46
+ if (line.length() < 5 ) return;
47
+
48
+ // determine token at beginning of line
49
+ const string firstToken = line.substr(0,3);
50
+ string restOfLine = line.substr(4);
51
+ if ( firstToken == Constants::SAM_HD_BEGIN_TOKEN) ParseHDLine(restOfLine);
52
+ else if ( firstToken == Constants::SAM_SQ_BEGIN_TOKEN) ParseSQLine(restOfLine);
53
+ else if ( firstToken == Constants::SAM_RG_BEGIN_TOKEN) ParseRGLine(restOfLine);
54
+ else if ( firstToken == Constants::SAM_PG_BEGIN_TOKEN) ParsePGLine(restOfLine);
55
+ else if ( firstToken == Constants::SAM_CO_BEGIN_TOKEN) ParseCOLine(restOfLine);
56
+ else
57
+ cerr << "SamFormatParser ERROR: unknown token: " << firstToken << endl;
58
+ }
59
+
60
+ void SamFormatParser::ParseHDLine(const string& line) {
61
+
62
+ // split HD lines into tokens
63
+ vector<string> tokens = Split(line, Constants::SAM_TAB);
64
+
65
+ // iterate over tokens
66
+ vector<string>::const_iterator tokenIter = tokens.begin();
67
+ vector<string>::const_iterator tokenEnd = tokens.end();
68
+ for ( ; tokenIter != tokenEnd; ++tokenIter ) {
69
+
70
+ // get tag/value
71
+ const string tokenTag = (*tokenIter).substr(0,2);
72
+ const string tokenValue = (*tokenIter).substr(3);
73
+
74
+ // set header contents
75
+ if ( tokenTag == Constants::SAM_HD_VERSION_TAG ) m_header.Version = tokenValue;
76
+ else if ( tokenTag == Constants::SAM_HD_SORTORDER_TAG ) m_header.SortOrder = tokenValue;
77
+ else if ( tokenTag == Constants::SAM_HD_GROUPORDER_TAG ) m_header.GroupOrder = tokenValue;
78
+ else
79
+ cerr << "SamFormatParser ERROR: unknown HD tag: " << tokenTag << endl;
80
+ }
81
+
82
+ // if @HD line exists, VN must be provided
83
+ if ( !m_header.HasVersion() )
84
+ cerr << "SamFormatParser ERROR: @HD line is missing VN tag" << endl;
85
+ }
86
+
87
+ void SamFormatParser::ParseSQLine(const string& line) {
88
+
89
+ SamSequence seq;
90
+
91
+ // split SQ line into tokens
92
+ vector<string> tokens = Split(line, Constants::SAM_TAB);
93
+
94
+ // iterate over tokens
95
+ vector<string>::const_iterator tokenIter = tokens.begin();
96
+ vector<string>::const_iterator tokenEnd = tokens.end();
97
+ for ( ; tokenIter != tokenEnd; ++tokenIter ) {
98
+
99
+ // get tag/value
100
+ const string tokenTag = (*tokenIter).substr(0,2);
101
+ const string tokenValue = (*tokenIter).substr(3);
102
+
103
+ // set sequence contents
104
+ if ( tokenTag == Constants::SAM_SQ_NAME_TAG ) seq.Name = tokenValue;
105
+ else if ( tokenTag == Constants::SAM_SQ_LENGTH_TAG ) seq.Length = tokenValue;
106
+ else if ( tokenTag == Constants::SAM_SQ_ASSEMBLYID_TAG ) seq.AssemblyID = tokenValue;
107
+ else if ( tokenTag == Constants::SAM_SQ_CHECKSUM_TAG ) seq.Checksum = tokenValue;
108
+ else if ( tokenTag == Constants::SAM_SQ_SPECIES_TAG ) seq.Species = tokenValue;
109
+ else if ( tokenTag == Constants::SAM_SQ_URI_TAG ) seq.URI = tokenValue;
110
+ else
111
+ cerr << "SamFormatParser ERROR: unknown SQ tag: " << tokenTag << endl;
112
+ }
113
+
114
+ bool isMissingRequiredFields = false;
115
+
116
+ // if @SQ line exists, SN must be provided
117
+ if ( !seq.HasName() ) {
118
+ isMissingRequiredFields = true;
119
+ cerr << "SamFormatParser ERROR: @SQ line is missing SN tag" << endl;
120
+ }
121
+
122
+ // if @SQ line exists, LN must be provided
123
+ if ( !seq.HasLength() ) {
124
+ isMissingRequiredFields = true;
125
+ cerr << "SamFormatParser ERROR: @SQ line is missing LN tag" << endl;
126
+ }
127
+
128
+ // store SAM sequence entry
129
+ if ( !isMissingRequiredFields )
130
+ m_header.Sequences.Add(seq);
131
+ }
132
+
133
+ void SamFormatParser::ParseRGLine(const string& line) {
134
+
135
+ SamReadGroup rg;
136
+
137
+ // split string into tokens
138
+ vector<string> tokens = Split(line, Constants::SAM_TAB);
139
+
140
+ // iterate over tokens
141
+ vector<string>::const_iterator tokenIter = tokens.begin();
142
+ vector<string>::const_iterator tokenEnd = tokens.end();
143
+ for ( ; tokenIter != tokenEnd; ++tokenIter ) {
144
+
145
+ // get token tag/value
146
+ const string tokenTag = (*tokenIter).substr(0,2);
147
+ const string tokenValue = (*tokenIter).substr(3);
148
+
149
+ // set read group contents
150
+ if ( tokenTag == Constants::SAM_RG_ID_TAG ) rg.ID = tokenValue;
151
+ else if ( tokenTag == Constants::SAM_RG_DESCRIPTION_TAG ) rg.Description = tokenValue;
152
+ else if ( tokenTag == Constants::SAM_RG_FLOWORDER_TAG ) rg.FlowOrder = tokenValue;
153
+ else if ( tokenTag == Constants::SAM_RG_KEYSEQUENCE_TAG ) rg.KeySequence = tokenValue;
154
+ else if ( tokenTag == Constants::SAM_RG_LIBRARY_TAG ) rg.Library = tokenValue;
155
+ else if ( tokenTag == Constants::SAM_RG_PLATFORMUNIT_TAG ) rg.PlatformUnit = tokenValue;
156
+ else if ( tokenTag == Constants::SAM_RG_PREDICTEDINSERTSIZE_TAG ) rg.PredictedInsertSize = tokenValue;
157
+ else if ( tokenTag == Constants::SAM_RG_PRODUCTIONDATE_TAG ) rg.ProductionDate = tokenValue;
158
+ else if ( tokenTag == Constants::SAM_RG_PROGRAM_TAG ) rg.Program = tokenValue;
159
+ else if ( tokenTag == Constants::SAM_RG_SAMPLE_TAG ) rg.Sample = tokenValue;
160
+ else if ( tokenTag == Constants::SAM_RG_SEQCENTER_TAG ) rg.SequencingCenter = tokenValue;
161
+ else if ( tokenTag == Constants::SAM_RG_SEQTECHNOLOGY_TAG ) rg.SequencingTechnology = tokenValue;
162
+ else
163
+ cerr << "SamFormatParser ERROR: unknown RG tag: " << tokenTag << endl;
164
+ }
165
+
166
+ bool isMissingRequiredFields = false;
167
+
168
+ // if @RG line exists, ID must be provided
169
+ if ( !rg.HasID() ) {
170
+ isMissingRequiredFields = true;
171
+ cerr << "SamFormatParser ERROR: @RG line is missing ID tag" << endl;
172
+ }
173
+
174
+ // store SAM read group entry
175
+ if ( !isMissingRequiredFields )
176
+ m_header.ReadGroups.Add(rg);
177
+ }
178
+
179
+ void SamFormatParser::ParsePGLine(const string& line) {
180
+
181
+ SamProgram pg;
182
+
183
+ // split string into tokens
184
+ vector<string> tokens = Split(line, Constants::SAM_TAB);
185
+
186
+ // iterate over tokens
187
+ vector<string>::const_iterator tokenIter = tokens.begin();
188
+ vector<string>::const_iterator tokenEnd = tokens.end();
189
+ for ( ; tokenIter != tokenEnd; ++tokenIter ) {
190
+
191
+ // get token tag/value
192
+ const string tokenTag = (*tokenIter).substr(0,2);
193
+ const string tokenValue = (*tokenIter).substr(3);
194
+
195
+ // set program record contents
196
+ if ( tokenTag == Constants::SAM_PG_ID_TAG ) pg.ID = tokenValue;
197
+ else if ( tokenTag == Constants::SAM_PG_NAME_TAG ) pg.Name = tokenValue;
198
+ else if ( tokenTag == Constants::SAM_PG_COMMANDLINE_TAG ) pg.CommandLine = tokenValue;
199
+ else if ( tokenTag == Constants::SAM_PG_PREVIOUSPROGRAM_TAG ) pg.PreviousProgramID = tokenValue;
200
+ else if ( tokenTag == Constants::SAM_PG_VERSION_TAG ) pg.Version = tokenValue;
201
+ else
202
+ cerr << "SamFormatParser ERROR: unknown PG tag: " << tokenTag << endl;
203
+ }
204
+
205
+ bool isMissingRequiredFields = false;
206
+
207
+ // if @PG line exists, ID must be provided
208
+ if ( !pg.HasID() ) {
209
+ isMissingRequiredFields = true;
210
+ cerr << "SamFormatParser ERROR: @PG line is missing ID tag" << endl;
211
+ }
212
+
213
+ // store SAM program record
214
+ if ( !isMissingRequiredFields )
215
+ m_header.Programs.Add(pg);
216
+ }
217
+
218
+ void SamFormatParser::ParseCOLine(const string& line) {
219
+ // simply add line to comments list
220
+ m_header.Comments.push_back(line);
221
+ }
222
+
223
+ const vector<string> SamFormatParser::Split(const string& line, const char delim) {
224
+ vector<string> tokens;
225
+ stringstream lineStream(line);
226
+ string token;
227
+ while ( getline(lineStream, token, delim) )
228
+ tokens.push_back(token);
229
+ return tokens;
230
+ }
@@ -0,0 +1,61 @@
1
+ // ***************************************************************************
2
+ // SamFormatParser.h (c) 2010 Derek Barnett
3
+ // Marth Lab, Department of Biology, Boston College
4
+ // ---------------------------------------------------------------------------
5
+ // Last modified: 23 December 2010 (DB)
6
+ // ---------------------------------------------------------------------------
7
+ // Provides functionality for parsing SAM header text into SamHeader object
8
+ // ***************************************************************************
9
+
10
+ #ifndef SAM_FORMAT_PARSER_H
11
+ #define SAM_FORMAT_PARSER_H
12
+
13
+ // -------------
14
+ // W A R N I N G
15
+ // -------------
16
+ //
17
+ // This file is not part of the BamTools API. It exists purely as an
18
+ // implementation detail. This header file may change from version to version
19
+ // without notice, or even be removed.
20
+ //
21
+ // We mean it.
22
+
23
+ #include <string>
24
+ #include <vector>
25
+
26
+ namespace BamTools {
27
+
28
+ class SamHeader;
29
+
30
+ namespace Internal {
31
+
32
+ class SamFormatParser {
33
+
34
+ // ctor & dtor
35
+ public:
36
+ SamFormatParser(BamTools::SamHeader& header);
37
+ ~SamFormatParser(void);
38
+
39
+ // parse text & populate header data
40
+ public:
41
+ void Parse(const std::string& headerText);
42
+
43
+ // internal methods
44
+ private:
45
+ void ParseSamLine(const std::string& line);
46
+ void ParseHDLine(const std::string& line);
47
+ void ParseSQLine(const std::string& line);
48
+ void ParseRGLine(const std::string& line);
49
+ void ParsePGLine(const std::string& line);
50
+ void ParseCOLine(const std::string& line);
51
+ const std::vector<std::string> Split(const std::string& line, const char delim);
52
+
53
+ // data members
54
+ private:
55
+ SamHeader& m_header;
56
+ };
57
+
58
+ } // namespace Internal
59
+ } // namespace BamTools
60
+
61
+ #endif // SAM_FORMAT_PARSER_H
@@ -0,0 +1,210 @@
1
+ // ***************************************************************************
2
+ // SamFormatPrinter.cpp (c) 2010 Derek Barnett
3
+ // Marth Lab, Department of Biology, Boston College
4
+ // ---------------------------------------------------------------------------
5
+ // Last modified: 19 April 2011 (DB)
6
+ // ---------------------------------------------------------------------------
7
+ // Provides functionality for printing formatted SAM header to string
8
+ // ***************************************************************************
9
+
10
+ #include <api/SamConstants.h>
11
+ #include <api/SamHeader.h>
12
+ #include <api/internal/SamFormatPrinter_p.h>
13
+ using namespace BamTools;
14
+ using namespace BamTools::Internal;
15
+
16
+ #include <iostream>
17
+ #include <sstream>
18
+ #include <vector>
19
+ using namespace std;
20
+
21
+ SamFormatPrinter::SamFormatPrinter(const SamHeader& header)
22
+ : m_header(header)
23
+ { }
24
+
25
+ SamFormatPrinter::~SamFormatPrinter(void) { }
26
+
27
+ const string SamFormatPrinter::FormatTag(const string &tag, const string &value) const {
28
+ return string(Constants::SAM_TAB + tag + Constants::SAM_COLON + value);
29
+ }
30
+
31
+ const string SamFormatPrinter::ToString(void) const {
32
+
33
+ // clear out stream
34
+ stringstream out("");
35
+
36
+ // generate formatted header text
37
+ PrintHD(out);
38
+ PrintSQ(out);
39
+ PrintRG(out);
40
+ PrintPG(out);
41
+ PrintCO(out);
42
+
43
+ // return result
44
+ return out.str();
45
+ }
46
+
47
+ void SamFormatPrinter::PrintHD(std::stringstream& out) const {
48
+
49
+ // if header has @HD data
50
+ if ( m_header.HasVersion() ) {
51
+
52
+ // @HD VN:<Version>
53
+ out << Constants::SAM_HD_BEGIN_TOKEN
54
+ << FormatTag(Constants::SAM_HD_VERSION_TAG, m_header.Version);
55
+
56
+ // SO:<SortOrder>
57
+ if ( m_header.HasSortOrder() )
58
+ out << FormatTag(Constants::SAM_HD_SORTORDER_TAG, m_header.SortOrder);
59
+
60
+ // GO:<GroupOrder>
61
+ if ( m_header.HasGroupOrder() )
62
+ out << FormatTag(Constants::SAM_HD_GROUPORDER_TAG, m_header.GroupOrder);
63
+
64
+ // newline
65
+ out << endl;
66
+ }
67
+ }
68
+
69
+ void SamFormatPrinter::PrintSQ(std::stringstream& out) const {
70
+
71
+ // iterate over sequence entries
72
+ SamSequenceConstIterator seqIter = m_header.Sequences.ConstBegin();
73
+ SamSequenceConstIterator seqEnd = m_header.Sequences.ConstEnd();
74
+ for ( ; seqIter != seqEnd; ++seqIter ) {
75
+ const SamSequence& seq = (*seqIter);
76
+
77
+ // @SQ SN:<Name> LN:<Length>
78
+ out << Constants::SAM_SQ_BEGIN_TOKEN
79
+ << FormatTag(Constants::SAM_SQ_NAME_TAG, seq.Name)
80
+ << FormatTag(Constants::SAM_SQ_LENGTH_TAG, seq.Length);
81
+
82
+ // AS:<AssemblyID>
83
+ if ( seq.HasAssemblyID() )
84
+ out << FormatTag(Constants::SAM_SQ_ASSEMBLYID_TAG, seq.AssemblyID);
85
+
86
+ // M5:<Checksum>
87
+ if ( seq.HasChecksum() )
88
+ out << FormatTag(Constants::SAM_SQ_CHECKSUM_TAG, seq.Checksum);
89
+
90
+ // SP:<Species>
91
+ if ( seq.HasSpecies() )
92
+ out << FormatTag(Constants::SAM_SQ_SPECIES_TAG, seq.Species);
93
+
94
+ // UR:<URI>
95
+ if ( seq.HasURI() )
96
+ out << FormatTag(Constants::SAM_SQ_URI_TAG, seq.URI);
97
+
98
+ // newline
99
+ out << endl;
100
+ }
101
+ }
102
+
103
+ void SamFormatPrinter::PrintRG(std::stringstream& out) const {
104
+
105
+ // iterate over read group entries
106
+ SamReadGroupConstIterator rgIter = m_header.ReadGroups.ConstBegin();
107
+ SamReadGroupConstIterator rgEnd = m_header.ReadGroups.ConstEnd();
108
+ for ( ; rgIter != rgEnd; ++rgIter ) {
109
+ const SamReadGroup& rg = (*rgIter);
110
+
111
+ // @RG ID:<ID>
112
+ out << Constants::SAM_RG_BEGIN_TOKEN
113
+ << FormatTag(Constants::SAM_RG_ID_TAG, rg.ID);
114
+
115
+ // CN:<SequencingCenter>
116
+ if ( rg.HasSequencingCenter() )
117
+ out << FormatTag(Constants::SAM_RG_SEQCENTER_TAG, rg.SequencingCenter);
118
+
119
+ // DS:<Description>
120
+ if ( rg.HasDescription() )
121
+ out << FormatTag(Constants::SAM_RG_DESCRIPTION_TAG, rg.Description);
122
+
123
+ // DT:<ProductionDate>
124
+ if ( rg.HasProductionDate() )
125
+ out << FormatTag(Constants::SAM_RG_PRODUCTIONDATE_TAG, rg.ProductionDate);
126
+
127
+ // FO:<FlowOrder>
128
+ if ( rg.HasFlowOrder() )
129
+ out << FormatTag(Constants::SAM_RG_FLOWORDER_TAG, rg.FlowOrder);
130
+
131
+ // KS:<KeySequence>
132
+ if ( rg.HasKeySequence() )
133
+ out << FormatTag(Constants::SAM_RG_KEYSEQUENCE_TAG, rg.KeySequence);
134
+
135
+ // LB:<Library>
136
+ if ( rg.HasLibrary() )
137
+ out << FormatTag(Constants::SAM_RG_LIBRARY_TAG, rg.Library);
138
+
139
+ // PG:<Program>
140
+ if ( rg.HasProgram() )
141
+ out << FormatTag(Constants::SAM_RG_PROGRAM_TAG, rg.Program);
142
+
143
+ // PI:<PredictedInsertSize>
144
+ if ( rg.HasPredictedInsertSize() )
145
+ out << FormatTag(Constants::SAM_RG_PREDICTEDINSERTSIZE_TAG, rg.PredictedInsertSize);
146
+
147
+ // PL:<SequencingTechnology>
148
+ if ( rg.HasSequencingTechnology() )
149
+ out << FormatTag(Constants::SAM_RG_SEQTECHNOLOGY_TAG, rg.SequencingTechnology);
150
+
151
+ // PU:<PlatformUnit>
152
+ if ( rg.HasPlatformUnit() )
153
+ out << FormatTag(Constants::SAM_RG_PLATFORMUNIT_TAG, rg.PlatformUnit);
154
+
155
+ // SM:<Sample>
156
+ if ( rg.HasSample() )
157
+ out << FormatTag(Constants::SAM_RG_SAMPLE_TAG, rg.Sample);
158
+
159
+ // newline
160
+ out << endl;
161
+ }
162
+ }
163
+
164
+ void SamFormatPrinter::PrintPG(std::stringstream& out) const {
165
+
166
+ // iterate over program record entries
167
+ SamProgramConstIterator pgIter = m_header.Programs.ConstBegin();
168
+ SamProgramConstIterator pgEnd = m_header.Programs.ConstEnd();
169
+ for ( ; pgIter != pgEnd; ++pgIter ) {
170
+ const SamProgram& pg = (*pgIter);
171
+
172
+ // @PG ID:<ID>
173
+ out << Constants::SAM_PG_BEGIN_TOKEN
174
+ << FormatTag(Constants::SAM_PG_ID_TAG, pg.ID);
175
+
176
+ // PN:<Name>
177
+ if ( pg.HasName() )
178
+ out << FormatTag(Constants::SAM_PG_NAME_TAG, pg.Name);
179
+
180
+ // CL:<CommandLine>
181
+ if ( pg.HasCommandLine() )
182
+ out << FormatTag(Constants::SAM_PG_COMMANDLINE_TAG, pg.CommandLine);
183
+
184
+ // PP:<PreviousProgramID>
185
+ if ( pg.HasPreviousProgramID() )
186
+ out << FormatTag(Constants::SAM_PG_PREVIOUSPROGRAM_TAG, pg.PreviousProgramID);
187
+
188
+ // VN:<Version>
189
+ if ( pg.HasVersion() )
190
+ out << FormatTag(Constants::SAM_PG_VERSION_TAG, pg.Version);
191
+
192
+ // newline
193
+ out << endl;
194
+ }
195
+ }
196
+
197
+ void SamFormatPrinter::PrintCO(std::stringstream& out) const {
198
+
199
+ // iterate over comments
200
+ vector<string>::const_iterator commentIter = m_header.Comments.begin();
201
+ vector<string>::const_iterator commentEnd = m_header.Comments.end();
202
+ for ( ; commentIter != commentEnd; ++commentIter ) {
203
+
204
+ // @CO <Comment>
205
+ out << Constants::SAM_CO_BEGIN_TOKEN
206
+ << Constants::SAM_TAB
207
+ << (*commentIter)
208
+ << endl;
209
+ }
210
+ }
@@ -0,0 +1,60 @@
1
+ // ***************************************************************************
2
+ // SamFormatPrinter.h (c) 2010 Derek Barnett
3
+ // Marth Lab, Department of Biology, Boston College
4
+ // ---------------------------------------------------------------------------
5
+ // Last modified: 23 December 2010 (DB)
6
+ // ---------------------------------------------------------------------------
7
+ // Provides functionality for printing formatted SAM header to string
8
+ // ***************************************************************************
9
+
10
+ #ifndef SAM_FORMAT_PRINTER_H
11
+ #define SAM_FORMAT_PRINTER_H
12
+
13
+ // -------------
14
+ // W A R N I N G
15
+ // -------------
16
+ //
17
+ // This file is not part of the BamTools API. It exists purely as an
18
+ // implementation detail. This header file may change from version to version
19
+ // without notice, or even be removed.
20
+ //
21
+ // We mean it.
22
+
23
+ #include <sstream>
24
+ #include <string>
25
+
26
+ namespace BamTools {
27
+
28
+ class SamHeader;
29
+
30
+ namespace Internal {
31
+
32
+ class SamFormatPrinter {
33
+
34
+ // ctor & dtor
35
+ public:
36
+ SamFormatPrinter(const BamTools::SamHeader& header);
37
+ ~SamFormatPrinter(void);
38
+
39
+ // generates SAM-formatted string from header data
40
+ public:
41
+ const std::string ToString(void) const;
42
+
43
+ // internal methods
44
+ private:
45
+ const std::string FormatTag(const std::string& tag, const std::string& value) const;
46
+ void PrintHD(std::stringstream& out) const;
47
+ void PrintSQ(std::stringstream& out) const;
48
+ void PrintRG(std::stringstream& out) const;
49
+ void PrintPG(std::stringstream& out) const;
50
+ void PrintCO(std::stringstream& out) const;
51
+
52
+ // data members
53
+ private:
54
+ const SamHeader& m_header;
55
+ };
56
+
57
+ } // namespace Internal
58
+ } // namespace BamTools
59
+
60
+ #endif // SAM_FORMAT_PRINTER_H