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,206 @@
|
|
|
1
|
+
// ***************************************************************************
|
|
2
|
+
// BamAlignment.h (c) 2009 Derek Barnett
|
|
3
|
+
// Marth Lab, Department of Biology, Boston College
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
// Last modified: 22 April 2011 (DB)
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
// Provides the BamAlignment data structure
|
|
8
|
+
// ***************************************************************************
|
|
9
|
+
|
|
10
|
+
#ifndef BAMALIGNMENT_H
|
|
11
|
+
#define BAMALIGNMENT_H
|
|
12
|
+
|
|
13
|
+
#include <api/api_global.h>
|
|
14
|
+
#include <api/BamAux.h>
|
|
15
|
+
#include <string>
|
|
16
|
+
#include <vector>
|
|
17
|
+
|
|
18
|
+
namespace BamTools {
|
|
19
|
+
|
|
20
|
+
// forward declaration of BamAlignment's friend classes
|
|
21
|
+
namespace Internal {
|
|
22
|
+
class BamReaderPrivate;
|
|
23
|
+
class BamWriterPrivate;
|
|
24
|
+
} // namespace Internal
|
|
25
|
+
|
|
26
|
+
// BamAlignment data structure
|
|
27
|
+
struct API_EXPORT BamAlignment {
|
|
28
|
+
|
|
29
|
+
// constructors & destructor
|
|
30
|
+
public:
|
|
31
|
+
BamAlignment(void);
|
|
32
|
+
BamAlignment(const BamAlignment& other);
|
|
33
|
+
~BamAlignment(void);
|
|
34
|
+
|
|
35
|
+
// queries against alignment flags
|
|
36
|
+
public:
|
|
37
|
+
bool IsDuplicate(void) const; // returns true if this read is a PCR duplicate
|
|
38
|
+
bool IsFailedQC(void) const; // returns true if this read failed quality control
|
|
39
|
+
bool IsFirstMate(void) const; // returns true if alignment is first mate on read
|
|
40
|
+
bool IsMapped(void) const; // returns true if alignment is mapped
|
|
41
|
+
bool IsMateMapped(void) const; // returns true if alignment's mate is mapped
|
|
42
|
+
bool IsMateReverseStrand(void) const; // returns true if alignment's mate mapped to reverse strand
|
|
43
|
+
bool IsPaired(void) const; // returns true if alignment part of paired-end read
|
|
44
|
+
bool IsPrimaryAlignment(void) const; // returns true if reported position is primary alignment
|
|
45
|
+
bool IsProperPair(void) const; // returns true if alignment is part of read that satisfied paired-end resolution
|
|
46
|
+
bool IsReverseStrand(void) const; // returns true if alignment mapped to reverse strand
|
|
47
|
+
bool IsSecondMate(void) const; // returns true if alignment is second mate on read
|
|
48
|
+
|
|
49
|
+
// manipulate alignment flags
|
|
50
|
+
public:
|
|
51
|
+
void SetIsDuplicate(bool ok); // sets value of "PCR duplicate" flag
|
|
52
|
+
void SetIsFailedQC(bool ok); // sets value of "failed quality control" flag
|
|
53
|
+
void SetIsFirstMate(bool ok); // sets value of "alignment is first mate" flag
|
|
54
|
+
void SetIsMapped(bool ok); // sets value of "alignment is mapped" flag
|
|
55
|
+
void SetIsMateMapped(bool ok); // sets value of "alignment's mate is mapped" flag
|
|
56
|
+
void SetIsMateReverseStrand(bool ok); // sets value of "alignment's mate mapped to reverse strand" flag
|
|
57
|
+
void SetIsPaired(bool ok); // sets value of "alignment part of paired-end read" flag
|
|
58
|
+
void SetIsPrimaryAlignment(bool ok); // sets value of "position is primary alignment" flag
|
|
59
|
+
void SetIsProperPair(bool ok); // sets value of "alignment is part of read that satisfied paired-end resolution" flag
|
|
60
|
+
void SetIsReverseStrand(bool ok); // sets value of "alignment mapped to reverse strand" flag
|
|
61
|
+
void SetIsSecondMate(bool ok); // sets value of "alignment is second mate on read" flag
|
|
62
|
+
|
|
63
|
+
// legacy methods (consider deprecated, but still available)
|
|
64
|
+
void SetIsMateUnmapped(bool ok); // complement of using SetIsMateMapped()
|
|
65
|
+
void SetIsSecondaryAlignment(bool ok); // complement of using SetIsPrimaryAlignment()
|
|
66
|
+
void SetIsUnmapped(bool ok); // complement of using SetIsMapped()
|
|
67
|
+
|
|
68
|
+
// tag data access methods
|
|
69
|
+
public:
|
|
70
|
+
|
|
71
|
+
// -------------------------------------------------------------------------------------
|
|
72
|
+
// N.B. - The following tag access methods may not be used on BamAlignments fetched
|
|
73
|
+
// using BamReader::GetNextAlignmentCore(). Attempting to use them will not result in
|
|
74
|
+
// error message (to keep output clean) but will ALWAYS return false. Only user-created
|
|
75
|
+
// BamAlignments or those retrieved using BamReader::GetNextAlignment() are valid here.
|
|
76
|
+
//
|
|
77
|
+
// You can call BuildCharData() on such an alignment retrieved by GetNextAlignmentCore().
|
|
78
|
+
// This populates all the character data, and will enable subsequent queries on tag data.
|
|
79
|
+
// -------------------------------------------------------------------------------------
|
|
80
|
+
|
|
81
|
+
// adds a tag
|
|
82
|
+
bool AddTag(const std::string& tag, const std::string& type, const std::string& value);
|
|
83
|
+
bool AddTag(const std::string& tag, const std::string& type, const uint32_t& value);
|
|
84
|
+
bool AddTag(const std::string& tag, const std::string& type, const int32_t& value);
|
|
85
|
+
bool AddTag(const std::string& tag, const std::string& type, const float& value);
|
|
86
|
+
|
|
87
|
+
// adds a "binary array" tag
|
|
88
|
+
bool AddTag(const std::string& tag, const std::vector<uint8_t>& values);
|
|
89
|
+
bool AddTag(const std::string& tag, const std::vector<int8_t>& values);
|
|
90
|
+
bool AddTag(const std::string& tag, const std::vector<uint16_t>& values);
|
|
91
|
+
bool AddTag(const std::string& tag, const std::vector<int16_t>& values);
|
|
92
|
+
bool AddTag(const std::string& tag, const std::vector<uint32_t>& values);
|
|
93
|
+
bool AddTag(const std::string& tag, const std::vector<int32_t>& values);
|
|
94
|
+
bool AddTag(const std::string& tag, const std::vector<float>& values);
|
|
95
|
+
|
|
96
|
+
// edits a tag
|
|
97
|
+
bool EditTag(const std::string& tag, const std::string& type, const std::string& value);
|
|
98
|
+
bool EditTag(const std::string& tag, const std::string& type, const uint32_t& value);
|
|
99
|
+
bool EditTag(const std::string& tag, const std::string& type, const int32_t& value);
|
|
100
|
+
bool EditTag(const std::string& tag, const std::string& type, const float& value);
|
|
101
|
+
|
|
102
|
+
// edits a "binary array" tag
|
|
103
|
+
bool EditTag(const std::string& tag, const std::vector<uint8_t>& values);
|
|
104
|
+
bool EditTag(const std::string& tag, const std::vector<int8_t>& values);
|
|
105
|
+
bool EditTag(const std::string& tag, const std::vector<uint16_t>& values);
|
|
106
|
+
bool EditTag(const std::string& tag, const std::vector<int16_t>& values);
|
|
107
|
+
bool EditTag(const std::string& tag, const std::vector<uint32_t>& values);
|
|
108
|
+
bool EditTag(const std::string& tag, const std::vector<int32_t>& values);
|
|
109
|
+
bool EditTag(const std::string& tag, const std::vector<float>& values);
|
|
110
|
+
|
|
111
|
+
// retrieves data for a tag
|
|
112
|
+
bool GetTag(const std::string& tag, std::string& destination) const;
|
|
113
|
+
bool GetTag(const std::string& tag, uint32_t& destination) const;
|
|
114
|
+
bool GetTag(const std::string& tag, int32_t& destination) const;
|
|
115
|
+
bool GetTag(const std::string& tag, float& destination) const;
|
|
116
|
+
|
|
117
|
+
// retrieves data for a "binary array" tag
|
|
118
|
+
bool GetTag(const std::string& tag, std::vector<uint32_t>& destination) const;
|
|
119
|
+
bool GetTag(const std::string& tag, std::vector<int32_t>& destination) const;
|
|
120
|
+
bool GetTag(const std::string& tag, std::vector<float>& destination) const;
|
|
121
|
+
|
|
122
|
+
// retrieves the BAM tag-type character for a tag
|
|
123
|
+
bool GetTagType(const std::string& tag, char& type) const;
|
|
124
|
+
|
|
125
|
+
// legacy methods (consider deprecated, but still available)
|
|
126
|
+
bool GetEditDistance(uint32_t& editDistance) const; // retrieves value of "NM" tag
|
|
127
|
+
bool GetReadGroup(std::string& readGroup) const; // retrieves value of "RG" tag
|
|
128
|
+
|
|
129
|
+
// returns true if alignment has a record for this tag name
|
|
130
|
+
bool HasTag(const std::string& tag) const;
|
|
131
|
+
|
|
132
|
+
// removes a tag
|
|
133
|
+
bool RemoveTag(const std::string& tag);
|
|
134
|
+
|
|
135
|
+
// additional methods
|
|
136
|
+
public:
|
|
137
|
+
// populates alignment string fields
|
|
138
|
+
bool BuildCharData(void);
|
|
139
|
+
// calculates alignment end position
|
|
140
|
+
int GetEndPosition(bool usePadded = false, bool zeroBased = true) const;
|
|
141
|
+
|
|
142
|
+
// public data fields
|
|
143
|
+
public:
|
|
144
|
+
std::string Name; // read name
|
|
145
|
+
int32_t Length; // length of query sequence
|
|
146
|
+
std::string QueryBases; // 'original' sequence (as reported from sequencing machine)
|
|
147
|
+
std::string AlignedBases; // 'aligned' sequence (includes any indels, padding, clipping)
|
|
148
|
+
std::string Qualities; // FASTQ qualities (ASCII characters, not numeric values)
|
|
149
|
+
std::string TagData; // tag data (use provided methods to query/modify)
|
|
150
|
+
int32_t RefID; // ID number for reference sequence
|
|
151
|
+
int32_t Position; // position (0-based) where alignment starts
|
|
152
|
+
uint16_t Bin; // BAM (standard) index bin number for this alignment
|
|
153
|
+
uint16_t MapQuality; // mapping quality score
|
|
154
|
+
uint32_t AlignmentFlag; // alignment bit-flag (use provided methods to query/modify)
|
|
155
|
+
std::vector<CigarOp> CigarData; // CIGAR operations for this alignment
|
|
156
|
+
int32_t MateRefID; // ID number for reference sequence where alignment's mate was aligned
|
|
157
|
+
int32_t MatePosition; // position (0-based) where alignment's mate starts
|
|
158
|
+
int32_t InsertSize; // mate-pair insert size
|
|
159
|
+
std::string Filename; // name of BAM file which this alignment comes from
|
|
160
|
+
|
|
161
|
+
//! \cond
|
|
162
|
+
// internal utility methods
|
|
163
|
+
private:
|
|
164
|
+
bool FindTag(const std::string& tag,
|
|
165
|
+
char*& pTagData,
|
|
166
|
+
const unsigned int& tagDataLength,
|
|
167
|
+
unsigned int& numBytesParsed) const;
|
|
168
|
+
bool IsValidSize(const std::string& tag,
|
|
169
|
+
const std::string& type) const;
|
|
170
|
+
bool SkipToNextTag(const char storageType,
|
|
171
|
+
char*& pTagData,
|
|
172
|
+
unsigned int& numBytesParsed) const;
|
|
173
|
+
|
|
174
|
+
// internal data
|
|
175
|
+
private:
|
|
176
|
+
|
|
177
|
+
struct BamAlignmentSupportData {
|
|
178
|
+
|
|
179
|
+
// data members
|
|
180
|
+
std::string AllCharData;
|
|
181
|
+
uint32_t BlockLength;
|
|
182
|
+
uint32_t NumCigarOperations;
|
|
183
|
+
uint32_t QueryNameLength;
|
|
184
|
+
uint32_t QuerySequenceLength;
|
|
185
|
+
bool HasCoreOnly;
|
|
186
|
+
|
|
187
|
+
// constructor
|
|
188
|
+
BamAlignmentSupportData(void)
|
|
189
|
+
: BlockLength(0)
|
|
190
|
+
, NumCigarOperations(0)
|
|
191
|
+
, QueryNameLength(0)
|
|
192
|
+
, QuerySequenceLength(0)
|
|
193
|
+
, HasCoreOnly(false)
|
|
194
|
+
{ }
|
|
195
|
+
};
|
|
196
|
+
BamAlignmentSupportData SupportData;
|
|
197
|
+
friend class Internal::BamReaderPrivate;
|
|
198
|
+
friend class Internal::BamWriterPrivate;
|
|
199
|
+
//! \endcond
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
typedef std::vector<BamAlignment> BamAlignmentVector;
|
|
203
|
+
|
|
204
|
+
} // namespace BamTools
|
|
205
|
+
|
|
206
|
+
#endif // BAMALIGNMENT_H
|
|
@@ -0,0 +1,456 @@
|
|
|
1
|
+
// ***************************************************************************
|
|
2
|
+
// BamAux.h (c) 2009 Derek Barnett, Michael Str�mberg
|
|
3
|
+
// Marth Lab, Department of Biology, Boston College
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
// Last modified: 4 March 2011 (DB)
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
// Provides data structures & utility methods that are used throughout the API.
|
|
8
|
+
// ***************************************************************************
|
|
9
|
+
|
|
10
|
+
#ifndef BAMAUX_H
|
|
11
|
+
#define BAMAUX_H
|
|
12
|
+
|
|
13
|
+
#include <api/api_global.h>
|
|
14
|
+
#include <fstream>
|
|
15
|
+
#include <iostream>
|
|
16
|
+
#include <string>
|
|
17
|
+
#include <vector>
|
|
18
|
+
|
|
19
|
+
/*! \file BamAux.h
|
|
20
|
+
|
|
21
|
+
Provides data structures & utility methods that are used throughout the API.
|
|
22
|
+
*/
|
|
23
|
+
/*! \namespace BamTools
|
|
24
|
+
\brief Contains all BamTools classes & methods.
|
|
25
|
+
|
|
26
|
+
The BamTools API contained in this namespace contains classes and methods
|
|
27
|
+
for reading, writing, and manipulating BAM alignment files.
|
|
28
|
+
*/
|
|
29
|
+
namespace BamTools {
|
|
30
|
+
|
|
31
|
+
// ----------------------------------------------------------------
|
|
32
|
+
// CigarOp
|
|
33
|
+
|
|
34
|
+
/*! \struct BamTools::CigarOp
|
|
35
|
+
\brief Represents a CIGAR alignment operation.
|
|
36
|
+
|
|
37
|
+
\sa http://samtools.sourceforge.net/SAM-1.3.pdf for more details on using CIGAR operations.
|
|
38
|
+
*/
|
|
39
|
+
struct API_EXPORT CigarOp {
|
|
40
|
+
|
|
41
|
+
char Type; //!< CIGAR operation type (MIDNSHP)
|
|
42
|
+
uint32_t Length; //!< CIGAR operation length (number of bases)
|
|
43
|
+
|
|
44
|
+
//! constructor
|
|
45
|
+
CigarOp(const char type = '\0',
|
|
46
|
+
const uint32_t& length = 0)
|
|
47
|
+
: Type(type)
|
|
48
|
+
, Length(length)
|
|
49
|
+
{ }
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
// ----------------------------------------------------------------
|
|
53
|
+
// RefData
|
|
54
|
+
|
|
55
|
+
/*! \struct BamTools::RefData
|
|
56
|
+
\brief Represents a reference sequence entry
|
|
57
|
+
*/
|
|
58
|
+
struct API_EXPORT RefData {
|
|
59
|
+
|
|
60
|
+
std::string RefName; //!< name of reference sequence
|
|
61
|
+
int32_t RefLength; //!< length of reference sequence
|
|
62
|
+
|
|
63
|
+
//! constructor
|
|
64
|
+
RefData(const std::string& name = "",
|
|
65
|
+
const int32_t& length = 0)
|
|
66
|
+
: RefName(name)
|
|
67
|
+
, RefLength(length)
|
|
68
|
+
{ }
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
//! convenience typedef for vector of RefData entries
|
|
72
|
+
typedef std::vector<RefData> RefVector;
|
|
73
|
+
|
|
74
|
+
// ----------------------------------------------------------------
|
|
75
|
+
// BamRegion
|
|
76
|
+
|
|
77
|
+
/*! \struct BamTools::BamRegion
|
|
78
|
+
\brief Represents a sequential genomic region
|
|
79
|
+
|
|
80
|
+
Allowed to span multiple (sequential) references.
|
|
81
|
+
*/
|
|
82
|
+
struct API_EXPORT BamRegion {
|
|
83
|
+
|
|
84
|
+
int LeftRefID; //!< reference ID for region's left boundary
|
|
85
|
+
int LeftPosition; //!< position for region's left boundary
|
|
86
|
+
int RightRefID; //!< reference ID for region's right boundary
|
|
87
|
+
int RightPosition; //!< position for region's right boundary
|
|
88
|
+
|
|
89
|
+
//! constructor
|
|
90
|
+
BamRegion(const int& leftID = -1,
|
|
91
|
+
const int& leftPos = -1,
|
|
92
|
+
const int& rightID = -1,
|
|
93
|
+
const int& rightPos = -1)
|
|
94
|
+
: LeftRefID(leftID)
|
|
95
|
+
, LeftPosition(leftPos)
|
|
96
|
+
, RightRefID(rightID)
|
|
97
|
+
, RightPosition(rightPos)
|
|
98
|
+
{ }
|
|
99
|
+
|
|
100
|
+
//! copy constructor
|
|
101
|
+
BamRegion(const BamRegion& other)
|
|
102
|
+
: LeftRefID(other.LeftRefID)
|
|
103
|
+
, LeftPosition(other.LeftPosition)
|
|
104
|
+
, RightRefID(other.RightRefID)
|
|
105
|
+
, RightPosition(other.RightPosition)
|
|
106
|
+
{ }
|
|
107
|
+
|
|
108
|
+
//! Clears region boundaries
|
|
109
|
+
void clear(void) {
|
|
110
|
+
LeftRefID = -1; LeftPosition = -1;
|
|
111
|
+
RightRefID = -1; RightPosition = -1;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
//! Returns true if region has a left boundary
|
|
115
|
+
bool isLeftBoundSpecified(void) const {
|
|
116
|
+
return ( LeftRefID >= 0 && LeftPosition >= 0 );
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
//! Returns true if region boundaries are not defined
|
|
120
|
+
bool isNull(void) const {
|
|
121
|
+
return ( !isLeftBoundSpecified() && !isRightBoundSpecified() );
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
//! Returns true if region has a right boundary
|
|
125
|
+
bool isRightBoundSpecified(void) const {
|
|
126
|
+
return ( RightRefID >= 0 && RightPosition >= 0 );
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
// ----------------------------------------------------------------
|
|
131
|
+
// General utility methods
|
|
132
|
+
|
|
133
|
+
/*! \fn bool FileExists(const std::string& filename)
|
|
134
|
+
\brief checks if file exists
|
|
135
|
+
|
|
136
|
+
Attempts to open file in a read-only mode.
|
|
137
|
+
|
|
138
|
+
\return \c true if file can be opened successfully
|
|
139
|
+
*/
|
|
140
|
+
API_EXPORT inline bool FileExists(const std::string& filename) {
|
|
141
|
+
std::ifstream f(filename.c_str(), std::ifstream::in);
|
|
142
|
+
return !f.fail();
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/*! \fn void SwapEndian_16(int16_t& x)
|
|
146
|
+
\brief swaps endianness of signed 16-bit integer, in place
|
|
147
|
+
|
|
148
|
+
Swaps endian representation of value in \a x.
|
|
149
|
+
*/
|
|
150
|
+
API_EXPORT inline void SwapEndian_16(int16_t& x) {
|
|
151
|
+
x = ((x >> 8) | (x << 8));
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/*! \fn void SwapEndian_16(uint16_t& x)
|
|
155
|
+
\brief swaps endianness of unsigned 16-bit integer, in place
|
|
156
|
+
|
|
157
|
+
Swaps endian representation of value in \a x.
|
|
158
|
+
*/
|
|
159
|
+
API_EXPORT inline void SwapEndian_16(uint16_t& x) {
|
|
160
|
+
x = ((x >> 8) | (x << 8));
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/*! \fn void SwapEndian_32(int32_t& x)
|
|
164
|
+
\brief swaps endianness of signed 32-bit integer, in place
|
|
165
|
+
|
|
166
|
+
Swaps endian representation of value in \a x.
|
|
167
|
+
*/
|
|
168
|
+
API_EXPORT inline void SwapEndian_32(int32_t& x) {
|
|
169
|
+
x = ( (x >> 24) |
|
|
170
|
+
((x << 8) & 0x00FF0000) |
|
|
171
|
+
((x >> 8) & 0x0000FF00) |
|
|
172
|
+
(x << 24)
|
|
173
|
+
);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/*! \fn void SwapEndian_32(uint32_t& x)
|
|
177
|
+
\brief swaps endianness of unsigned 32-bit integer, in place
|
|
178
|
+
|
|
179
|
+
Swaps endian representation of value in \a x.
|
|
180
|
+
*/
|
|
181
|
+
API_EXPORT inline void SwapEndian_32(uint32_t& x) {
|
|
182
|
+
x = ( (x >> 24) |
|
|
183
|
+
((x << 8) & 0x00FF0000) |
|
|
184
|
+
((x >> 8) & 0x0000FF00) |
|
|
185
|
+
(x << 24)
|
|
186
|
+
);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/*! \fn void SwapEndian_64(int64_t& x)
|
|
190
|
+
\brief swaps endianness of signed 64-bit integer, in place
|
|
191
|
+
|
|
192
|
+
Swaps endian representation of value in \a x.
|
|
193
|
+
*/
|
|
194
|
+
API_EXPORT inline void SwapEndian_64(int64_t& x) {
|
|
195
|
+
x = ( (x >> 56) |
|
|
196
|
+
((x << 40) & 0x00FF000000000000ll) |
|
|
197
|
+
((x << 24) & 0x0000FF0000000000ll) |
|
|
198
|
+
((x << 8) & 0x000000FF00000000ll) |
|
|
199
|
+
((x >> 8) & 0x00000000FF000000ll) |
|
|
200
|
+
((x >> 24) & 0x0000000000FF0000ll) |
|
|
201
|
+
((x >> 40) & 0x000000000000FF00ll) |
|
|
202
|
+
(x << 56)
|
|
203
|
+
);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/*! \fn void SwapEndian_64(uint64_t& x)
|
|
207
|
+
\brief swaps endianness of unsigned 64-bit integer, in place
|
|
208
|
+
|
|
209
|
+
Swaps endian representation of value in \a x.
|
|
210
|
+
*/
|
|
211
|
+
API_EXPORT inline void SwapEndian_64(uint64_t& x) {
|
|
212
|
+
x = ( (x >> 56) |
|
|
213
|
+
((x << 40) & 0x00FF000000000000ll) |
|
|
214
|
+
((x << 24) & 0x0000FF0000000000ll) |
|
|
215
|
+
((x << 8) & 0x000000FF00000000ll) |
|
|
216
|
+
((x >> 8) & 0x00000000FF000000ll) |
|
|
217
|
+
((x >> 24) & 0x0000000000FF0000ll) |
|
|
218
|
+
((x >> 40) & 0x000000000000FF00ll) |
|
|
219
|
+
(x << 56)
|
|
220
|
+
);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
/*! \fn void SwapEndian_16p(char* data)
|
|
224
|
+
\brief swaps endianness of the next 2 bytes in a buffer, in place
|
|
225
|
+
|
|
226
|
+
Swaps endian representation the next 2 bytes in \a data.
|
|
227
|
+
*/
|
|
228
|
+
API_EXPORT inline void SwapEndian_16p(char* data) {
|
|
229
|
+
uint16_t& value = (uint16_t&)*data;
|
|
230
|
+
SwapEndian_16(value);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/*! \fn void SwapEndian_32p(char* data)
|
|
234
|
+
\brief swaps endianness of the next 4 bytes in a buffer, in place
|
|
235
|
+
|
|
236
|
+
Swaps endian representation the next 4 bytes in \a data.
|
|
237
|
+
*/
|
|
238
|
+
API_EXPORT inline void SwapEndian_32p(char* data) {
|
|
239
|
+
uint32_t& value = (uint32_t&)*data;
|
|
240
|
+
SwapEndian_32(value);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
/*! \fn void SwapEndian_64p(char* data)
|
|
244
|
+
\brief swaps endianness of the next 8 bytes in a buffer, in place
|
|
245
|
+
|
|
246
|
+
Swaps endian representation the next 8 bytes in \a data.
|
|
247
|
+
*/
|
|
248
|
+
API_EXPORT inline void SwapEndian_64p(char* data) {
|
|
249
|
+
uint64_t& value = (uint64_t&)*data;
|
|
250
|
+
SwapEndian_64(value);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/*! \fn bool SystemIsBigEndian(void)
|
|
254
|
+
\brief checks host architecture's byte order
|
|
255
|
+
\return \c true if system uses big-endian ordering
|
|
256
|
+
*/
|
|
257
|
+
API_EXPORT inline bool SystemIsBigEndian(void) {
|
|
258
|
+
const uint16_t one = 0x0001;
|
|
259
|
+
return ((*(char*) &one) == 0 );
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
/*! \fn void PackUnsignedInt(char* buffer, unsigned int value)
|
|
263
|
+
\brief stores unsigned integer value in a byte buffer
|
|
264
|
+
|
|
265
|
+
\param buffer destination buffer
|
|
266
|
+
\param value unsigned integer to 'pack' in buffer
|
|
267
|
+
*/
|
|
268
|
+
API_EXPORT inline void PackUnsignedInt(char* buffer, unsigned int value) {
|
|
269
|
+
buffer[0] = (char)value;
|
|
270
|
+
buffer[1] = (char)(value >> 8);
|
|
271
|
+
buffer[2] = (char)(value >> 16);
|
|
272
|
+
buffer[3] = (char)(value >> 24);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
/*! \fn void PackUnsignedShort(char* buffer, unsigned short value)
|
|
276
|
+
\brief stores unsigned short integer value in a byte buffer
|
|
277
|
+
|
|
278
|
+
\param buffer destination buffer
|
|
279
|
+
\param value unsigned short integer to 'pack' in buffer
|
|
280
|
+
*/
|
|
281
|
+
API_EXPORT inline void PackUnsignedShort(char* buffer, unsigned short value) {
|
|
282
|
+
buffer[0] = (char)value;
|
|
283
|
+
buffer[1] = (char)(value >> 8);
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
/*! \fn double UnpackDouble(const char* buffer)
|
|
287
|
+
\brief reads a double value from byte buffer
|
|
288
|
+
|
|
289
|
+
\param buffer source byte buffer
|
|
290
|
+
\return the (double) value read from the buffer
|
|
291
|
+
*/
|
|
292
|
+
API_EXPORT inline double UnpackDouble(const char* buffer) {
|
|
293
|
+
union { double value; unsigned char valueBuffer[sizeof(double)]; } un;
|
|
294
|
+
un.value = 0;
|
|
295
|
+
un.valueBuffer[0] = buffer[0];
|
|
296
|
+
un.valueBuffer[1] = buffer[1];
|
|
297
|
+
un.valueBuffer[2] = buffer[2];
|
|
298
|
+
un.valueBuffer[3] = buffer[3];
|
|
299
|
+
un.valueBuffer[4] = buffer[4];
|
|
300
|
+
un.valueBuffer[5] = buffer[5];
|
|
301
|
+
un.valueBuffer[6] = buffer[6];
|
|
302
|
+
un.valueBuffer[7] = buffer[7];
|
|
303
|
+
return un.value;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
/*! \fn double UnpackDouble(char* buffer)
|
|
307
|
+
\brief reads a double value from byte buffer
|
|
308
|
+
|
|
309
|
+
This is an overloaded function.
|
|
310
|
+
|
|
311
|
+
\param buffer source byte buffer
|
|
312
|
+
\return the (double) value read from the buffer
|
|
313
|
+
*/
|
|
314
|
+
API_EXPORT inline double UnpackDouble(char* buffer) {
|
|
315
|
+
return UnpackDouble( (const char*)buffer );
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
/*! \fn double UnpackFloat(const char* buffer)
|
|
319
|
+
\brief reads a float value from byte buffer
|
|
320
|
+
|
|
321
|
+
\param buffer source byte buffer
|
|
322
|
+
\return the (float) value read from the buffer
|
|
323
|
+
*/
|
|
324
|
+
API_EXPORT inline float UnpackFloat(const char* buffer) {
|
|
325
|
+
union { float value; unsigned char valueBuffer[sizeof(float)]; } un;
|
|
326
|
+
un.value = 0;
|
|
327
|
+
un.valueBuffer[0] = buffer[0];
|
|
328
|
+
un.valueBuffer[1] = buffer[1];
|
|
329
|
+
un.valueBuffer[2] = buffer[2];
|
|
330
|
+
un.valueBuffer[3] = buffer[3];
|
|
331
|
+
return un.value;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
/*! \fn double UnpackFloat(char* buffer)
|
|
335
|
+
\brief reads a float value from byte buffer
|
|
336
|
+
|
|
337
|
+
This is an overloaded function.
|
|
338
|
+
|
|
339
|
+
\param buffer source byte buffer
|
|
340
|
+
\return the (float) value read from the buffer
|
|
341
|
+
*/
|
|
342
|
+
API_EXPORT inline float UnpackFloat(char* buffer) {
|
|
343
|
+
return UnpackFloat( (const char*)buffer );
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
/*! \fn signed int UnpackSignedInt(const char* buffer)
|
|
347
|
+
\brief reads a signed integer value from byte buffer
|
|
348
|
+
|
|
349
|
+
\param buffer source byte buffer
|
|
350
|
+
\return the (signed int) value read from the buffer
|
|
351
|
+
*/
|
|
352
|
+
API_EXPORT inline signed int UnpackSignedInt(const char* buffer) {
|
|
353
|
+
union { signed int value; unsigned char valueBuffer[sizeof(signed int)]; } un;
|
|
354
|
+
un.value = 0;
|
|
355
|
+
un.valueBuffer[0] = buffer[0];
|
|
356
|
+
un.valueBuffer[1] = buffer[1];
|
|
357
|
+
un.valueBuffer[2] = buffer[2];
|
|
358
|
+
un.valueBuffer[3] = buffer[3];
|
|
359
|
+
return un.value;
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
/*! \fn signed int UnpackSignedInt(char* buffer)
|
|
363
|
+
\brief reads a signed integer value from byte buffer
|
|
364
|
+
|
|
365
|
+
This is an overloaded function.
|
|
366
|
+
|
|
367
|
+
\param buffer source byte buffer
|
|
368
|
+
\return the (signed int) value read from the buffer
|
|
369
|
+
*/
|
|
370
|
+
API_EXPORT inline signed int UnpackSignedInt(char* buffer) {
|
|
371
|
+
return UnpackSignedInt( (const char*) buffer );
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
/*! \fn signed short UnpackSignedShort(const char* buffer)
|
|
375
|
+
\brief reads a signed short integer value from byte buffer
|
|
376
|
+
|
|
377
|
+
\param buffer source byte buffer
|
|
378
|
+
\return the (signed short) value read from the buffer
|
|
379
|
+
*/
|
|
380
|
+
API_EXPORT inline signed short UnpackSignedShort(const char* buffer) {
|
|
381
|
+
union { signed short value; unsigned char valueBuffer[sizeof(signed short)]; } un;
|
|
382
|
+
un.value = 0;
|
|
383
|
+
un.valueBuffer[0] = buffer[0];
|
|
384
|
+
un.valueBuffer[1] = buffer[1];
|
|
385
|
+
return un.value;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
/*! \fn signed short UnpackSignedShort(char* buffer)
|
|
389
|
+
\brief reads a signed short integer value from byte buffer
|
|
390
|
+
|
|
391
|
+
This is an overloaded function.
|
|
392
|
+
|
|
393
|
+
\param buffer source byte buffer
|
|
394
|
+
\return the (signed short) value read from the buffer
|
|
395
|
+
*/
|
|
396
|
+
API_EXPORT inline signed short UnpackSignedShort(char* buffer) {
|
|
397
|
+
return UnpackSignedShort( (const char*)buffer );
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
/*! \fn unsigned int UnpackUnsignedInt(const char* buffer)
|
|
401
|
+
\brief reads an unsigned integer value from byte buffer
|
|
402
|
+
|
|
403
|
+
\param buffer source byte buffer
|
|
404
|
+
\return the (unsigned int) value read from the buffer
|
|
405
|
+
*/
|
|
406
|
+
API_EXPORT inline unsigned int UnpackUnsignedInt(const char* buffer) {
|
|
407
|
+
union { unsigned int value; unsigned char valueBuffer[sizeof(unsigned int)]; } un;
|
|
408
|
+
un.value = 0;
|
|
409
|
+
un.valueBuffer[0] = buffer[0];
|
|
410
|
+
un.valueBuffer[1] = buffer[1];
|
|
411
|
+
un.valueBuffer[2] = buffer[2];
|
|
412
|
+
un.valueBuffer[3] = buffer[3];
|
|
413
|
+
return un.value;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
/*! \fn unsigned int UnpackUnsignedInt(char* buffer)
|
|
417
|
+
\brief reads an unsigned integer value from byte buffer
|
|
418
|
+
|
|
419
|
+
This is an overloaded function.
|
|
420
|
+
|
|
421
|
+
\param buffer source byte buffer
|
|
422
|
+
\return the (unsigned int) value read from the buffer
|
|
423
|
+
*/
|
|
424
|
+
API_EXPORT inline unsigned int UnpackUnsignedInt(char* buffer) {
|
|
425
|
+
return UnpackUnsignedInt( (const char*)buffer );
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
/*! \fn unsigned short UnpackUnsignedShort(const char* buffer)
|
|
429
|
+
\brief reads an unsigned short integer value from byte buffer
|
|
430
|
+
|
|
431
|
+
\param buffer source byte buffer
|
|
432
|
+
\return the (unsigned short) value read from the buffer
|
|
433
|
+
*/
|
|
434
|
+
API_EXPORT inline unsigned short UnpackUnsignedShort(const char* buffer) {
|
|
435
|
+
union { unsigned short value; unsigned char valueBuffer[sizeof(unsigned short)]; } un;
|
|
436
|
+
un.value = 0;
|
|
437
|
+
un.valueBuffer[0] = buffer[0];
|
|
438
|
+
un.valueBuffer[1] = buffer[1];
|
|
439
|
+
return un.value;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
/*! \fn unsigned short UnpackUnsignedShort(char* buffer)
|
|
443
|
+
\brief reads an unsigned short integer value from byte buffer
|
|
444
|
+
|
|
445
|
+
This is an overloaded function.
|
|
446
|
+
|
|
447
|
+
\param buffer source byte buffer
|
|
448
|
+
\return the (unsigned short) value read from the buffer
|
|
449
|
+
*/
|
|
450
|
+
API_EXPORT inline unsigned short UnpackUnsignedShort(char* buffer) {
|
|
451
|
+
return UnpackUnsignedShort( (const char*)buffer );
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
} // namespace BamTools
|
|
455
|
+
|
|
456
|
+
#endif // BAMAUX_H
|