ngs_server 0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|