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,380 @@
|
|
1
|
+
// ***************************************************************************
|
2
|
+
// BamReader_p.cpp (c) 2009 Derek Barnett
|
3
|
+
// Marth Lab, Department of Biology, Boston College
|
4
|
+
// ---------------------------------------------------------------------------
|
5
|
+
// Last modified: 10 May 2011 (DB)
|
6
|
+
// ---------------------------------------------------------------------------
|
7
|
+
// Provides the basic functionality for reading BAM files
|
8
|
+
// ***************************************************************************
|
9
|
+
|
10
|
+
#include <api/BamConstants.h>
|
11
|
+
#include <api/BamReader.h>
|
12
|
+
#include <api/internal/BamHeader_p.h>
|
13
|
+
#include <api/internal/BamRandomAccessController_p.h>
|
14
|
+
#include <api/internal/BamReader_p.h>
|
15
|
+
#include <api/internal/BamStandardIndex_p.h>
|
16
|
+
#include <api/internal/BamToolsIndex_p.h>
|
17
|
+
#include <api/internal/BgzfStream_p.h>
|
18
|
+
using namespace BamTools;
|
19
|
+
using namespace BamTools::Internal;
|
20
|
+
|
21
|
+
#include <algorithm>
|
22
|
+
#include <iostream>
|
23
|
+
#include <iterator>
|
24
|
+
#include <vector>
|
25
|
+
using namespace std;
|
26
|
+
|
27
|
+
// constructor
|
28
|
+
BamReaderPrivate::BamReaderPrivate(BamReader* parent)
|
29
|
+
: m_alignmentsBeginOffset(0)
|
30
|
+
, m_parent(parent)
|
31
|
+
{
|
32
|
+
m_isBigEndian = BamTools::SystemIsBigEndian();
|
33
|
+
}
|
34
|
+
|
35
|
+
// destructor
|
36
|
+
BamReaderPrivate::~BamReaderPrivate(void) {
|
37
|
+
Close();
|
38
|
+
}
|
39
|
+
|
40
|
+
// closes the BAM file
|
41
|
+
void BamReaderPrivate::Close(void) {
|
42
|
+
|
43
|
+
// clear header & reference data
|
44
|
+
m_references.clear();
|
45
|
+
m_header.Clear();
|
46
|
+
|
47
|
+
// close internal
|
48
|
+
m_randomAccessController.Close();
|
49
|
+
m_stream.Close();
|
50
|
+
|
51
|
+
// clear filename
|
52
|
+
m_filename.clear();
|
53
|
+
}
|
54
|
+
|
55
|
+
// creates an index file of requested type on current BAM file
|
56
|
+
bool BamReaderPrivate::CreateIndex(const BamIndex::IndexType& type) {
|
57
|
+
if ( !IsOpen() ) return false;
|
58
|
+
return m_randomAccessController.CreateIndex(this, type);
|
59
|
+
}
|
60
|
+
|
61
|
+
// return path & filename of current BAM file
|
62
|
+
const string BamReaderPrivate::Filename(void) const {
|
63
|
+
return m_filename;
|
64
|
+
}
|
65
|
+
|
66
|
+
// return header data as std::string
|
67
|
+
string BamReaderPrivate::GetHeaderText(void) const {
|
68
|
+
return m_header.ToString();
|
69
|
+
}
|
70
|
+
|
71
|
+
// return header data as SamHeader object
|
72
|
+
SamHeader BamReaderPrivate::GetSamHeader(void) const {
|
73
|
+
return m_header.ToSamHeader();
|
74
|
+
}
|
75
|
+
|
76
|
+
// get next alignment (with character data fully parsed)
|
77
|
+
bool BamReaderPrivate::GetNextAlignment(BamAlignment& alignment) {
|
78
|
+
|
79
|
+
// if valid alignment found
|
80
|
+
if ( GetNextAlignmentCore(alignment) ) {
|
81
|
+
|
82
|
+
// store alignment's "source" filename
|
83
|
+
alignment.Filename = m_filename;
|
84
|
+
|
85
|
+
// return success/failure of parsing char data
|
86
|
+
return alignment.BuildCharData();
|
87
|
+
}
|
88
|
+
|
89
|
+
// no valid alignment found
|
90
|
+
return false;
|
91
|
+
}
|
92
|
+
|
93
|
+
// retrieves next available alignment core data (returns success/fail)
|
94
|
+
// ** DOES NOT populate any character data fields (read name, bases, qualities, tag data, filename)
|
95
|
+
// these can be accessed, if necessary, from the supportData
|
96
|
+
// useful for operations requiring ONLY positional or other alignment-related information
|
97
|
+
bool BamReaderPrivate::GetNextAlignmentCore(BamAlignment& alignment) {
|
98
|
+
|
99
|
+
// skip if region is set but has no alignments
|
100
|
+
if ( m_randomAccessController.HasRegion() &&
|
101
|
+
!m_randomAccessController.RegionHasAlignments() )
|
102
|
+
{
|
103
|
+
return false;
|
104
|
+
}
|
105
|
+
|
106
|
+
// if can't read next alignment
|
107
|
+
if ( !LoadNextAlignment(alignment) )
|
108
|
+
return false;
|
109
|
+
|
110
|
+
// check alignment's region-overlap state
|
111
|
+
BamRandomAccessController::RegionState state = m_randomAccessController.AlignmentState(alignment);
|
112
|
+
|
113
|
+
// if alignment starts after region, no need to keep reading
|
114
|
+
if ( state == BamRandomAccessController::AfterRegion )
|
115
|
+
return false;
|
116
|
+
|
117
|
+
// read until overlap is found
|
118
|
+
while ( state != BamRandomAccessController::OverlapsRegion ) {
|
119
|
+
|
120
|
+
// if can't read next alignment
|
121
|
+
if ( !LoadNextAlignment(alignment) )
|
122
|
+
return false;
|
123
|
+
|
124
|
+
// check alignment's region-overlap state
|
125
|
+
state = m_randomAccessController.AlignmentState(alignment);
|
126
|
+
|
127
|
+
// if alignment starts after region, no need to keep reading
|
128
|
+
if ( state == BamRandomAccessController::AfterRegion )
|
129
|
+
return false;
|
130
|
+
}
|
131
|
+
|
132
|
+
// if we get here, we found the next 'valid' alignment
|
133
|
+
// (e.g. overlaps current region if one was set, simply the next alignment if not)
|
134
|
+
alignment.SupportData.HasCoreOnly = true;
|
135
|
+
return true;
|
136
|
+
}
|
137
|
+
|
138
|
+
int BamReaderPrivate::GetReferenceCount(void) const {
|
139
|
+
return m_references.size();
|
140
|
+
}
|
141
|
+
|
142
|
+
const RefVector& BamReaderPrivate::GetReferenceData(void) const {
|
143
|
+
return m_references;
|
144
|
+
}
|
145
|
+
|
146
|
+
// returns RefID for given RefName (returns References.size() if not found)
|
147
|
+
int BamReaderPrivate::GetReferenceID(const string& refName) const {
|
148
|
+
|
149
|
+
// retrieve names from reference data
|
150
|
+
vector<string> refNames;
|
151
|
+
RefVector::const_iterator refIter = m_references.begin();
|
152
|
+
RefVector::const_iterator refEnd = m_references.end();
|
153
|
+
for ( ; refIter != refEnd; ++refIter)
|
154
|
+
refNames.push_back( (*refIter).RefName );
|
155
|
+
|
156
|
+
// return 'index-of' refName (or -1 if not found)
|
157
|
+
int index = distance(refNames.begin(), find(refNames.begin(), refNames.end(), refName));
|
158
|
+
if ( index == (int)m_references.size() ) return -1;
|
159
|
+
else return index;
|
160
|
+
}
|
161
|
+
|
162
|
+
bool BamReaderPrivate::HasIndex(void) const {
|
163
|
+
return m_randomAccessController.HasIndex();
|
164
|
+
}
|
165
|
+
|
166
|
+
bool BamReaderPrivate::IsOpen(void) const {
|
167
|
+
return m_stream.IsOpen;
|
168
|
+
}
|
169
|
+
|
170
|
+
// load BAM header data
|
171
|
+
bool BamReaderPrivate::LoadHeaderData(void) {
|
172
|
+
return m_header.Load(&m_stream);
|
173
|
+
}
|
174
|
+
|
175
|
+
// populates BamAlignment with alignment data under file pointer, returns success/fail
|
176
|
+
bool BamReaderPrivate::LoadNextAlignment(BamAlignment& alignment) {
|
177
|
+
|
178
|
+
// read in the 'block length' value, make sure it's not zero
|
179
|
+
char buffer[sizeof(uint32_t)];
|
180
|
+
m_stream.Read(buffer, sizeof(uint32_t));
|
181
|
+
alignment.SupportData.BlockLength = BamTools::UnpackUnsignedInt(buffer);
|
182
|
+
if ( m_isBigEndian ) BamTools::SwapEndian_32(alignment.SupportData.BlockLength);
|
183
|
+
if ( alignment.SupportData.BlockLength == 0 ) return false;
|
184
|
+
|
185
|
+
// read in core alignment data, make sure the right size of data was read
|
186
|
+
char x[Constants::BAM_CORE_SIZE];
|
187
|
+
if ( m_stream.Read(x, Constants::BAM_CORE_SIZE) != Constants::BAM_CORE_SIZE )
|
188
|
+
return false;
|
189
|
+
|
190
|
+
// swap core endian-ness if necessary
|
191
|
+
if ( m_isBigEndian ) {
|
192
|
+
for ( int i = 0; i < Constants::BAM_CORE_SIZE; i+=sizeof(uint32_t) )
|
193
|
+
BamTools::SwapEndian_32p(&x[i]);
|
194
|
+
}
|
195
|
+
|
196
|
+
// set BamAlignment 'core' and 'support' data
|
197
|
+
alignment.RefID = BamTools::UnpackSignedInt(&x[0]);
|
198
|
+
alignment.Position = BamTools::UnpackSignedInt(&x[4]);
|
199
|
+
|
200
|
+
unsigned int tempValue = BamTools::UnpackUnsignedInt(&x[8]);
|
201
|
+
alignment.Bin = tempValue >> 16;
|
202
|
+
alignment.MapQuality = tempValue >> 8 & 0xff;
|
203
|
+
alignment.SupportData.QueryNameLength = tempValue & 0xff;
|
204
|
+
|
205
|
+
tempValue = BamTools::UnpackUnsignedInt(&x[12]);
|
206
|
+
alignment.AlignmentFlag = tempValue >> 16;
|
207
|
+
alignment.SupportData.NumCigarOperations = tempValue & 0xffff;
|
208
|
+
|
209
|
+
alignment.SupportData.QuerySequenceLength = BamTools::UnpackUnsignedInt(&x[16]);
|
210
|
+
alignment.MateRefID = BamTools::UnpackSignedInt(&x[20]);
|
211
|
+
alignment.MatePosition = BamTools::UnpackSignedInt(&x[24]);
|
212
|
+
alignment.InsertSize = BamTools::UnpackSignedInt(&x[28]);
|
213
|
+
|
214
|
+
// set BamAlignment length
|
215
|
+
alignment.Length = alignment.SupportData.QuerySequenceLength;
|
216
|
+
|
217
|
+
// read in character data - make sure proper data size was read
|
218
|
+
bool readCharDataOK = false;
|
219
|
+
const unsigned int dataLength = alignment.SupportData.BlockLength - Constants::BAM_CORE_SIZE;
|
220
|
+
char* allCharData = (char*)calloc(sizeof(char), dataLength);
|
221
|
+
|
222
|
+
if ( m_stream.Read(allCharData, dataLength) == (signed int)dataLength ) {
|
223
|
+
|
224
|
+
// store 'allCharData' in supportData structure
|
225
|
+
alignment.SupportData.AllCharData.assign((const char*)allCharData, dataLength);
|
226
|
+
|
227
|
+
// set success flag
|
228
|
+
readCharDataOK = true;
|
229
|
+
|
230
|
+
// save CIGAR ops
|
231
|
+
// need to calculate this here so that BamAlignment::GetEndPosition() performs correctly,
|
232
|
+
// even when GetNextAlignmentCore() is called
|
233
|
+
const unsigned int cigarDataOffset = alignment.SupportData.QueryNameLength;
|
234
|
+
uint32_t* cigarData = (uint32_t*)(allCharData + cigarDataOffset);
|
235
|
+
CigarOp op;
|
236
|
+
alignment.CigarData.clear();
|
237
|
+
alignment.CigarData.reserve(alignment.SupportData.NumCigarOperations);
|
238
|
+
for ( unsigned int i = 0; i < alignment.SupportData.NumCigarOperations; ++i ) {
|
239
|
+
|
240
|
+
// swap endian-ness if necessary
|
241
|
+
if ( m_isBigEndian ) BamTools::SwapEndian_32(cigarData[i]);
|
242
|
+
|
243
|
+
// build CigarOp structure
|
244
|
+
op.Length = (cigarData[i] >> Constants::BAM_CIGAR_SHIFT);
|
245
|
+
op.Type = Constants::BAM_CIGAR_LOOKUP[ (cigarData[i] & Constants::BAM_CIGAR_MASK) ];
|
246
|
+
|
247
|
+
// save CigarOp
|
248
|
+
alignment.CigarData.push_back(op);
|
249
|
+
}
|
250
|
+
}
|
251
|
+
|
252
|
+
// clean up & return parsing success/failure
|
253
|
+
free(allCharData);
|
254
|
+
return readCharDataOK;
|
255
|
+
}
|
256
|
+
|
257
|
+
// loads reference data from BAM file
|
258
|
+
bool BamReaderPrivate::LoadReferenceData(void) {
|
259
|
+
|
260
|
+
// get number of reference sequences
|
261
|
+
char buffer[sizeof(uint32_t)];
|
262
|
+
m_stream.Read(buffer, sizeof(uint32_t));
|
263
|
+
uint32_t numberRefSeqs = BamTools::UnpackUnsignedInt(buffer);
|
264
|
+
if ( m_isBigEndian ) BamTools::SwapEndian_32(numberRefSeqs);
|
265
|
+
m_references.reserve((int)numberRefSeqs);
|
266
|
+
|
267
|
+
// iterate over all references in header
|
268
|
+
for ( unsigned int i = 0; i != numberRefSeqs; ++i ) {
|
269
|
+
|
270
|
+
// get length of reference name
|
271
|
+
m_stream.Read(buffer, sizeof(uint32_t));
|
272
|
+
uint32_t refNameLength = BamTools::UnpackUnsignedInt(buffer);
|
273
|
+
if ( m_isBigEndian ) BamTools::SwapEndian_32(refNameLength);
|
274
|
+
char* refName = (char*)calloc(refNameLength, 1);
|
275
|
+
|
276
|
+
// get reference name and reference sequence length
|
277
|
+
m_stream.Read(refName, refNameLength);
|
278
|
+
m_stream.Read(buffer, sizeof(int32_t));
|
279
|
+
int32_t refLength = BamTools::UnpackSignedInt(buffer);
|
280
|
+
if ( m_isBigEndian ) BamTools::SwapEndian_32(refLength);
|
281
|
+
|
282
|
+
// store data for reference
|
283
|
+
RefData aReference;
|
284
|
+
aReference.RefName = (string)((const char*)refName);
|
285
|
+
aReference.RefLength = refLength;
|
286
|
+
m_references.push_back(aReference);
|
287
|
+
|
288
|
+
// clean up calloc-ed temp variable
|
289
|
+
free(refName);
|
290
|
+
}
|
291
|
+
|
292
|
+
// return success
|
293
|
+
return true;
|
294
|
+
}
|
295
|
+
|
296
|
+
bool BamReaderPrivate::LocateIndex(const BamIndex::IndexType& preferredType) {
|
297
|
+
return m_randomAccessController.LocateIndex(this, preferredType);
|
298
|
+
}
|
299
|
+
|
300
|
+
// opens BAM file (and index)
|
301
|
+
bool BamReaderPrivate::Open(const string& filename) {
|
302
|
+
|
303
|
+
// close current BAM file if open
|
304
|
+
if ( m_stream.IsOpen )
|
305
|
+
Close();
|
306
|
+
|
307
|
+
// attempt to open BgzfStream for reading
|
308
|
+
if ( !m_stream.Open(filename, "rb") ) {
|
309
|
+
cerr << "BamReader ERROR: Could not open BGZF stream for " << filename << endl;
|
310
|
+
return false;
|
311
|
+
}
|
312
|
+
|
313
|
+
// attempt to load header data
|
314
|
+
if ( !LoadHeaderData() ) {
|
315
|
+
cerr << "BamReader ERROR: Could not load header data for " << filename << endl;
|
316
|
+
Close();
|
317
|
+
return false;
|
318
|
+
}
|
319
|
+
|
320
|
+
// attempt to load reference data
|
321
|
+
if ( !LoadReferenceData() ) {
|
322
|
+
cerr << "BamReader ERROR: Could not load reference data for " << filename << endl;
|
323
|
+
Close();
|
324
|
+
return false;
|
325
|
+
}
|
326
|
+
|
327
|
+
// if all OK, store filename & offset of first alignment
|
328
|
+
m_filename = filename;
|
329
|
+
m_alignmentsBeginOffset = m_stream.Tell();
|
330
|
+
|
331
|
+
// return success
|
332
|
+
return true;
|
333
|
+
}
|
334
|
+
|
335
|
+
bool BamReaderPrivate::OpenIndex(const std::string& indexFilename) {
|
336
|
+
return m_randomAccessController.OpenIndex(indexFilename, this);
|
337
|
+
}
|
338
|
+
|
339
|
+
// returns BAM file pointer to beginning of alignment data
|
340
|
+
bool BamReaderPrivate::Rewind(void) {
|
341
|
+
|
342
|
+
// attempt rewind to first alignment
|
343
|
+
if ( !m_stream.Seek(m_alignmentsBeginOffset) )
|
344
|
+
return false;
|
345
|
+
|
346
|
+
// verify that we can read first alignment
|
347
|
+
BamAlignment al;
|
348
|
+
if ( !LoadNextAlignment(al) )
|
349
|
+
return false;
|
350
|
+
|
351
|
+
// reset region
|
352
|
+
m_randomAccessController.ClearRegion();
|
353
|
+
|
354
|
+
// rewind back to beginning of first alignment
|
355
|
+
// return success/fail of seek
|
356
|
+
return m_stream.Seek(m_alignmentsBeginOffset);
|
357
|
+
}
|
358
|
+
|
359
|
+
bool BamReaderPrivate::Seek(const int64_t& position) {
|
360
|
+
return m_stream.Seek(position);
|
361
|
+
}
|
362
|
+
|
363
|
+
void BamReaderPrivate::SetIndex(BamIndex* index) {
|
364
|
+
m_randomAccessController.SetIndex(index);
|
365
|
+
}
|
366
|
+
|
367
|
+
// change the index caching behavior
|
368
|
+
void BamReaderPrivate::SetIndexCacheMode(const BamIndex::IndexCacheMode& mode) {
|
369
|
+
m_randomAccessController.SetIndexCacheMode(mode);
|
370
|
+
}
|
371
|
+
|
372
|
+
// sets current region & attempts to jump to it
|
373
|
+
// returns success/failure
|
374
|
+
bool BamReaderPrivate::SetRegion(const BamRegion& region) {
|
375
|
+
return m_randomAccessController.SetRegion(this, region, m_references.size());
|
376
|
+
}
|
377
|
+
|
378
|
+
int64_t BamReaderPrivate::Tell(void) const {
|
379
|
+
return m_stream.Tell();
|
380
|
+
}
|
@@ -0,0 +1,112 @@
|
|
1
|
+
// ***************************************************************************
|
2
|
+
// BamReader_p.h (c) 2010 Derek Barnett
|
3
|
+
// Marth Lab, Department of Biology, Boston College
|
4
|
+
// ---------------------------------------------------------------------------
|
5
|
+
// Last modified: 5 April 2011 (DB)
|
6
|
+
// ---------------------------------------------------------------------------
|
7
|
+
// Provides the basic functionality for reading BAM files
|
8
|
+
// ***************************************************************************
|
9
|
+
|
10
|
+
#ifndef BAMREADER_P_H
|
11
|
+
#define BAMREADER_P_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 <api/BamAlignment.h>
|
24
|
+
#include <api/BamIndex.h>
|
25
|
+
#include <api/BamReader.h>
|
26
|
+
#include <api/SamHeader.h>
|
27
|
+
#include <api/internal/BamHeader_p.h>
|
28
|
+
#include <api/internal/BamRandomAccessController_p.h>
|
29
|
+
#include <api/internal/BgzfStream_p.h>
|
30
|
+
#include <string>
|
31
|
+
|
32
|
+
namespace BamTools {
|
33
|
+
namespace Internal {
|
34
|
+
|
35
|
+
class BamReaderPrivate {
|
36
|
+
|
37
|
+
// ctor & dtor
|
38
|
+
public:
|
39
|
+
BamReaderPrivate(BamReader* parent);
|
40
|
+
~BamReaderPrivate(void);
|
41
|
+
|
42
|
+
// BamReader interface
|
43
|
+
public:
|
44
|
+
|
45
|
+
// file operations
|
46
|
+
void Close(void);
|
47
|
+
const std::string Filename(void) const;
|
48
|
+
bool IsOpen(void) const;
|
49
|
+
bool Open(const std::string& filename);
|
50
|
+
bool Rewind(void);
|
51
|
+
bool SetRegion(const BamRegion& region);
|
52
|
+
|
53
|
+
// access alignment data
|
54
|
+
bool GetNextAlignment(BamAlignment& alignment);
|
55
|
+
bool GetNextAlignmentCore(BamAlignment& alignment);
|
56
|
+
|
57
|
+
// access auxiliary data
|
58
|
+
std::string GetHeaderText(void) const;
|
59
|
+
SamHeader GetSamHeader(void) const;
|
60
|
+
int GetReferenceCount(void) const;
|
61
|
+
const RefVector& GetReferenceData(void) const;
|
62
|
+
int GetReferenceID(const std::string& refName) const;
|
63
|
+
|
64
|
+
// index operations
|
65
|
+
bool CreateIndex(const BamIndex::IndexType& type);
|
66
|
+
bool HasIndex(void) const;
|
67
|
+
bool LocateIndex(const BamIndex::IndexType& preferredType);
|
68
|
+
bool OpenIndex(const std::string& indexFilename);
|
69
|
+
void SetIndex(BamIndex* index);
|
70
|
+
void SetIndexCacheMode(const BamIndex::IndexCacheMode& mode);
|
71
|
+
|
72
|
+
// internal methods, but available as a BamReaderPrivate 'interface'
|
73
|
+
//
|
74
|
+
// these methods should only be used by BamTools::Internal classes
|
75
|
+
// (currently only used by the BamIndex subclasses)
|
76
|
+
public:
|
77
|
+
// retrieves header text from BAM file
|
78
|
+
bool LoadHeaderData(void);
|
79
|
+
// retrieves BAM alignment under file pointer
|
80
|
+
// (does no overlap checking or character data parsing)
|
81
|
+
bool LoadNextAlignment(BamAlignment& alignment);
|
82
|
+
// builds reference data structure from BAM file
|
83
|
+
bool LoadReferenceData(void);
|
84
|
+
// seek reader to file position
|
85
|
+
bool Seek(const int64_t& position);
|
86
|
+
// return reader's file position
|
87
|
+
int64_t Tell(void) const;
|
88
|
+
|
89
|
+
// data members
|
90
|
+
public:
|
91
|
+
|
92
|
+
// general BAM file data
|
93
|
+
int64_t m_alignmentsBeginOffset;
|
94
|
+
std::string m_filename;
|
95
|
+
RefVector m_references;
|
96
|
+
|
97
|
+
// system data
|
98
|
+
bool m_isBigEndian;
|
99
|
+
|
100
|
+
// parent BamReader
|
101
|
+
BamReader* m_parent;
|
102
|
+
|
103
|
+
// BamReaderPrivate components
|
104
|
+
BamHeader m_header;
|
105
|
+
BamRandomAccessController m_randomAccessController;
|
106
|
+
BgzfStream m_stream;
|
107
|
+
};
|
108
|
+
|
109
|
+
} // namespace Internal
|
110
|
+
} // namespace BamTools
|
111
|
+
|
112
|
+
#endif // BAMREADER_P_H
|