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,333 @@
|
|
|
1
|
+
// ***************************************************************************
|
|
2
|
+
// bamtools_utilities.cpp (c) 2010 Derek Barnett, Erik Garrison
|
|
3
|
+
// Marth Lab, Department of Biology, Boston College
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
// Last modified: 9 June 2011
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
// Provides general utilities used by BamTools sub-tools.
|
|
8
|
+
// ***************************************************************************
|
|
9
|
+
|
|
10
|
+
#include <api/BamMultiReader.h>
|
|
11
|
+
#include <api/BamReader.h>
|
|
12
|
+
#include <utils/bamtools_utilities.h>
|
|
13
|
+
using namespace BamTools;
|
|
14
|
+
|
|
15
|
+
#include <algorithm>
|
|
16
|
+
#include <cstdlib>
|
|
17
|
+
#include <cstring>
|
|
18
|
+
#include <fstream>
|
|
19
|
+
#include <iostream>
|
|
20
|
+
#include <sstream>
|
|
21
|
+
using namespace std;
|
|
22
|
+
|
|
23
|
+
namespace BamTools {
|
|
24
|
+
|
|
25
|
+
const char REVCOMP_LOOKUP[] = {'T', 0, 'G', 'H',
|
|
26
|
+
0, 0, 'C', 'D',
|
|
27
|
+
0, 0, 0, 0,
|
|
28
|
+
'K', 'N', 0, 0,
|
|
29
|
+
0, 'Y', 'W', 'A',
|
|
30
|
+
'A', 'B', 'S', 'X',
|
|
31
|
+
'R', 0 };
|
|
32
|
+
|
|
33
|
+
} // namespace BamTools
|
|
34
|
+
|
|
35
|
+
// returns true if 'source' contains 'pattern'
|
|
36
|
+
bool Utilities::Contains(const string& source, const string& pattern) {
|
|
37
|
+
return ( source.find(pattern) != string::npos );
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// returns true if 'source' contains 'c'
|
|
41
|
+
bool Utilities::Contains(const std::string &source, const char c) {
|
|
42
|
+
return ( source.find(c) != string::npos );
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// returns true if 'source' ends with 'pattern'
|
|
46
|
+
bool Utilities::EndsWith(const string& source, const string& pattern) {
|
|
47
|
+
return ( source.find(pattern) == (source.length() - pattern.length()) );
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// returns true if 'source' ends with 'c'
|
|
51
|
+
bool Utilities::EndsWith(const std::string& source, const char c) {
|
|
52
|
+
return ( source.find(c) == (source.length() - 1) );
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// check if a file exists
|
|
56
|
+
bool Utilities::FileExists(const string& filename) {
|
|
57
|
+
ifstream f(filename.c_str(), ifstream::in);
|
|
58
|
+
return !f.fail();
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Parses a region string, does validation (valid ID's, positions), stores in Region struct
|
|
62
|
+
// Returns success (true/false)
|
|
63
|
+
bool Utilities::ParseRegionString(const string& regionString,
|
|
64
|
+
const BamReader& reader,
|
|
65
|
+
BamRegion& region)
|
|
66
|
+
{
|
|
67
|
+
// -------------------------------
|
|
68
|
+
// parse region string
|
|
69
|
+
|
|
70
|
+
// check first for empty string
|
|
71
|
+
if ( regionString.empty() )
|
|
72
|
+
return false;
|
|
73
|
+
|
|
74
|
+
// non-empty string, look for a colom
|
|
75
|
+
size_t foundFirstColon = regionString.find(':');
|
|
76
|
+
|
|
77
|
+
// store chrom strings, and numeric positions
|
|
78
|
+
string startChrom;
|
|
79
|
+
string stopChrom;
|
|
80
|
+
int startPos;
|
|
81
|
+
int stopPos;
|
|
82
|
+
|
|
83
|
+
// no colon found
|
|
84
|
+
// going to use entire contents of requested chromosome
|
|
85
|
+
// just store entire region string as startChrom name
|
|
86
|
+
// use BamReader methods to check if its valid for current BAM file
|
|
87
|
+
if ( foundFirstColon == string::npos ) {
|
|
88
|
+
startChrom = regionString;
|
|
89
|
+
startPos = 0;
|
|
90
|
+
stopChrom = regionString;
|
|
91
|
+
stopPos = -1;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// colon found, so we at least have some sort of startPos requested
|
|
95
|
+
else {
|
|
96
|
+
|
|
97
|
+
// store start chrom from beginning to first colon
|
|
98
|
+
startChrom = regionString.substr(0,foundFirstColon);
|
|
99
|
+
|
|
100
|
+
// look for ".." after the colon
|
|
101
|
+
size_t foundRangeDots = regionString.find("..", foundFirstColon+1);
|
|
102
|
+
|
|
103
|
+
// no dots found
|
|
104
|
+
// so we have a startPos but no range
|
|
105
|
+
// store contents before colon as startChrom, after as startPos
|
|
106
|
+
if ( foundRangeDots == string::npos ) {
|
|
107
|
+
startPos = atoi( regionString.substr(foundFirstColon+1).c_str() );
|
|
108
|
+
stopChrom = startChrom;
|
|
109
|
+
stopPos = -1;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// ".." found, so we have some sort of range selected
|
|
113
|
+
else {
|
|
114
|
+
|
|
115
|
+
// store startPos between first colon and range dots ".."
|
|
116
|
+
startPos = atoi( regionString.substr(foundFirstColon+1, foundRangeDots-foundFirstColon-1).c_str() );
|
|
117
|
+
|
|
118
|
+
// look for second colon
|
|
119
|
+
size_t foundSecondColon = regionString.find(':', foundRangeDots+1);
|
|
120
|
+
|
|
121
|
+
// no second colon found
|
|
122
|
+
// so we have a "standard" chrom:start..stop input format (on single chrom)
|
|
123
|
+
if ( foundSecondColon == string::npos ) {
|
|
124
|
+
stopChrom = startChrom;
|
|
125
|
+
stopPos = atoi( regionString.substr(foundRangeDots+2).c_str() );
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// second colon found
|
|
129
|
+
// so we have a range requested across 2 chrom's
|
|
130
|
+
else {
|
|
131
|
+
stopChrom = regionString.substr(foundRangeDots+2, foundSecondColon-(foundRangeDots+2));
|
|
132
|
+
stopPos = atoi( regionString.substr(foundSecondColon+1).c_str() );
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// -------------------------------
|
|
138
|
+
// validate reference IDs & genomic positions
|
|
139
|
+
|
|
140
|
+
const RefVector references = reader.GetReferenceData();
|
|
141
|
+
|
|
142
|
+
// if startRefID not found, return false
|
|
143
|
+
int startRefID = reader.GetReferenceID(startChrom);
|
|
144
|
+
if ( startRefID == (int)references.size() ) return false;
|
|
145
|
+
|
|
146
|
+
// if startPos is larger than reference, return false
|
|
147
|
+
const RefData& startReference = references.at(startRefID);
|
|
148
|
+
if ( startPos > startReference.RefLength ) return false;
|
|
149
|
+
|
|
150
|
+
// if stopRefID not found, return false
|
|
151
|
+
int stopRefID = reader.GetReferenceID(stopChrom);
|
|
152
|
+
if ( stopRefID == (int)references.size() ) return false;
|
|
153
|
+
|
|
154
|
+
// if stopPosition larger than reference, return false
|
|
155
|
+
const RefData& stopReference = references.at(stopRefID);
|
|
156
|
+
if ( stopPos > stopReference.RefLength ) return false;
|
|
157
|
+
|
|
158
|
+
// if no stopPosition specified, set to reference end
|
|
159
|
+
if ( stopPos == -1 ) stopPos = stopReference.RefLength;
|
|
160
|
+
|
|
161
|
+
// -------------------------------
|
|
162
|
+
// set up Region struct & return
|
|
163
|
+
|
|
164
|
+
region.LeftRefID = startRefID;
|
|
165
|
+
region.LeftPosition = startPos;
|
|
166
|
+
region.RightRefID = stopRefID;;
|
|
167
|
+
region.RightPosition = stopPos;
|
|
168
|
+
return true;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// Same as ParseRegionString() above, but accepts a BamMultiReader
|
|
172
|
+
bool Utilities::ParseRegionString(const string& regionString,
|
|
173
|
+
const BamMultiReader& reader,
|
|
174
|
+
BamRegion& region)
|
|
175
|
+
{
|
|
176
|
+
// -------------------------------
|
|
177
|
+
// parse region string
|
|
178
|
+
|
|
179
|
+
// check first for empty string
|
|
180
|
+
if ( regionString.empty() )
|
|
181
|
+
return false;
|
|
182
|
+
|
|
183
|
+
// non-empty string, look for a colom
|
|
184
|
+
size_t foundFirstColon = regionString.find(':');
|
|
185
|
+
|
|
186
|
+
// store chrom strings, and numeric positions
|
|
187
|
+
string startChrom;
|
|
188
|
+
string stopChrom;
|
|
189
|
+
int startPos;
|
|
190
|
+
int stopPos;
|
|
191
|
+
|
|
192
|
+
// no colon found
|
|
193
|
+
// going to use entire contents of requested chromosome
|
|
194
|
+
// just store entire region string as startChrom name
|
|
195
|
+
// use BamReader methods to check if its valid for current BAM file
|
|
196
|
+
if ( foundFirstColon == string::npos ) {
|
|
197
|
+
startChrom = regionString;
|
|
198
|
+
startPos = 0;
|
|
199
|
+
stopChrom = regionString;
|
|
200
|
+
stopPos = -1;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
// colon found, so we at least have some sort of startPos requested
|
|
204
|
+
else {
|
|
205
|
+
|
|
206
|
+
// store start chrom from beginning to first colon
|
|
207
|
+
startChrom = regionString.substr(0,foundFirstColon);
|
|
208
|
+
|
|
209
|
+
// look for ".." after the colon
|
|
210
|
+
size_t foundRangeDots = regionString.find("..", foundFirstColon+1);
|
|
211
|
+
|
|
212
|
+
// no dots found
|
|
213
|
+
// so we have a startPos but no range
|
|
214
|
+
// store contents before colon as startChrom, after as startPos
|
|
215
|
+
if ( foundRangeDots == string::npos ) {
|
|
216
|
+
startPos = atoi( regionString.substr(foundFirstColon+1).c_str() );
|
|
217
|
+
stopChrom = startChrom;
|
|
218
|
+
stopPos = -1;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// ".." found, so we have some sort of range selected
|
|
222
|
+
else {
|
|
223
|
+
|
|
224
|
+
// store startPos between first colon and range dots ".."
|
|
225
|
+
startPos = atoi( regionString.substr(foundFirstColon+1, foundRangeDots-foundFirstColon-1).c_str() );
|
|
226
|
+
|
|
227
|
+
// look for second colon
|
|
228
|
+
size_t foundSecondColon = regionString.find(':', foundRangeDots+1);
|
|
229
|
+
|
|
230
|
+
// no second colon found
|
|
231
|
+
// so we have a "standard" chrom:start..stop input format (on single chrom)
|
|
232
|
+
if ( foundSecondColon == string::npos ) {
|
|
233
|
+
stopChrom = startChrom;
|
|
234
|
+
stopPos = atoi( regionString.substr(foundRangeDots+2).c_str() );
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
// second colon found
|
|
238
|
+
// so we have a range requested across 2 chrom's
|
|
239
|
+
else {
|
|
240
|
+
stopChrom = regionString.substr(foundRangeDots+2, foundSecondColon-(foundRangeDots+2));
|
|
241
|
+
stopPos = atoi( regionString.substr(foundSecondColon+1).c_str() );
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
// -------------------------------
|
|
247
|
+
// validate reference IDs & genomic positions
|
|
248
|
+
|
|
249
|
+
const RefVector references = reader.GetReferenceData();
|
|
250
|
+
|
|
251
|
+
// if startRefID not found, return false
|
|
252
|
+
int startRefID = reader.GetReferenceID(startChrom);
|
|
253
|
+
if ( startRefID == (int)references.size() ) return false;
|
|
254
|
+
|
|
255
|
+
// if startPos is larger than reference, return false
|
|
256
|
+
const RefData& startReference = references.at(startRefID);
|
|
257
|
+
if ( startPos > startReference.RefLength ) return false;
|
|
258
|
+
|
|
259
|
+
// if stopRefID not found, return false
|
|
260
|
+
int stopRefID = reader.GetReferenceID(stopChrom);
|
|
261
|
+
if ( stopRefID == (int)references.size() ) return false;
|
|
262
|
+
|
|
263
|
+
// if stopPosition larger than reference, return false
|
|
264
|
+
const RefData& stopReference = references.at(stopRefID);
|
|
265
|
+
if ( stopPos > stopReference.RefLength ) return false;
|
|
266
|
+
|
|
267
|
+
// if no stopPosition specified, set to reference end
|
|
268
|
+
if ( stopPos == -1 ) stopPos = stopReference.RefLength;
|
|
269
|
+
|
|
270
|
+
// -------------------------------
|
|
271
|
+
// set up Region struct & return
|
|
272
|
+
|
|
273
|
+
region.LeftRefID = startRefID;
|
|
274
|
+
region.LeftPosition = startPos;
|
|
275
|
+
region.RightRefID = stopRefID;;
|
|
276
|
+
region.RightPosition = stopPos;
|
|
277
|
+
return true;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
void Utilities::Reverse(string& sequence) {
|
|
281
|
+
reverse(sequence.begin(), sequence.end());
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
void Utilities::ReverseComplement(string& sequence) {
|
|
285
|
+
|
|
286
|
+
// do complement, in-place
|
|
287
|
+
size_t seqLength = sequence.length();
|
|
288
|
+
for ( size_t i = 0; i < seqLength; ++i )
|
|
289
|
+
sequence.replace(i, 1, 1, REVCOMP_LOOKUP[(int)sequence.at(i) - 65]);
|
|
290
|
+
|
|
291
|
+
// reverse it
|
|
292
|
+
Reverse(sequence);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
vector<string> Utilities::Split(const string& source, const char delim) {
|
|
296
|
+
|
|
297
|
+
stringstream ss(source);
|
|
298
|
+
string field;
|
|
299
|
+
vector<string> fields;
|
|
300
|
+
|
|
301
|
+
while ( getline(ss, field, delim) )
|
|
302
|
+
fields.push_back(field);
|
|
303
|
+
return fields;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
vector<string> Utilities::Split(const string& source, const string& delims) {
|
|
307
|
+
|
|
308
|
+
vector<string> fields;
|
|
309
|
+
|
|
310
|
+
char* tok;
|
|
311
|
+
char* cchars = new char[source.size()+1];
|
|
312
|
+
char* cstr = &cchars[0];
|
|
313
|
+
strcpy(cstr, source.c_str());
|
|
314
|
+
tok = strtok(cstr, delims.c_str());
|
|
315
|
+
while (tok != NULL) {
|
|
316
|
+
fields.push_back(tok);
|
|
317
|
+
tok = strtok(NULL, delims.c_str());
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
delete[] cchars;
|
|
321
|
+
|
|
322
|
+
return fields;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
// returns true if 'source' starts with 'pattern'
|
|
326
|
+
bool Utilities::StartsWith(const string& source, const string& pattern) {
|
|
327
|
+
return ( source.find(pattern) == 0 );
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
// returns true if 'source' starts with 'c'
|
|
331
|
+
bool Utilities::StartsWith(const std::string &source, const char c) {
|
|
332
|
+
return ( source.find(c) == 0 );
|
|
333
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// ***************************************************************************
|
|
2
|
+
// bamtools_utilities.h (c) 2010 Derek Barnett, Erik Garrison
|
|
3
|
+
// Marth Lab, Department of Biology, Boston College
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
// Last modified: 9 June 2011
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
// Provides general utilities used by BamTools sub-tools.
|
|
8
|
+
// ***************************************************************************
|
|
9
|
+
|
|
10
|
+
#ifndef BAMTOOLS_UTILITIES_H
|
|
11
|
+
#define BAMTOOLS_UTILITIES_H
|
|
12
|
+
|
|
13
|
+
#include <api/BamAux.h>
|
|
14
|
+
#include <utils/utils_global.h>
|
|
15
|
+
#include <cassert>
|
|
16
|
+
#include <stdexcept>
|
|
17
|
+
#include <string>
|
|
18
|
+
#include <vector>
|
|
19
|
+
|
|
20
|
+
#define BAMTOOLS_ASSERT_UNREACHABLE assert( false )
|
|
21
|
+
#define BAMTOOLS_ASSERT_MESSAGE( condition, message ) if (!( condition )) throw std::runtime_error( message );
|
|
22
|
+
|
|
23
|
+
namespace BamTools {
|
|
24
|
+
|
|
25
|
+
class BamReader;
|
|
26
|
+
class BamMultiReader;
|
|
27
|
+
|
|
28
|
+
class UTILS_EXPORT Utilities {
|
|
29
|
+
|
|
30
|
+
public:
|
|
31
|
+
// returns true if 'source' contains 'pattern' or 'c'
|
|
32
|
+
static bool Contains(const std::string& source, const std::string& pattern);
|
|
33
|
+
static bool Contains(const std::string& source, const char c);
|
|
34
|
+
|
|
35
|
+
// returns true if 'source' ends with 'pattern' or 'c'
|
|
36
|
+
static bool EndsWith(const std::string& source, const std::string& pattern);
|
|
37
|
+
static bool EndsWith(const std::string& source, const char c);
|
|
38
|
+
|
|
39
|
+
// check if a file exists
|
|
40
|
+
static bool FileExists(const std::string& fname);
|
|
41
|
+
|
|
42
|
+
// Parses a region string, uses reader to do validation (valid ID's, positions), stores in Region struct
|
|
43
|
+
// Returns success (true/false)
|
|
44
|
+
static bool ParseRegionString(const std::string& regionString,
|
|
45
|
+
const BamReader& reader,
|
|
46
|
+
BamRegion& region);
|
|
47
|
+
// Same as above, but accepts a BamMultiReader
|
|
48
|
+
static bool ParseRegionString(const std::string& regionString,
|
|
49
|
+
const BamMultiReader& reader,
|
|
50
|
+
BamRegion& region);
|
|
51
|
+
|
|
52
|
+
// sequence utilities
|
|
53
|
+
static void Reverse(std::string& sequence);
|
|
54
|
+
static void ReverseComplement(std::string& sequence);
|
|
55
|
+
|
|
56
|
+
// split string on delimiter character (or string of allowed delimiters)
|
|
57
|
+
static std::vector<std::string> Split(const std::string& source, const char delim);
|
|
58
|
+
static std::vector<std::string> Split(const std::string& source, const std::string& delims);
|
|
59
|
+
|
|
60
|
+
// returns true if 'source' starts with 'pattern' or 'c'
|
|
61
|
+
static bool StartsWith(const std::string& source, const std::string& pattern);
|
|
62
|
+
static bool StartsWith(const std::string &source, const char c);
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
} // namespace BamTools
|
|
66
|
+
|
|
67
|
+
#endif // BAMTOOLS_UTILITIES_H
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
// ***************************************************************************
|
|
2
|
+
// bamtools_variant.h (c) 2010 Derek Barnett, Erik Garrison
|
|
3
|
+
// Marth Lab, Department of Biology, Boston College
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
// Last modified: 19 November 2010
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
// Provides a template-based variant type
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
// Modified from:
|
|
10
|
+
// variant_t - An Improved Variant Type Based on Member Templates
|
|
11
|
+
// (c) 2000 Fernando Cacciola
|
|
12
|
+
// Dr. Dobb's (http://www.ddj.com/cpp/184401293)
|
|
13
|
+
//
|
|
14
|
+
// * Modified to be in BamTools namespace, otherwise code is same. (DB)
|
|
15
|
+
// ***************************************************************************
|
|
16
|
+
|
|
17
|
+
#ifndef BAMTOOLS_VARIANT_H
|
|
18
|
+
#define BAMTOOLS_VARIANT_H
|
|
19
|
+
|
|
20
|
+
#include <utils/utils_global.h>
|
|
21
|
+
#include <stdexcept>
|
|
22
|
+
#include <string>
|
|
23
|
+
#include <typeinfo>
|
|
24
|
+
|
|
25
|
+
namespace BamTools {
|
|
26
|
+
|
|
27
|
+
class UTILS_EXPORT Variant {
|
|
28
|
+
|
|
29
|
+
public:
|
|
30
|
+
Variant(void) : data(NULL) { }
|
|
31
|
+
|
|
32
|
+
Variant(const Variant& other) {
|
|
33
|
+
if ( other.data != NULL )
|
|
34
|
+
other.data->AddRef();
|
|
35
|
+
data = other.data;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
~Variant(void) {
|
|
39
|
+
if ( data != NULL )
|
|
40
|
+
data->Release();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// NOTE: This code takes care of self-assignment.
|
|
44
|
+
// DO NOT CHANGE THE ORDER of the statements.
|
|
45
|
+
Variant& operator= (const Variant& rhs) {
|
|
46
|
+
if ( rhs.data != NULL )
|
|
47
|
+
rhs.data->AddRef();
|
|
48
|
+
if ( data != NULL )
|
|
49
|
+
data->Release();
|
|
50
|
+
data = rhs.data;
|
|
51
|
+
return *this;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// This member template constructor allows you to
|
|
55
|
+
// instance a variant_t object with a value of any type.
|
|
56
|
+
template<typename T>
|
|
57
|
+
Variant(T v)
|
|
58
|
+
: data(new Impl<T>(v))
|
|
59
|
+
{
|
|
60
|
+
data->AddRef();
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// This generic conversion operator let you retrieve
|
|
64
|
+
// the value held. To avoid template specialization conflicts,
|
|
65
|
+
// it returns an instance of type T, which will be a COPY
|
|
66
|
+
// of the value contained.
|
|
67
|
+
template<typename T>
|
|
68
|
+
operator T() const {
|
|
69
|
+
return CastFromBase<T>(data)->data;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// This forms returns a REFERENCE and not a COPY, which
|
|
73
|
+
// will be significant in some cases.
|
|
74
|
+
template<typename T>
|
|
75
|
+
const T& get(void) const {
|
|
76
|
+
return CastFromBase<T>(data)->data;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
template<typename T>
|
|
80
|
+
bool is_type(void) const {
|
|
81
|
+
return typeid(*data)==typeid(Impl<T>);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
template<typename T>
|
|
85
|
+
bool is_type(T v) const {
|
|
86
|
+
return typeid(*data)==typeid(v);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
private:
|
|
90
|
+
struct ImplBase {
|
|
91
|
+
|
|
92
|
+
ImplBase() : refs(0) { }
|
|
93
|
+
virtual ~ImplBase(void) { }
|
|
94
|
+
|
|
95
|
+
void AddRef(void) { ++refs; }
|
|
96
|
+
void Release(void) {
|
|
97
|
+
--refs;
|
|
98
|
+
if ( refs == 0 ) delete this;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
size_t refs;
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
template<typename T>
|
|
105
|
+
struct Impl : ImplBase {
|
|
106
|
+
Impl(T v) : data(v) { }
|
|
107
|
+
~Impl(void) { }
|
|
108
|
+
T data;
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
// The following method is static because it doesn't
|
|
112
|
+
// operate on variant_t instances.
|
|
113
|
+
template<typename T>
|
|
114
|
+
static Impl<T>* CastFromBase(ImplBase* v) {
|
|
115
|
+
// This upcast will fail if T is other than the T used
|
|
116
|
+
// with the constructor of variant_t.
|
|
117
|
+
Impl<T>* p = dynamic_cast< Impl<T>* > (v);
|
|
118
|
+
if ( p == NULL )
|
|
119
|
+
throw std::invalid_argument( typeid(T).name() + std::string(" is not a valid type") );
|
|
120
|
+
return p;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
ImplBase* data;
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
} // namespace BamTools
|
|
127
|
+
|
|
128
|
+
#endif // BAMTOOLS_VARIANT_H
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Install script for directory: /Users/chase/Desktop/tmp_workspace/ngs_server/ext/bamtools/src/utils
|
|
2
|
+
|
|
3
|
+
# Set the install prefix
|
|
4
|
+
IF(NOT DEFINED CMAKE_INSTALL_PREFIX)
|
|
5
|
+
SET(CMAKE_INSTALL_PREFIX "/usr/local")
|
|
6
|
+
ENDIF(NOT DEFINED CMAKE_INSTALL_PREFIX)
|
|
7
|
+
STRING(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
|
|
8
|
+
|
|
9
|
+
# Set the install configuration name.
|
|
10
|
+
IF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
|
|
11
|
+
IF(BUILD_TYPE)
|
|
12
|
+
STRING(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
|
|
13
|
+
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
|
|
14
|
+
ELSE(BUILD_TYPE)
|
|
15
|
+
SET(CMAKE_INSTALL_CONFIG_NAME "Release")
|
|
16
|
+
ENDIF(BUILD_TYPE)
|
|
17
|
+
MESSAGE(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
|
|
18
|
+
ENDIF(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
|
|
19
|
+
|
|
20
|
+
# Set the component getting installed.
|
|
21
|
+
IF(NOT CMAKE_INSTALL_COMPONENT)
|
|
22
|
+
IF(COMPONENT)
|
|
23
|
+
MESSAGE(STATUS "Install component: \"${COMPONENT}\"")
|
|
24
|
+
SET(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
|
|
25
|
+
ELSE(COMPONENT)
|
|
26
|
+
SET(CMAKE_INSTALL_COMPONENT)
|
|
27
|
+
ENDIF(COMPONENT)
|
|
28
|
+
ENDIF(NOT CMAKE_INSTALL_COMPONENT)
|
|
29
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// ***************************************************************************
|
|
2
|
+
// utils_global.h (c) 2010 Derek Barnett
|
|
3
|
+
// Marth Lab, Department of Biology, Boston College
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
// Last modified: 19 November 2010 (DB)
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
// Provides macros for exporting & importing BamTools-utils library symbols
|
|
8
|
+
// ***************************************************************************
|
|
9
|
+
|
|
10
|
+
#ifndef UTILS_GLOBAL_H
|
|
11
|
+
#define UTILS_GLOBAL_H
|
|
12
|
+
|
|
13
|
+
#include "shared/bamtools_global.h"
|
|
14
|
+
|
|
15
|
+
#ifdef BAMTOOLS_UTILS_LIBRARY
|
|
16
|
+
# define UTILS_EXPORT BAMTOOLS_LIBRARY_EXPORT
|
|
17
|
+
#else
|
|
18
|
+
# define UTILS_EXPORT BAMTOOLS_LIBRARY_IMPORT
|
|
19
|
+
#endif
|
|
20
|
+
|
|
21
|
+
#endif // UTILS_GLOBAL_H
|
data/lib/ngs_server.rb
ADDED
data/ngs_server.gemspec
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
|
3
|
+
require "ngs_server/version"
|
|
4
|
+
|
|
5
|
+
Gem::Specification.new do |s|
|
|
6
|
+
s.name = "ngs_server"
|
|
7
|
+
s.version = NgsServer::VERSION
|
|
8
|
+
s.platform = Gem::Platform::RUBY
|
|
9
|
+
s.authors = ["Chase Miller"]
|
|
10
|
+
s.email = ["chmille4@gmail.com"]
|
|
11
|
+
s.homepage = ""
|
|
12
|
+
s.summary = %q{"Ultra Lightweight NGS Data Server"}
|
|
13
|
+
s.description = %q{"Converts BAM/VCF files into JSON for consumption by web apps"}
|
|
14
|
+
|
|
15
|
+
s.rubyforge_project = "ngs_server"
|
|
16
|
+
|
|
17
|
+
s.files = `git ls-files`.split("\n")
|
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
|
20
|
+
# s.executables = "bin/ngs_"
|
|
21
|
+
s.extensions = ["ext/bamtools/extconf.rb"]
|
|
22
|
+
s.require_paths = ["lib"]
|
|
23
|
+
end
|