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.
- data/.gitignore +4 -0
- data/Gemfile +4 -0
- data/Rakefile +2 -0
- data/bin/ngs_server +58 -0
- data/data/holder.txt +0 -0
- data/ext/bamtools/CMakeLists.txt +49 -0
- data/ext/bamtools/LICENSE +22 -0
- data/ext/bamtools/README +60 -0
- data/ext/bamtools/Tutorial_Toolkit_BamTools-1.0.pdf +0 -0
- data/ext/bamtools/docs/Doxyfile +1601 -0
- data/ext/bamtools/extconf.rb +9 -0
- data/ext/bamtools/src/CMakeFiles/CMakeDirectoryInformation.cmake +22 -0
- data/ext/bamtools/src/CMakeFiles/SharedHeaders.dir/DependInfo.cmake +13 -0
- data/ext/bamtools/src/CMakeFiles/SharedHeaders.dir/build.make +65 -0
- data/ext/bamtools/src/CMakeFiles/SharedHeaders.dir/cmake_clean.cmake +8 -0
- data/ext/bamtools/src/CMakeFiles/SharedHeaders.dir/depend.internal +3 -0
- data/ext/bamtools/src/CMakeFiles/SharedHeaders.dir/depend.make +3 -0
- data/ext/bamtools/src/CMakeFiles/SharedHeaders.dir/progress.make +2 -0
- data/ext/bamtools/src/CMakeFiles/progress.marks +1 -0
- data/ext/bamtools/src/CMakeLists.txt +18 -0
- data/ext/bamtools/src/ExportHeader.cmake +31 -0
- data/ext/bamtools/src/Makefile +182 -0
- data/ext/bamtools/src/api/BamAlignment.cpp +2432 -0
- data/ext/bamtools/src/api/BamAlignment.h +206 -0
- data/ext/bamtools/src/api/BamAux.h +456 -0
- data/ext/bamtools/src/api/BamConstants.h +127 -0
- data/ext/bamtools/src/api/BamIndex.h +79 -0
- data/ext/bamtools/src/api/BamMultiReader.cpp +395 -0
- data/ext/bamtools/src/api/BamMultiReader.h +126 -0
- data/ext/bamtools/src/api/BamReader.cpp +369 -0
- data/ext/bamtools/src/api/BamReader.h +117 -0
- data/ext/bamtools/src/api/BamWriter.cpp +142 -0
- data/ext/bamtools/src/api/BamWriter.h +63 -0
- data/ext/bamtools/src/api/CMakeFiles/APIHeaders.dir/DependInfo.cmake +14 -0
- data/ext/bamtools/src/api/CMakeFiles/APIHeaders.dir/build.make +80 -0
- data/ext/bamtools/src/api/CMakeFiles/APIHeaders.dir/cmake_clean.cmake +8 -0
- data/ext/bamtools/src/api/CMakeFiles/APIHeaders.dir/depend.internal +3 -0
- data/ext/bamtools/src/api/CMakeFiles/APIHeaders.dir/depend.make +3 -0
- data/ext/bamtools/src/api/CMakeFiles/APIHeaders.dir/progress.make +2 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/BamAlignment.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/BamMultiReader.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/BamReader.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/BamWriter.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/CXX.includecache +596 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/DependInfo.cmake +41 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/SamHeader.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/SamProgram.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/SamProgramChain.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/SamReadGroup.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/SamReadGroupDictionary.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/SamSequence.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/SamSequenceDictionary.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/build.make +675 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/cmake_clean.cmake +32 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/cmake_clean_target.cmake +3 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/depend.internal +295 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/depend.make +295 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/flags.make +8 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/internal/BamHeader_p.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/internal/BamIndexFactory_p.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/internal/BamMultiReader_p.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/internal/BamRandomAccessController_p.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/internal/BamReader_p.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/internal/BamStandardIndex_p.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/internal/BamToolsIndex_p.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/internal/BamWriter_p.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/internal/BgzfStream_p.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/internal/SamFormatParser_p.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/internal/SamFormatPrinter_p.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/internal/SamHeaderValidator_p.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/link.txt +2 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools-static.dir/progress.make +24 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/BamAlignment.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/BamMultiReader.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/BamReader.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/BamWriter.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/CXX.includecache +596 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/DependInfo.cmake +47 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/SamHeader.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/SamProgram.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/SamProgramChain.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/SamReadGroup.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/SamReadGroupDictionary.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/SamSequence.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/SamSequenceDictionary.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/build.make +677 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/cmake_clean.cmake +33 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/depend.internal +295 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/depend.make +295 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/flags.make +8 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/internal/BamHeader_p.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/internal/BamIndexFactory_p.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/internal/BamMultiReader_p.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/internal/BamRandomAccessController_p.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/internal/BamReader_p.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/internal/BamStandardIndex_p.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/internal/BamToolsIndex_p.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/internal/BamWriter_p.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/internal/BgzfStream_p.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/internal/SamFormatParser_p.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/internal/SamFormatPrinter_p.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/internal/SamHeaderValidator_p.cpp.o +0 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/link.txt +1 -0
- data/ext/bamtools/src/api/CMakeFiles/BamTools.dir/progress.make +24 -0
- data/ext/bamtools/src/api/CMakeFiles/CMakeDirectoryInformation.cmake +22 -0
- data/ext/bamtools/src/api/CMakeFiles/progress.marks +1 -0
- data/ext/bamtools/src/api/CMakeLists.txt +78 -0
- data/ext/bamtools/src/api/Makefile +902 -0
- data/ext/bamtools/src/api/SamConstants.h +95 -0
- data/ext/bamtools/src/api/SamHeader.cpp +184 -0
- data/ext/bamtools/src/api/SamHeader.h +68 -0
- data/ext/bamtools/src/api/SamProgram.cpp +139 -0
- data/ext/bamtools/src/api/SamProgram.h +61 -0
- data/ext/bamtools/src/api/SamProgramChain.cpp +351 -0
- data/ext/bamtools/src/api/SamProgramChain.h +85 -0
- data/ext/bamtools/src/api/SamReadGroup.cpp +221 -0
- data/ext/bamtools/src/api/SamReadGroup.h +68 -0
- data/ext/bamtools/src/api/SamReadGroupDictionary.cpp +289 -0
- data/ext/bamtools/src/api/SamReadGroupDictionary.h +86 -0
- data/ext/bamtools/src/api/SamSequence.cpp +161 -0
- data/ext/bamtools/src/api/SamSequence.h +60 -0
- data/ext/bamtools/src/api/SamSequenceDictionary.cpp +292 -0
- data/ext/bamtools/src/api/SamSequenceDictionary.h +88 -0
- data/ext/bamtools/src/api/api_global.h +21 -0
- data/ext/bamtools/src/api/cmake_install.cmake +122 -0
- data/ext/bamtools/src/api/internal/BamHeader_p.cpp +132 -0
- data/ext/bamtools/src/api/internal/BamHeader_p.h +71 -0
- data/ext/bamtools/src/api/internal/BamIndexFactory_p.cpp +112 -0
- data/ext/bamtools/src/api/internal/BamIndexFactory_p.h +49 -0
- data/ext/bamtools/src/api/internal/BamMultiMerger_p.h +297 -0
- data/ext/bamtools/src/api/internal/BamMultiReader_p.cpp +805 -0
- data/ext/bamtools/src/api/internal/BamMultiReader_p.h +103 -0
- data/ext/bamtools/src/api/internal/BamRandomAccessController_p.cpp +272 -0
- data/ext/bamtools/src/api/internal/BamRandomAccessController_p.h +93 -0
- data/ext/bamtools/src/api/internal/BamReader_p.cpp +380 -0
- data/ext/bamtools/src/api/internal/BamReader_p.h +112 -0
- data/ext/bamtools/src/api/internal/BamStandardIndex_p.cpp +986 -0
- data/ext/bamtools/src/api/internal/BamStandardIndex_p.h +236 -0
- data/ext/bamtools/src/api/internal/BamToolsIndex_p.cpp +641 -0
- data/ext/bamtools/src/api/internal/BamToolsIndex_p.h +187 -0
- data/ext/bamtools/src/api/internal/BamWriter_p.cpp +424 -0
- data/ext/bamtools/src/api/internal/BamWriter_p.h +66 -0
- data/ext/bamtools/src/api/internal/BgzfStream_p.cpp +438 -0
- data/ext/bamtools/src/api/internal/BgzfStream_p.h +108 -0
- data/ext/bamtools/src/api/internal/SamFormatParser_p.cpp +230 -0
- data/ext/bamtools/src/api/internal/SamFormatParser_p.h +61 -0
- data/ext/bamtools/src/api/internal/SamFormatPrinter_p.cpp +210 -0
- data/ext/bamtools/src/api/internal/SamFormatPrinter_p.h +60 -0
- data/ext/bamtools/src/api/internal/SamHeaderValidator_p.cpp +510 -0
- data/ext/bamtools/src/api/internal/SamHeaderValidator_p.h +101 -0
- data/ext/bamtools/src/api/internal/SamHeaderVersion_p.h +134 -0
- data/ext/bamtools/src/cmake_install.cmake +42 -0
- data/ext/bamtools/src/shared/bamtools_global.h +78 -0
- data/ext/bamtools/src/third_party/CMakeFiles/CMakeDirectoryInformation.cmake +22 -0
- data/ext/bamtools/src/third_party/CMakeFiles/progress.marks +1 -0
- data/ext/bamtools/src/third_party/CMakeLists.txt +10 -0
- data/ext/bamtools/src/third_party/Makefile +167 -0
- data/ext/bamtools/src/third_party/cmake_install.cmake +35 -0
- data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/CMakeDirectoryInformation.cmake +22 -0
- data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/CXX.includecache +144 -0
- data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/DependInfo.cmake +27 -0
- data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/build.make +157 -0
- data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/cmake_clean.cmake +13 -0
- data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/depend.internal +31 -0
- data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/depend.make +31 -0
- data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/flags.make +8 -0
- data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/json_reader.cpp.o +0 -0
- data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/json_value.cpp.o +0 -0
- data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/json_writer.cpp.o +0 -0
- data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/link.txt +1 -0
- data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/jsoncpp.dir/progress.make +4 -0
- data/ext/bamtools/src/third_party/jsoncpp/CMakeFiles/progress.marks +1 -0
- data/ext/bamtools/src/third_party/jsoncpp/CMakeLists.txt +23 -0
- data/ext/bamtools/src/third_party/jsoncpp/LICENSE +55 -0
- data/ext/bamtools/src/third_party/jsoncpp/Makefile +263 -0
- data/ext/bamtools/src/third_party/jsoncpp/cmake_install.cmake +29 -0
- data/ext/bamtools/src/third_party/jsoncpp/json.h +15 -0
- data/ext/bamtools/src/third_party/jsoncpp/json_batchallocator.h +130 -0
- data/ext/bamtools/src/third_party/jsoncpp/json_config.h +42 -0
- data/ext/bamtools/src/third_party/jsoncpp/json_features.h +47 -0
- data/ext/bamtools/src/third_party/jsoncpp/json_forwards.h +42 -0
- data/ext/bamtools/src/third_party/jsoncpp/json_internalarray.inl +453 -0
- data/ext/bamtools/src/third_party/jsoncpp/json_internalmap.inl +612 -0
- data/ext/bamtools/src/third_party/jsoncpp/json_reader.cpp +870 -0
- data/ext/bamtools/src/third_party/jsoncpp/json_reader.h +201 -0
- data/ext/bamtools/src/third_party/jsoncpp/json_tool.h +93 -0
- data/ext/bamtools/src/third_party/jsoncpp/json_value.cpp +1701 -0
- data/ext/bamtools/src/third_party/jsoncpp/json_value.h +1059 -0
- data/ext/bamtools/src/third_party/jsoncpp/json_valueiterator.inl +297 -0
- data/ext/bamtools/src/third_party/jsoncpp/json_writer.cpp +819 -0
- data/ext/bamtools/src/third_party/jsoncpp/json_writer.h +179 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/CMakeDirectoryInformation.cmake +25 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/CXX.includecache +698 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/DependInfo.cmake +34 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools.cpp.o +0 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_convert.cpp.o +0 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_count.cpp.o +0 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_coverage.cpp.o +0 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_filter.cpp.o +0 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_header.cpp.o +0 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_index.cpp.o +0 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_merge.cpp.o +0 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_random.cpp.o +0 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_resolve.cpp.o +0 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_revert.cpp.o +0 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_sort.cpp.o +0 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_split.cpp.o +0 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/bamtools_stats.cpp.o +0 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/build.make +447 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/cmake_clean.cmake +24 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/depend.internal +319 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/depend.make +319 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/flags.make +8 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/link.txt +1 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/bamtools_cmd.dir/progress.make +15 -0
- data/ext/bamtools/src/toolkit/CMakeFiles/progress.marks +1 -0
- data/ext/bamtools/src/toolkit/CMakeLists.txt +44 -0
- data/ext/bamtools/src/toolkit/Makefile +560 -0
- data/ext/bamtools/src/toolkit/bamtools.cpp +163 -0
- data/ext/bamtools/src/toolkit/bamtools_convert.cpp +888 -0
- data/ext/bamtools/src/toolkit/bamtools_convert.h +37 -0
- data/ext/bamtools/src/toolkit/bamtools_count.cpp +187 -0
- data/ext/bamtools/src/toolkit/bamtools_count.h +37 -0
- data/ext/bamtools/src/toolkit/bamtools_coverage.cpp +196 -0
- data/ext/bamtools/src/toolkit/bamtools_coverage.h +37 -0
- data/ext/bamtools/src/toolkit/bamtools_filter.cpp +911 -0
- data/ext/bamtools/src/toolkit/bamtools_filter.h +37 -0
- data/ext/bamtools/src/toolkit/bamtools_header.cpp +122 -0
- data/ext/bamtools/src/toolkit/bamtools_header.h +38 -0
- data/ext/bamtools/src/toolkit/bamtools_index.cpp +126 -0
- data/ext/bamtools/src/toolkit/bamtools_index.h +37 -0
- data/ext/bamtools/src/toolkit/bamtools_merge.cpp +221 -0
- data/ext/bamtools/src/toolkit/bamtools_merge.h +37 -0
- data/ext/bamtools/src/toolkit/bamtools_random.cpp +255 -0
- data/ext/bamtools/src/toolkit/bamtools_random.h +37 -0
- data/ext/bamtools/src/toolkit/bamtools_resolve.cpp +1396 -0
- data/ext/bamtools/src/toolkit/bamtools_resolve.h +42 -0
- data/ext/bamtools/src/toolkit/bamtools_revert.cpp +194 -0
- data/ext/bamtools/src/toolkit/bamtools_revert.h +37 -0
- data/ext/bamtools/src/toolkit/bamtools_sort.cpp +410 -0
- data/ext/bamtools/src/toolkit/bamtools_sort.h +37 -0
- data/ext/bamtools/src/toolkit/bamtools_split.cpp +551 -0
- data/ext/bamtools/src/toolkit/bamtools_split.h +38 -0
- data/ext/bamtools/src/toolkit/bamtools_stats.cpp +286 -0
- data/ext/bamtools/src/toolkit/bamtools_stats.h +37 -0
- data/ext/bamtools/src/toolkit/bamtools_tool.h +35 -0
- data/ext/bamtools/src/toolkit/bamtools_version.h +20 -0
- data/ext/bamtools/src/toolkit/bamtools_version.h.in +20 -0
- data/ext/bamtools/src/toolkit/cmake_install.cmake +52 -0
- data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/CXX.includecache +250 -0
- data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/DependInfo.cmake +29 -0
- data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/bamtools_fasta.cpp.o +0 -0
- data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/bamtools_options.cpp.o +0 -0
- data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/bamtools_pileup_engine.cpp.o +0 -0
- data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/bamtools_utilities.cpp.o +0 -0
- data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/build.make +184 -0
- data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/cmake_clean.cmake +14 -0
- data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/depend.internal +40 -0
- data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/depend.make +40 -0
- data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/flags.make +8 -0
- data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/link.txt +1 -0
- data/ext/bamtools/src/utils/CMakeFiles/BamTools-utils.dir/progress.make +5 -0
- data/ext/bamtools/src/utils/CMakeFiles/CMakeDirectoryInformation.cmake +23 -0
- data/ext/bamtools/src/utils/CMakeFiles/progress.marks +1 -0
- data/ext/bamtools/src/utils/CMakeLists.txt +30 -0
- data/ext/bamtools/src/utils/Makefile +290 -0
- data/ext/bamtools/src/utils/bamtools_fasta.cpp +632 -0
- data/ext/bamtools/src/utils/bamtools_fasta.h +47 -0
- data/ext/bamtools/src/utils/bamtools_filter_engine.h +552 -0
- data/ext/bamtools/src/utils/bamtools_filter_properties.h +195 -0
- data/ext/bamtools/src/utils/bamtools_filter_ruleparser.h +319 -0
- data/ext/bamtools/src/utils/bamtools_options.cpp +287 -0
- data/ext/bamtools/src/utils/bamtools_options.h +213 -0
- data/ext/bamtools/src/utils/bamtools_pileup_engine.cpp +327 -0
- data/ext/bamtools/src/utils/bamtools_pileup_engine.h +94 -0
- data/ext/bamtools/src/utils/bamtools_utilities.cpp +333 -0
- data/ext/bamtools/src/utils/bamtools_utilities.h +67 -0
- data/ext/bamtools/src/utils/bamtools_variant.h +128 -0
- data/ext/bamtools/src/utils/cmake_install.cmake +29 -0
- data/ext/bamtools/src/utils/utils_global.h +21 -0
- data/lib/ngs_server/version.rb +3 -0
- data/lib/ngs_server.rb +3 -0
- data/ngs_server.gemspec +23 -0
- 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
|