├── .gitignore ├── LICENSE ├── Makefile ├── README.md ├── astyle.txt ├── bamhash_checksum_bam.cpp ├── bamhash_checksum_common.cpp ├── bamhash_checksum_common.h ├── bamhash_checksum_fasta.cpp ├── bamhash_checksum_fastq.cpp ├── seqan ├── LICENSE ├── align.h ├── align │ ├── align_base.h │ ├── align_cols.h │ ├── align_config.h │ ├── align_iterator_base.h │ ├── align_metafunctions.h │ ├── align_traceback.h │ ├── alignment_algorithm_tags.h │ ├── alignment_operations.h │ ├── dp_algorithm_impl.h │ ├── dp_band.h │ ├── dp_cell.h │ ├── dp_cell_affine.h │ ├── dp_cell_dynamic.h │ ├── dp_cell_linear.h │ ├── dp_context.h │ ├── dp_formula.h │ ├── dp_formula_affine.h │ ├── dp_formula_dynamic.h │ ├── dp_formula_linear.h │ ├── dp_matrix.h │ ├── dp_matrix_navigator.h │ ├── dp_matrix_navigator_score_matrix.h │ ├── dp_matrix_navigator_score_matrix_sparse.h │ ├── dp_matrix_navigator_trace_matrix.h │ ├── dp_matrix_sparse.h │ ├── dp_meta_info.h │ ├── dp_profile.h │ ├── dp_scout.h │ ├── dp_setup.h │ ├── dp_trace_segment.h │ ├── dp_traceback_adaptor.h │ ├── dp_traceback_impl.h │ ├── evaluate_alignment.h │ ├── fragment.h │ ├── gap_anchor.h │ ├── gapped_value_type.h │ ├── gaps_anchor.h │ ├── gaps_array.h │ ├── gaps_base.h │ ├── gaps_iterator_anchor.h │ ├── gaps_iterator_array.h │ ├── gaps_iterator_base.h │ ├── global_alignment_banded.h │ ├── global_alignment_hirschberg_impl.h │ ├── global_alignment_myers_hirschberg_impl.h │ ├── global_alignment_myers_impl.h │ ├── global_alignment_specialized.h │ ├── global_alignment_unbanded.h │ ├── local_alignment_banded.h │ ├── local_alignment_banded_waterman_eggert_impl.h │ ├── local_alignment_enumeration.h │ ├── local_alignment_enumeration_banded.h │ ├── local_alignment_enumeration_unbanded.h │ ├── local_alignment_unbanded.h │ ├── local_alignment_waterman_eggert_impl.h │ └── matrix_base.h ├── align_extend.h ├── align_extend │ ├── align_extend.h │ ├── align_extend_base.h │ └── dp_scout_xdrop.h ├── align_profile.h ├── align_profile │ ├── add_to_profile.h │ └── score_profile_seq.h ├── align_split.h ├── align_split │ ├── align_split_interface.h │ └── dp_scout_split.h ├── alignment_free.h ├── alignment_free │ ├── af_d2.h │ ├── af_d2star.h │ ├── af_d2z.h │ ├── af_n2.h │ ├── alignment_free_base.h │ ├── alignment_free_comparison.h │ └── kmer_functions.h ├── arg_parse.h ├── arg_parse │ ├── arg_parse_argument.h │ ├── arg_parse_ctd_support.h │ ├── arg_parse_doc.h │ ├── arg_parse_exceptions.h │ ├── arg_parse_option.h │ ├── arg_parse_parse.h │ ├── arg_parse_type_support.h │ ├── argument_parser.h │ ├── tool_doc.h │ └── xml_support.h ├── bam_io.h ├── bam_io │ ├── bam_alignment_record.h │ ├── bam_alignment_record_util.h │ ├── bam_file.h │ ├── bam_header_record.h │ ├── bam_index_bai.h │ ├── bam_io_context.h │ ├── bam_sam_conversion.h │ ├── bam_scanner_cache.h │ ├── bam_tags_dict.h │ ├── cigar.h │ ├── read_bam.h │ ├── read_sam.h │ ├── write_bam.h │ └── write_sam.h ├── basic.h ├── basic │ ├── aggregate_concept.h │ ├── allocator_chunkpool.h │ ├── allocator_interface.h │ ├── allocator_multipool.h │ ├── allocator_simple.h │ ├── allocator_singlepool.h │ ├── allocator_to_std.h │ ├── alphabet_adapt_builtins.h │ ├── alphabet_bio.h │ ├── alphabet_concept.h │ ├── alphabet_math.h │ ├── alphabet_profile.h │ ├── alphabet_qualities.h │ ├── alphabet_residue.h │ ├── alphabet_residue_funcs.h │ ├── alphabet_residue_tabs.h │ ├── alphabet_simple_type.h │ ├── alphabet_storage.h │ ├── array_construct_destruct.h │ ├── basic_aggregate.h │ ├── basic_allocator.h │ ├── basic_alphabet.h │ ├── basic_concept.h │ ├── basic_container.h │ ├── basic_debug.h │ ├── basic_device.h │ ├── basic_exception.h │ ├── basic_functors.h │ ├── basic_fundamental.h │ ├── basic_iterator.h │ ├── basic_math.h │ ├── basic_metaprogramming.h │ ├── basic_parallelism.h │ ├── basic_proxy.h │ ├── basic_simd_vector.h │ ├── basic_smart_pointer.h │ ├── basic_stream.h │ ├── basic_tangle.h │ ├── basic_type.h │ ├── basic_view.h │ ├── boost_preprocessor_subset.h │ ├── builtin_functions.h │ ├── concept_checking.h │ ├── container_concept.h │ ├── debug_helper.h │ ├── debug_test_system.h │ ├── fundamental_chunking.h │ ├── fundamental_comparison.h │ ├── fundamental_concepts.h │ ├── fundamental_conversion.h │ ├── fundamental_metafunctions.h │ ├── fundamental_tags.h │ ├── fundamental_transport.h │ ├── holder_base.h │ ├── holder_simple.h │ ├── holder_tristate.h │ ├── hosted_type_interface.h │ ├── iterator_adapt_pointer.h │ ├── iterator_adapt_std.h │ ├── iterator_adaptor.h │ ├── iterator_base.h │ ├── iterator_concept.h │ ├── iterator_counting.h │ ├── iterator_interface.h │ ├── iterator_position.h │ ├── iterator_range.h │ ├── macro_deprecated.h │ ├── math_functions.h │ ├── math_log_space_value.h │ ├── metaprogramming_control.h │ ├── metaprogramming_enable_if.h │ ├── metaprogramming_logic.h │ ├── metaprogramming_math.h │ ├── metaprogramming_type.h │ ├── metaprogramming_type_algebra.h │ ├── pair_base.h │ ├── pair_bit_compressed.h │ ├── pair_packed.h │ ├── profiling.h │ ├── property_map_concept.h │ ├── proxy_base.h │ ├── proxy_iterator.h │ ├── test_system.h │ ├── triple_base.h │ ├── triple_packed.h │ ├── tuple_base.h │ ├── tuple_bit_compressed.h │ └── volatile_ptr.h ├── bed_io.h ├── bed_io │ ├── bed_file.h │ ├── bed_record.h │ ├── read_bed.h │ └── write_bed.h ├── blast.h ├── blast │ ├── blast_base.h │ ├── blast_io_context.h │ ├── blast_record.h │ ├── blast_report_out.h │ ├── blast_statistics.h │ ├── blast_tabular.h │ ├── blast_tabular_in.h │ ├── blast_tabular_lowlevel.h │ └── blast_tabular_out.h ├── consensus.h ├── consensus │ ├── consensus_aligner.h │ ├── consensus_aligner_interface.h │ ├── consensus_alignment_options.h │ ├── consensus_base.h │ ├── consensus_builder.h │ ├── consensus_library.h │ ├── consensus_realign.h │ ├── consensus_score.h │ ├── overlap_info_computation.h │ └── overlapper.h ├── file.h ├── file │ ├── file_base.h │ ├── file_cstyle.h │ ├── file_forwards.h │ ├── file_interface.h │ ├── file_mapping.h │ ├── file_page.h │ ├── string_external.h │ └── string_mmap.h ├── find.h ├── find │ ├── find_abndm.h │ ├── find_ahocorasick.h │ ├── find_base.h │ ├── find_begin.h │ ├── find_bndm.h │ ├── find_bom.h │ ├── find_hamming_simple.h │ ├── find_horspool.h │ ├── find_lambda.h │ ├── find_multi.h │ ├── find_multiple_bfam.h │ ├── find_multiple_shiftand.h │ ├── find_myers_ukkonen.h │ ├── find_pattern_base.h │ ├── find_pex.h │ ├── find_score.h │ ├── find_set_horspool.h │ ├── find_shiftand.h │ ├── find_shiftor.h │ ├── find_simple.h │ ├── find_wild_shiftand.h │ └── find_wumanber.h ├── gff_io.h ├── gff_io │ ├── gff_file.h │ └── gff_io_base.h ├── graph_algorithms.h ├── graph_algorithms │ ├── all_pairs_shortest_path.h │ ├── bellman_ford.h │ ├── bipartite_matching.h │ ├── breadth_first_search.h │ ├── connected_components.h │ ├── depth_first_search.h │ ├── dijkstra.h │ ├── floyd_warshall.h │ ├── ford_fulkerson.h │ ├── graph_algorithm_heap_tree.h │ ├── graph_algorithm_hmm.h │ ├── graph_algorithm_lis_his.h │ ├── kruskal.h │ ├── path_growing.h │ ├── prim.h │ ├── single_source_shortest_path.h │ ├── strongly_connected_compnents.h │ ├── topological_sort.h │ ├── transitive_closure.h │ ├── weakly_connected_components.h │ └── weighted_bipartite_matching.h ├── graph_align.h ├── graph_align │ ├── graph_algorithm_refine_align.h │ ├── graph_algorithm_refine_aligngraph.h │ ├── graph_algorithm_refine_annotation.h │ ├── graph_algorithm_refine_exact.h │ ├── graph_algorithm_refine_exact_iterative.h │ ├── graph_algorithm_refine_fragment.h │ ├── graph_algorithm_refine_inexact.h │ ├── graph_algorithm_refine_scoring.h │ ├── graph_impl_align.h │ └── graph_impl_align_adapt.h ├── graph_msa.h ├── graph_msa │ ├── graph_align_tcoffee_base.h │ ├── graph_align_tcoffee_distance.h │ ├── graph_align_tcoffee_guidetree.h │ ├── graph_align_tcoffee_io.h │ ├── graph_align_tcoffee_kmer.h │ ├── graph_align_tcoffee_library.h │ ├── graph_align_tcoffee_msa.h │ ├── graph_align_tcoffee_progressive.h │ └── graph_align_tcoffee_refinement.h ├── graph_types.h ├── graph_types │ ├── graph_base.h │ ├── graph_drawing.h │ ├── graph_edgestump.h │ ├── graph_idmanager.h │ ├── graph_impl_automaton.h │ ├── graph_impl_directed.h │ ├── graph_impl_hmm.h │ ├── graph_impl_oracle.h │ ├── graph_impl_tree.h │ ├── graph_impl_trie.h │ ├── graph_impl_undirected.h │ ├── graph_impl_wordgraph.h │ ├── graph_interface.h │ ├── graph_iterator.h │ ├── graph_iterator_adjacency.h │ ├── graph_iterator_bfs.h │ ├── graph_iterator_dfs.h │ ├── graph_iterator_edge.h │ ├── graph_iterator_outedge.h │ ├── graph_iterator_vertex.h │ ├── graph_utility_parsing.h │ ├── property_map_generic.h │ ├── property_map_internal.h │ └── property_map_internal_pointer.h ├── hts_io.h ├── hts_io │ ├── bam_alignment_record.h │ ├── hts_alignment_record.h │ ├── hts_alignment_record_utils.h │ └── hts_file.h ├── index.h ├── index │ ├── find2_backtracking.h │ ├── find2_base.h │ ├── find2_functors.h │ ├── find2_index.h │ ├── find2_index_multi.h │ ├── find2_vstree_factory.h │ ├── find_backtracking.h │ ├── find_index.h │ ├── find_index_approx.h │ ├── find_index_binary.h │ ├── find_index_esa.h │ ├── find_index_lambda.h │ ├── find_index_qgram.h │ ├── find_pigeonhole.h │ ├── find_quasar.h │ ├── find_swift.h │ ├── index_base.h │ ├── index_bwt.h │ ├── index_childtab.h │ ├── index_device.h │ ├── index_dfi.h │ ├── index_esa_algs.h │ ├── index_esa_algs_multi.h │ ├── index_esa_base.h │ ├── index_esa_drawing.h │ ├── index_esa_stree.h │ ├── index_fm.h │ ├── index_fm_compressed_sa.h │ ├── index_fm_compressed_sa_iterator.h │ ├── index_fm_device.h │ ├── index_fm_dox.h │ ├── index_fm_lf_table.h │ ├── index_fm_rank_dictionary_base.h │ ├── index_fm_rank_dictionary_levels.h │ ├── index_fm_rank_dictionary_naive.h │ ├── index_fm_rank_dictionary_wt.h │ ├── index_fm_right_array_binary_tree.h │ ├── index_fm_right_array_binary_tree_iterator.h │ ├── index_fm_sparse_string.h │ ├── index_fm_stree.h │ ├── index_forwards.h │ ├── index_lcp.h │ ├── index_lcp_tree.h │ ├── index_pizzachili.h │ ├── index_pizzachili_find.h │ ├── index_pizzachili_string.h │ ├── index_qgram.h │ ├── index_qgram_bucketrefinement.h │ ├── index_qgram_openaddressing.h │ ├── index_qgram_stree.h │ ├── index_sa_btree.h │ ├── index_sa_bwtwalk.h │ ├── index_sa_lss.h │ ├── index_sa_mm.h │ ├── index_sa_qsort.h │ ├── index_sa_stree.h │ ├── index_sa_truncated.h │ ├── index_shawarma.h │ ├── index_shims.h │ ├── index_skew3.h │ ├── index_skew7.h │ ├── index_skew7_multi.h │ ├── index_view.h │ ├── index_wotd.h │ ├── pipe_merger3.h │ ├── pipe_merger7.h │ ├── pizzachili_api.h │ ├── pump_extender3.h │ ├── pump_extender7.h │ ├── pump_lcp_core.h │ ├── pump_separator7.h │ ├── radix.h │ ├── repeat_base.h │ ├── shape_base.h │ ├── shape_gapped.h │ ├── shape_minimizer.h │ ├── shape_onegapped.h │ ├── shape_predefined.h │ └── shape_threshold.h ├── journaled_set.h ├── journaled_set │ ├── journal_alignment_interface.h │ ├── journal_alignment_traceback_adaptor.h │ ├── journaled_set_base.h │ ├── journaled_set_impl.h │ ├── journaled_set_join.h │ ├── journaled_set_join_config.h │ ├── journaled_set_join_global_align_compact.h │ ├── journaled_set_join_global_align_manhatten.h │ ├── journaled_set_journal_trace_descriptor.h │ └── score_biaffine.h ├── journaled_string_tree.h ├── journaled_string_tree │ ├── delta_map.h │ ├── delta_map_entry.h │ ├── delta_map_iterator.h │ ├── delta_store.h │ ├── journaled_string_tree_base.h │ ├── journaled_string_tree_impl.h │ ├── journaled_string_tree_sequence_buffer.h │ ├── journaled_string_tree_traverser.h │ ├── journaled_string_tree_traverser_node.h │ ├── journaled_string_tree_traverser_util.h │ └── observable.h ├── map.h ├── map │ ├── map_adapter_stl.h │ ├── map_base.h │ ├── map_chooser.h │ ├── map_skiplist.h │ ├── map_vector.h │ ├── sumlist.h │ ├── sumlist_mini.h │ └── sumlist_skip.h ├── math.h ├── math │ ├── math_common_factor.h │ ├── math_operators.h │ └── math_rational.h ├── misc │ ├── accumulators.h │ ├── base.h │ ├── bit_twiddling.h │ ├── bit_twiddling_functors.h │ ├── cuda.h │ ├── dequeue.h │ ├── edit_environment.h │ ├── interval_tree.h │ ├── map.h │ ├── memset.h │ ├── name_store_cache.h │ ├── priority_type_base.h │ ├── priority_type_heap.h │ ├── set.h │ ├── svg.h │ ├── terminal.h │ └── union_find.h ├── modifier.h ├── modifier │ ├── cyclic_shape.h │ ├── modifier_alphabet.h │ ├── modifier_alphabet_expansion.h │ ├── modifier_cyclic_shape.h │ ├── modifier_functors.h │ ├── modifier_iterator.h │ ├── modifier_position.h │ ├── modifier_reverse.h │ ├── modifier_shortcuts.h │ ├── modifier_string.h │ └── modifier_view.h ├── parallel.h ├── parallel │ ├── parallel_algorithms.h │ ├── parallel_atomic_misc.h │ ├── parallel_atomic_primitives.h │ ├── parallel_lock.h │ ├── parallel_macros.h │ ├── parallel_queue.h │ ├── parallel_queue_suspendable.h │ ├── parallel_resource_pool.h │ ├── parallel_sequence.h │ ├── parallel_serializer.h │ ├── parallel_splitting.h │ └── parallel_tags.h ├── parse_lm.h ├── parse_lm │ ├── local_match_store.h │ ├── parse_blastn_tabular.h │ ├── parse_lastz_general.h │ └── parse_stellar_gff.h ├── pipe.h ├── pipe │ ├── pipe_base.h │ ├── pipe_caster.h │ ├── pipe_counter.h │ ├── pipe_echoer.h │ ├── pipe_edit_environment.h │ ├── pipe_filter.h │ ├── pipe_iterator.h │ ├── pipe_joiner.h │ ├── pipe_namer.h │ ├── pipe_sampler.h │ ├── pipe_shifter.h │ ├── pipe_source.h │ ├── pipe_tupler.h │ ├── pool_base.h │ ├── pool_mapper.h │ └── pool_sorter.h ├── platform.h ├── platform │ ├── platform_gcc.h │ ├── platform_icc.h │ ├── platform_mingw.h │ ├── platform_nvcc.h │ ├── platform_pgi.h │ ├── platform_solaris.h │ ├── platform_windows.h │ └── windows_stdint.h ├── random.h ├── random │ ├── ext_MersenneTwister.h │ ├── random_base.h │ ├── random_beta.h │ ├── random_beta_kfunc.h │ ├── random_geometric.h │ ├── random_lognormal.h │ ├── random_mt19937.h │ ├── random_normal.h │ ├── random_rng_functor.h │ ├── random_shuffle.h │ └── random_uniform.h ├── realign.h ├── realign │ ├── realign_base.h │ └── realign_helper_functions.h ├── reduced_aminoacid.h ├── reduced_aminoacid │ ├── reduced_aminoacid_base.h │ ├── reduced_aminoacid_base_late.h │ ├── reduced_aminoacid_cluster_red_base.h │ ├── reduced_aminoacid_cluster_red_tables_20_to_n_b62.h │ ├── reduced_aminoacid_cluster_red_tables_22_to_n_b62.h │ ├── reduced_aminoacid_cluster_red_tables_24_to_n_b62.h │ ├── reduced_aminoacid_murphy10_base.h │ └── reduced_aminoacid_murphy10_tables.h ├── roi_io.h ├── roi_io │ ├── read_roi.h │ ├── roi_file.h │ ├── roi_io_context.h │ ├── roi_record.h │ └── write_roi.h ├── score.h ├── score │ ├── score_base.h │ ├── score_edit.h │ ├── score_matrix.h │ ├── score_matrix_data.h │ ├── score_matrix_io.h │ └── score_simple.h ├── seeds.h ├── seeds │ ├── banded_chain_alignment.h │ ├── banded_chain_alignment_impl.h │ ├── banded_chain_alignment_profile.h │ ├── banded_chain_alignment_scout.h │ ├── banded_chain_alignment_traceback.h │ ├── basic_iter_indirect.h │ ├── seeds_base.h │ ├── seeds_combination.h │ ├── seeds_extension.h │ ├── seeds_global_chaining.h │ ├── seeds_global_chaining_base.h │ ├── seeds_global_chaining_gusfield.h │ ├── seeds_seed_base.h │ ├── seeds_seed_chained.h │ ├── seeds_seed_diagonal.h │ ├── seeds_seed_set_base.h │ ├── seeds_seed_set_non_scored.h │ ├── seeds_seed_set_scored.h │ ├── seeds_seed_set_unordered.h │ └── seeds_seed_simple.h ├── seq_io.h ├── seq_io │ ├── fai_index.h │ ├── fasta_fastq.h │ ├── genomic_region.h │ ├── read_embl.h │ ├── read_genbank.h │ └── sequence_file.h ├── sequence.h ├── sequence │ ├── adapt_array_pointer.h │ ├── adapt_stl_container.h │ ├── adapt_thrust_vector.h │ ├── container_view.h │ ├── iter_concat_virtual.h │ ├── segment_base.h │ ├── segment_infix.h │ ├── segment_prefix.h │ ├── segment_suffix.h │ ├── segment_utils.h │ ├── sequence_concatenator.h │ ├── sequence_forwards.h │ ├── sequence_interface.h │ ├── sequence_lexical.h │ ├── sequence_shortcuts.h │ ├── string_alloc.h │ ├── string_array.h │ ├── string_base.h │ ├── string_block.h │ ├── string_cstyle.h │ ├── string_packed.h │ ├── string_packed_old.h │ ├── string_set_base.h │ ├── string_set_concat_direct.h │ ├── string_set_dependent_generous.h │ ├── string_set_dependent_tight.h │ ├── string_set_device.h │ ├── string_set_owner.h │ ├── string_set_segment.h │ └── string_set_view.h ├── sequence_journaled.h ├── sequence_journaled │ ├── journal_entries_sorted_array.h │ ├── journal_entry.h │ ├── sequence_journaled.h │ ├── sequence_journaled_iterator.h │ └── sequence_journaled_iterator_fast.h ├── simple_intervals_io.h ├── simple_intervals_io │ ├── simple_intervals_file.h │ └── simple_intervals_io.h ├── statistics.h ├── statistics │ ├── .statistics_markov_model.h.swp │ ├── statistics_base.h │ └── statistics_markov_model.h ├── store.h ├── store │ ├── store_align.h │ ├── store_align_intervals.h │ ├── store_all.h │ ├── store_annotation.h │ ├── store_base.h │ ├── store_contig.h │ ├── store_intervaltree.h │ ├── store_io.h │ ├── store_io_gff.h │ ├── store_io_sam.h │ ├── store_io_ucsc.h │ ├── store_library.h │ ├── store_matepair.h │ └── store_read.h ├── stream.h ├── stream │ ├── adapt_ios.h │ ├── buffered_stream.h │ ├── file_stream.h │ ├── formatted_file.h │ ├── guess_format.h │ ├── iostream_bgzf.h │ ├── iostream_bzip2.h │ ├── iostream_bzip2_impl.h │ ├── iostream_zip.h │ ├── iostream_zip_impl.h │ ├── iostream_zutil.h │ ├── iter_stream.h │ ├── lexical_cast.h │ ├── stream_base.h │ ├── stream_compressor.h │ ├── tokenization.h │ └── virtual_stream.h ├── system.h ├── system │ ├── file_async.h │ ├── file_directory.h │ ├── file_forwards.h │ ├── file_sync.h │ ├── system_base.h │ ├── system_condition.h │ ├── system_critical_section.h │ ├── system_event.h │ ├── system_forwards.h │ ├── system_mutex.h │ └── system_thread.h ├── tabix_io.h ├── tabix_io │ └── tabix_index_tbi.h ├── translation.h ├── translation │ ├── translation.h │ └── translation_tables.h ├── ucsc_io.h ├── ucsc_io │ ├── ucsc_file.h │ ├── ucsc_io.h │ └── ucsc_record.h ├── vcf_io.h ├── vcf_io │ ├── read_vcf.h │ ├── tabix.h │ ├── vcf_file.h │ ├── vcf_header.h │ ├── vcf_header_record.h │ ├── vcf_io_context.h │ ├── vcf_record.h │ └── write_vcf.h └── version.h └── test └── Makefile /.gitignore: -------------------------------------------------------------------------------- 1 | *.o 2 | *~ 3 | bamhash_checksum_bam 4 | bamhash_checksum_fastq 5 | bamhash_checksum_fasta 6 | test/r*.fastq 7 | test/r*.fasta 8 | test/r*.bam 9 | test/r*.md5sum 10 | test/ecoliMG1655.fa* 11 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # include SeqAn libraries, don't warn about MD5 deprecation 2 | CXXFLAGS+=-I. -Wno-deprecated-declarations 3 | 4 | #include htslib by setting -I and link to the htslib library 5 | HTSDIR= 6 | CXXFLAGS+=-I$(HTSDIR)/include 7 | 8 | # RELEASE build 9 | CXX=g++ -std=c++11 -pthread 10 | CXXFLAGS+= -O3 -DSEQAN_ENABLE_TESTING=0 -DSEQAN_ENABLE_DEBUG=0 -DSEQAN_HAS_ZLIB=1 11 | LDFLAGS=-L$(HTSDIR)/lib -lz -lssl -lcrypto -Wl,-rpath,$(HTSDIR)/lib -lhts 12 | 13 | TARGET = bamhash_checksum_bam bamhash_checksum_fastq bamhash_checksum_fasta 14 | all: $(TARGET) 15 | 16 | bamhash_checksum_bam: bamhash_checksum_common.o bamhash_checksum_bam.o 17 | $(CXX) $(LDFLAGS) -o $@ $^ 18 | 19 | bamhash_checksum_fastq: bamhash_checksum_common.o bamhash_checksum_fastq.o 20 | $(CXX) $(LDFLAGS) -o $@ $^ 21 | 22 | bamhash_checksum_fasta: bamhash_checksum_common.o bamhash_checksum_fasta.o 23 | $(CXX) $(LDFLAGS) -o $@ $^ 24 | 25 | clean: 26 | $(RM) *.o *~ $(TARGET) 27 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # BamHash 2 | 3 | 4 | Hash BAM and FASTQ files to verify data integrity 5 | 6 | For each pair of reads in a BAM or FASTQ file we compute a hash value 7 | composed of the readname, whether it is first or last in pair, sequence and quality value. 8 | All the hash values are summed up so the result is independent of the ordering within the files. 9 | The result can be compared to verify that the pair of FASTQ files contain the same read 10 | information as the aligned BAM file. 11 | The program is written in C++ and uses SeqAnHTS v1.0 for parsing FASTQ, gzip compressed FASTQ and BAM files. 12 | SeqAnHTS is a fork of SeqAn library ( Döring etal. , 2008 ) that uses htslib to read SAM/BAM/CRAM files. 13 | 14 | ## Manuscript 15 | 16 | Arna Óskarsdóttir, Gísli Másson and Páll Melsted (2015) 17 | BamHash: a checksum program for verifying the integrity of sequence data. 18 | [Bioinformatics, btv539](http://bioinformatics.oxfordjournals.org/content/early/2015/10/01/bioinformatics.btv539.abstract). 19 | 20 | A preprint is available on [bioRxiv](http://biorxiv.org/content/early/2015/03/03/015867). 21 | 22 | ## Usage 23 | 24 | The program has three executables which are used for different filetypes. Running them with `--help` displays detailed help messages. 25 | 26 | ### Common options 27 | 28 | All programs work with sets of reads. The reads are made up of a read name, sequence and quality information. All of these components go into the hash, but the read name or quality information can be ignored if necessary. This would be the case if a pipeline mangled the names, quantizised the quality or after realigning quality scores. 29 | 30 | The default mode is to assume paired end reads. If you have single end reads you can supply the `--no-paired` option. 31 | 32 | A debug option `-d` prints the information and hash value of each read individually, this can be helpful if BamHash is not cooperating with your pipeline. 33 | 34 | Both multiline FASTA and FASTQ are supported and gzipped input for FASTA and FASTQ. 35 | 36 | ### BAM 37 | 38 | ~~~ 39 | bamhash_checksum_bam [OPTIONS] ... 40 | bamhash_checksum_bam [OPTIONS] -r 41 | ~~~ 42 | 43 | processes a number of BAM files. BAM files are assumed to contain paired end reads. If you run with `--no-paired` it treats all reads as single end and displays a warning if any read is marked as "second in pair" in the BAM file. 44 | 45 | ### FASTQ 46 | 47 | ~~~ 48 | bamhash_checksum_fastq [OPTIONS] [in2.fastq.gz ... ] 49 | ~~~ 50 | 51 | processes a number of FASTQ files. FASTQ files are assumed to contain paired end reads, such that the first two files contain the first pair of reads, etc. If any of the read names in the two pairs don't match the program exits with failure. 52 | 53 | ### FASTA 54 | 55 | ~~~ 56 | bamhash_checksum_fasta [OPTIONS] [in2.fasta ... ] 57 | ~~~ 58 | 59 | processes a number of FASTA files. All FASTA files are assumed to be single end reads with no quality information. To compare to a BAM file, run `bamhash_checksum_bam --no-paired --no-quality` 60 | 61 | ## Compiling 62 | 63 | External dependencies are on: 64 | OpenSSL for the MD5 implementation 65 | htslib library (version 1.9) 66 | 67 | 68 | -------------------------------------------------------------------------------- /astyle.txt: -------------------------------------------------------------------------------- 1 | add-brackets 2 | align-reference=type 3 | align-pointer=name 4 | style=google 5 | indent=spaces=2 6 | keep-one-line-blocks 7 | keep-one-line-statements 8 | -------------------------------------------------------------------------------- /bamhash_checksum_common.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | #include "bamhash_checksum_common.h" 7 | 8 | 9 | 10 | hash_t str2md5(const char *str, int length) { 11 | hash_t out; 12 | MD5((unsigned char *)str, length, (unsigned char *)(out.c)); 13 | return out; 14 | } 15 | 16 | void hexSum(hash_t out, uint64_t& sum) { 17 | sum += out.p.low; 18 | } 19 | 20 | -------------------------------------------------------------------------------- /bamhash_checksum_common.h: -------------------------------------------------------------------------------- 1 | #ifndef BAMHASH_CHECKSUM_COMMON_H 2 | #define BAMHASH_CHECKSUM_COMMON_H 3 | 4 | #define BAMHASH_VERSION "1.3" 5 | 6 | #include 7 | #include 8 | 9 | union hash_t { 10 | unsigned char c[16]; 11 | struct { 12 | uint64_t low; 13 | uint64_t high; 14 | } p; 15 | }; 16 | 17 | hash_t str2md5(const char *str, int length); 18 | void hexSum(hash_t out, uint64_t& sum); 19 | 20 | 21 | #endif // BAMHASH_CHECKSUM_COMMON_H 22 | -------------------------------------------------------------------------------- /seqan/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2006-2015, Knut Reinert, FU Berlin 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | notice, this list of conditions and the following disclaimer in the 11 | documentation and/or other materials provided with the distribution. 12 | * Neither the name of Knut Reinert or the FU Berlin nor the names of 13 | its contributors may be used to endorse or promote products derived 14 | from this software without specific prior written permission. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 | ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 20 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 23 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25 | OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 26 | DAMAGE. 27 | 28 | -------------------------------------------------------------------------------- /seqan/align_extend.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2013, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Hannes Hauswedell 33 | // ========================================================================== 34 | // Extras for the align module 35 | // ========================================================================== 36 | 37 | #ifndef SEQAN_ALIGN_EXTEND_H 38 | #define SEQAN_ALIGN_EXTEND_H 39 | 40 | #include 41 | #include 42 | #include 43 | 44 | #include 45 | #include 46 | #include 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /seqan/align_profile.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Facade header for module align_profile. 35 | // ========================================================================== 36 | 37 | #ifndef INCLUDE_SEQAN_ALIGN_PROFILE_H_ 38 | #define INCLUDE_SEQAN_ALIGN_PROFILE_H_ 39 | 40 | // =========================================================================== 41 | // Prerequisites 42 | // =========================================================================== 43 | 44 | #include 45 | #include 46 | #include 47 | #include 48 | #include 49 | 50 | // =========================================================================== 51 | // Module Contents 52 | // =========================================================================== 53 | 54 | #include 55 | #include 56 | 57 | #endif // INCLUDE_SEQAN_ALIGN_PROFILE_H_ 58 | -------------------------------------------------------------------------------- /seqan/align_split.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Facade header for module align_split. 35 | // ========================================================================== 36 | 37 | #ifndef SEQAN_INCLUDE_SEQAN_ALIGN_SPLIT_H_ 38 | #define SEQAN_INCLUDE_SEQAN_ALIGN_SPLIT_H_ 39 | 40 | // =========================================================================== 41 | // Prerequisites. 42 | // =========================================================================== 43 | 44 | #include 45 | #include 46 | #include 47 | 48 | // =========================================================================== 49 | // Split Alignment Impelmentation. 50 | // =========================================================================== 51 | 52 | #include 53 | #include 54 | 55 | #endif // SEQAN_INCLUDE_SEQAN_ALIGN_SPLIT_H_ 56 | -------------------------------------------------------------------------------- /seqan/alignment_free.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Jonathan Goeke 33 | // ========================================================================== 34 | // Facade header for module alignment_free. 35 | // ========================================================================== 36 | 37 | #ifndef SEQAN_INCLUDE_SEQAN_ALIGNMENT_FREE_H_ 38 | #define SEQAN_INCLUDE_SEQAN_ALIGNMENT_FREE_H_ 39 | 40 | // =========================================================================== 41 | // Prerequisites. 42 | // =========================================================================== 43 | 44 | #include 45 | #include 46 | #include 47 | #include 48 | #include 49 | 50 | // =========================================================================== 51 | // Module's headers. 52 | // =========================================================================== 53 | 54 | #include 55 | #include 56 | #include 57 | #include 58 | #include 59 | #include 60 | 61 | #include 62 | 63 | #endif // SEQAN_INCLUDE_SEQAN_ALIGNMENT_FREE_H_ 64 | -------------------------------------------------------------------------------- /seqan/arg_parse.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Stephan Aiche 33 | // ========================================================================== 34 | // Facade header for module arg_parse. 35 | // ========================================================================== 36 | 37 | #ifndef SEQAN_INCLUDE_SEQAN_ARG_PARSE_H_ 38 | #define SEQAN_INCLUDE_SEQAN_ARG_PARSE_H_ 39 | 40 | // =========================================================================== 41 | // Prerequisites. 42 | // =========================================================================== 43 | 44 | #include 45 | //#include 46 | #include 47 | #include 48 | 49 | #include 50 | #include 51 | #ifndef PLATFORM_WINDOWS 52 | #include 53 | #endif 54 | 55 | // =========================================================================== 56 | // The ArgParse Headers. 57 | // =========================================================================== 58 | 59 | #include 60 | #include 61 | #include 62 | #include 63 | 64 | #include 65 | #include 66 | 67 | #include 68 | 69 | #include 70 | #include 71 | #include 72 | 73 | 74 | #endif // SEQAN_INCLUDE_SEQAN_ARG_PARSE_H_ 75 | -------------------------------------------------------------------------------- /seqan/basic/alphabet_residue_funcs.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2013 NVIDIA Corporation 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Enrico Siragusa 33 | // ========================================================================== 34 | 35 | #ifndef SEQAN_INCLUDE_SEQAN_BASIC_BASIC_ALPHABET_RESIDUE_FUNCS_H_ 36 | #define SEQAN_INCLUDE_SEQAN_BASIC_BASIC_ALPHABET_RESIDUE_FUNCS_H_ 37 | 38 | 39 | namespace seqan { 40 | 41 | // -------------------------------------------------------------------------- 42 | // Dna 43 | // -------------------------------------------------------------------------- 44 | 45 | template 46 | SEQAN_HOST_DEVICE inline unsigned char 47 | _translateCharToDna(unsigned char c) 48 | { 49 | switch (toUpperValue(c)) 50 | { 51 | case 'C': 52 | return 1; 53 | case 'G': 54 | return 2; 55 | case 'T': 56 | return 3; 57 | default: 58 | return 0; 59 | }; 60 | } 61 | 62 | // -------------------------------------------------------------------------- 63 | // Dna5 64 | // -------------------------------------------------------------------------- 65 | 66 | template 67 | SEQAN_HOST_DEVICE inline unsigned char 68 | _translateCharToDna5(unsigned char c) 69 | { 70 | switch (toUpperValue(c)) 71 | { 72 | case 'A': 73 | return 0; 74 | case 'C': 75 | return 1; 76 | case 'G': 77 | return 2; 78 | case 'T': 79 | return 3; 80 | default: 81 | return 4; 82 | }; 83 | } 84 | 85 | } // namespace seqan 86 | 87 | #endif // #ifndef SEQAN_INCLUDE_SEQAN_BASIC_BASIC_ALPHABET_RESIDUE_FUNCS_H_ 88 | -------------------------------------------------------------------------------- /seqan/basic/basic_aggregate.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Facade header for basic/aggregate submodule. 35 | // ========================================================================== 36 | 37 | #ifndef SEQAN_INCLUDE_SEQAN_BASIC_BASIC_AGGREGATE_H_ 38 | #define SEQAN_INCLUDE_SEQAN_BASIC_BASIC_AGGREGATE_H_ 39 | 40 | // -------------------------------------------------------------------------- 41 | // Prerequisites 42 | // -------------------------------------------------------------------------- 43 | 44 | #include 45 | #include 46 | #include 47 | #include 48 | 49 | // -------------------------------------------------------------------------- 50 | // Sub Module Headers 51 | // -------------------------------------------------------------------------- 52 | 53 | #include 54 | #include 55 | #include 56 | #include 57 | #include 58 | #include 59 | #include 60 | #include 61 | 62 | #endif // #ifndef SEQAN_INCLUDE_SEQAN_BASIC_BASIC_AGGREGATE_H_ 63 | -------------------------------------------------------------------------------- /seqan/basic/basic_allocator.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // basic_allocator.h 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Facade header for basic/allocator submodule. 35 | // ========================================================================== 36 | 37 | #ifndef SEQAN_INCLUDE_SEQAN_BASIC_BASIC_ALLOCATOR_H_ 38 | #define SEQAN_INCLUDE_SEQAN_BASIC_BASIC_ALLOCATOR_H_ 39 | 40 | // -------------------------------------------------------------------------- 41 | // Dependencies 42 | // -------------------------------------------------------------------------- 43 | 44 | #include 45 | #include 46 | #include 47 | 48 | // -------------------------------------------------------------------------- 49 | // Sub Module Headers 50 | // -------------------------------------------------------------------------- 51 | 52 | // The allocator interface definitions. 53 | #include 54 | 55 | // The allocator specializations. 56 | #include 57 | #include 58 | #include 59 | #include 60 | 61 | // Adaption from SeqAn allocator to STL allocator. 62 | #include 63 | 64 | #endif // #ifndef SEQAN_INCLUDE_SEQAN_BASIC_BASIC_ALLOCATOR_H_ 65 | -------------------------------------------------------------------------------- /seqan/basic/basic_concept.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: David Weese 33 | // Author: Manuel Holtgrewe 34 | // ========================================================================== 35 | // Facade header for sub module basic_concept. 36 | // 37 | // This sub module contains the SeqAn Concept Checking library (ported from 38 | // Boost Concept Checking Library) and fundamental concepts (based both on 39 | // Boost concepts and ConceptC++ concepts). 40 | // ========================================================================== 41 | 42 | #ifndef SEQAN_INCLUDE_SEQAN_BASIC_BASIC_CONCEPT_H_ 43 | #define SEQAN_INCLUDE_SEQAN_BASIC_BASIC_CONCEPT_H_ 44 | 45 | // -------------------------------------------------------------------------- 46 | // Prerequisites 47 | // -------------------------------------------------------------------------- 48 | 49 | #include 50 | #include 51 | #include 52 | 53 | // -------------------------------------------------------------------------- 54 | // Sub Module Headers 55 | // -------------------------------------------------------------------------- 56 | 57 | // Minimal subset of the boost preprocessor library, required for concept 58 | // checknig library port. 59 | #include 60 | 61 | // SeqAn Concept Checking Library (ported from Boost). 62 | #include 63 | 64 | // Fundamental concepts such as Assignable. 65 | #include 66 | 67 | #endif // #ifndef SEQAN_INCLUDE_SEQAN_BASIC_BASIC_CONCEPT_H_ 68 | -------------------------------------------------------------------------------- /seqan/basic/basic_container.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Facade header for the basic_container submodule. 35 | // ========================================================================== 36 | 37 | #ifndef SEQAN_INCLUDE_SEQAN_BASIC_BASIC_CONTAINER_H_ 38 | #define SEQAN_INCLUDE_SEQAN_BASIC_BASIC_CONTAINER_H_ 39 | 40 | // -------------------------------------------------------------------------- 41 | // Dependencies 42 | // -------------------------------------------------------------------------- 43 | 44 | #include 45 | #include 46 | #include 47 | #include 48 | 49 | // -------------------------------------------------------------------------- 50 | // Sub Module Headers 51 | // -------------------------------------------------------------------------- 52 | 53 | // PropertyMap concept. 54 | #include 55 | 56 | // Container concept. 57 | #include 58 | 59 | #endif // #ifndef SEQAN_INCLUDE_SEQAN_BASIC_BASIC_CONTAINER_H_ 60 | -------------------------------------------------------------------------------- /seqan/basic/basic_debug.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // The submodule basic/debug contains supporting codes for debugging, the 35 | // assert macros double for test checks. 36 | // ========================================================================== 37 | 38 | #ifndef SEQAN_INCLUDE_SEQAN_BASIC_BASIC_DEBUG_H_ 39 | #define SEQAN_INCLUDE_SEQAN_BASIC_BASIC_DEBUG_H_ 40 | 41 | // -------------------------------------------------------------------------- 42 | // Prerequisites 43 | // -------------------------------------------------------------------------- 44 | 45 | #include 46 | 47 | // -------------------------------------------------------------------------- 48 | // Sub Module Headers 49 | // -------------------------------------------------------------------------- 50 | 51 | // The debug system with assertions. 52 | #include 53 | 54 | // Test and debug helpers. 55 | #include 56 | 57 | // Code for profiling. 58 | #include 59 | 60 | #endif // #ifndef SEQAN_INCLUDE_SEQAN_BASIC_BASIC_DEBUG_H_ 61 | -------------------------------------------------------------------------------- /seqan/basic/basic_math.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Facade header for the basic/math sub module. 35 | // ========================================================================== 36 | 37 | #ifndef SEQAN_INCLUDE_SEQAN_BASIC_BASIC_MATH_H_ 38 | #define SEQAN_INCLUDE_SEQAN_BASIC_BASIC_MATH_H_ 39 | 40 | // -------------------------------------------------------------------------- 41 | // Dependencies 42 | // -------------------------------------------------------------------------- 43 | 44 | #include 45 | #include 46 | 47 | #include 48 | #include 49 | 50 | // -------------------------------------------------------------------------- 51 | // Sub Module Headers 52 | // -------------------------------------------------------------------------- 53 | 54 | #include 55 | #include 56 | 57 | #endif // #ifndef SEQAN_INCLUDE_SEQAN_BASIC_BASIC_MATH_H_ 58 | 59 | -------------------------------------------------------------------------------- /seqan/basic/basic_metaprogramming.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Facade header for the basic/metaprogramming submodule. 35 | // ========================================================================== 36 | 37 | #ifndef SEQAN_INCLUDE_SEQAN_BASIC_BASIC_METAPROGRAMMING_H_ 38 | #define SEQAN_INCLUDE_SEQAN_BASIC_BASIC_METAPROGRAMMING_H_ 39 | 40 | #include 41 | 42 | #ifdef SEQAN_CXX11_STANDARD 43 | #include 44 | #endif 45 | 46 | #include 47 | 48 | // Metaprogramming logical operations. 49 | #include 50 | 51 | // Metaprogramming control structures. 52 | #include 53 | 54 | // Metaprogramming mathematics. 55 | #include 56 | 57 | // Metaprogramming for querying and modifying types. 58 | #include 59 | 60 | // Metaprogramming for type algebra. 61 | #include 62 | 63 | // Metaprogramming for conditional enabling/disabling of code. 64 | #include 65 | 66 | #endif // #ifndef SEQAN_INCLUDE_SEQAN_BASIC_METAPROGRAMMING_H_ 67 | -------------------------------------------------------------------------------- /seqan/basic/basic_parallelism.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // This sub module contains simple, generic support code for parallelism in 35 | // SeqAn. 36 | // 37 | // It mainly defines the macro SEQAN_ENABLE_PARALLELISM. 38 | // ========================================================================== 39 | 40 | #ifndef SEQAN_INCLUDE_SEQAN_BASIC_BASIC_PARALLELISM_H_ 41 | #define SEQAN_INCLUDE_SEQAN_BASIC_BASIC_PARALLELISM_H_ 42 | 43 | /*! 44 | * @macro SEQAN_ENABLE_PARALLELISM 45 | * @headerfile 46 | * @brief Indicates whether parallelism is enabled with value 0/1. 47 | * 48 | * @signature SEQAN_ENABLE_PARALLELISM 49 | * 50 | * By default, set to 1 if _OPENMP is defined and set to 0 otherwise. 51 | * 52 | * @section Examples 53 | * 54 | * If you want to change tihs value then you have to define this value before include any SeqAn header. 55 | * 56 | * @code{.cpp} 57 | * #define SEQAN_ENABLE_PARALLELISM 0 // ALWAYS switch off parallelism! 58 | * 59 | * #include 60 | * 61 | * int main(int argc, char ** argv) 62 | * { 63 | * return 0; 64 | * } 65 | * @endcode 66 | */ 67 | 68 | #if !defined(SEQAN_ENABLE_PARALLELISM) 69 | #if defined(_OPENMP) 70 | #define SEQAN_ENABLE_PARALLELISM 1 71 | #else // defined(_OPENMP) 72 | #define SEQAN_ENABLE_PARALLELISM 0 73 | #endif // defined(_OPENMP) 74 | #endif // !defined(SEQAN_ENABLE_PARALLELISM) 75 | 76 | #endif // SEQAN_INCLUDE_SEQAN_BASIC_BASIC_PARALLELISM_H_ 77 | -------------------------------------------------------------------------------- /seqan/basic/basic_proxy.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Proxy definition. 35 | // ========================================================================== 36 | 37 | #ifndef SEQAN_INCLUDE_SEQAN_BASIC_BASIC_PROXY_H_ 38 | #define SEQAN_INCLUDE_SEQAN_BASIC_BASIC_PROXY_H_ 39 | 40 | // -------------------------------------------------------------------------- 41 | // Dependencies 42 | // -------------------------------------------------------------------------- 43 | 44 | #include 45 | #include 46 | #include 47 | 48 | // -------------------------------------------------------------------------- 49 | // Sub Module Headers 50 | // -------------------------------------------------------------------------- 51 | 52 | // Proxy base class. 53 | #include 54 | 55 | // Implementation of a proxy through an iterator (the latter only needs 56 | // assignValue() and setValue()). 57 | #include 58 | 59 | #endif // SEQAN_INCLUDE_SEQAN_BASIC_BASIC_PROXY_H_ 60 | -------------------------------------------------------------------------------- /seqan/basic/basic_smart_pointer.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Facade header for the basic/smart_pointer sub module. 35 | // ========================================================================== 36 | 37 | #ifndef SEQAN_INCLUDE_SEQAN_BASIC_BASIC_SMART_POINTER_H_ 38 | #define SEQAN_INCLUDE_SEQAN_BASIC_BASIC_SMART_POINTER_H_ 39 | 40 | // -------------------------------------------------------------------------- 41 | // Dependencies 42 | // -------------------------------------------------------------------------- 43 | 44 | #include 45 | #include 46 | #include // TODO(holtgrew): Drop dependency, only for pointer holder which does not work anyway. 47 | #include // TODO(holtgrew): Really required? Deprecated header? 48 | 49 | // -------------------------------------------------------------------------- 50 | // Sub Module Headers 51 | // -------------------------------------------------------------------------- 52 | 53 | #include 54 | #include 55 | #include 56 | 57 | #include 58 | 59 | #endif // #ifndef SEQAN_INCLUDE_SEQAN_BASIC_BASIC_SMART_POINTER_H_ 60 | -------------------------------------------------------------------------------- /seqan/basic/builtin_functions.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // builtin_functions.h 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Documentation for built-in functions. 35 | // 36 | // This is used for documenting that certain global functions and operators 37 | // are overridden for some classes. 38 | // ========================================================================== 39 | 40 | #ifndef SEQAN_INCLUDE_SEQAN_BASIC_BUILTIN_FUNCTIONS_H_ 41 | #define SEQAN_INCLUDE_SEQAN_BASIC_BUILTIN_FUNCTIONS_H_ 42 | 43 | namespace seqan { 44 | 45 | // ============================================================================ 46 | // Forwards 47 | // ============================================================================ 48 | 49 | // ============================================================================ 50 | // Tags, Classes, Enums 51 | // ============================================================================ 52 | 53 | // ============================================================================ 54 | // Metafunctions 55 | // ============================================================================ 56 | 57 | // ============================================================================ 58 | // Functions 59 | // ============================================================================ 60 | 61 | } // namespace seqan 62 | 63 | #endif // #ifndef SEQAN_INCLUDE_SEQAN_BASIC_BUILTIN_FUNCTIONS_H_ 64 | -------------------------------------------------------------------------------- /seqan/basic/macro_deprecated.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Macro for deprecating code. 35 | // ========================================================================== 36 | 37 | #ifndef INCLUDE_SEQAN_BASIC_MACRO_DEPRECATED_H_ 38 | #define INCLUDE_SEQAN_BASIC_MACRO_DEPRECATED_H_ 39 | 40 | namespace seqan { 41 | 42 | // ============================================================================ 43 | // Macros 44 | // ============================================================================ 45 | 46 | // Macros SEQAN_DEPRECATED_PRE SEQAN_DEPRECATED_POST 47 | // 48 | // For internal use only. 49 | // 50 | // For cross-platform compatibility, you can use this in declarations only. 51 | // We need a version that comes before and one that comes after the symbol 52 | // because of cross-compiler compatibility. 53 | // 54 | // Example: 55 | // 56 | // void 57 | // SEQAN_DEPRECATED_PRE("Use bar instead.") 58 | // f() 59 | // SEQAN_DEPRECATED_POST("Use bar instead."); 60 | 61 | #if defined(__clang__) 62 | #define SEQAN_DEPRECATED_PRE(msg) 63 | #define SEQAN_DEPRECATED_POST(msg) __attribute__((deprecated(msg))) 64 | #elif defined(__GNUC__) 65 | #define SEQAN_DEPRECATED_PRE(msg) 66 | #define SEQAN_DEPRECATED_POST(msg) __attribute__((__deprecated__)) 67 | #elif defined(_MSC_VER) 68 | #define SEQAN_DEPRECATED_PRE(msg) __declspec(deprecated(msg)) 69 | #define SEQAN_DEPRECATED_POST(msg) 70 | #else 71 | #pragma message("WARNING: You need to implement DEPRECATED_PRE and DEPRECATED_POST for this compiler") 72 | #define SEQAN_DEPRECATED_PRE(func) 73 | #define SEQAN_DEPRECATED_POST(func) 74 | #endif 75 | 76 | } // namespace seqan 77 | 78 | #endif // #ifndef INCLUDE_SEQAN_BASIC_MACRO_DEPRECATED_H_ 79 | -------------------------------------------------------------------------------- /seqan/bed_io.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Facade header for module bed_io. 35 | // ========================================================================== 36 | 37 | #ifndef INCLUDE_SEQAN_BED_IO_H_ 38 | #define INCLUDE_SEQAN_BED_IO_H_ 39 | 40 | // =========================================================================== 41 | // Prerequisites. 42 | // =========================================================================== 43 | 44 | #include 45 | #include 46 | #include 47 | 48 | // =========================================================================== 49 | // First Header Group. 50 | // =========================================================================== 51 | 52 | #include 53 | 54 | #include 55 | #include 56 | 57 | #include 58 | 59 | #endif // INCLUDE_SEQAN_BED_IO_H_ 60 | -------------------------------------------------------------------------------- /seqan/blast.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Hannes Hauswedell 33 | // ========================================================================== 34 | // Module for handling NCBI Blast I/O and E-Value computation 35 | // ========================================================================== 36 | 37 | #ifndef SEQAN_BLAST_H 38 | #define SEQAN_BLAST_H 39 | 40 | #include 41 | 42 | #ifdef SEQAN_CXX11_COMPLETE 43 | 44 | #include 45 | #include 46 | #include 47 | #include 48 | #include 49 | #include 50 | #include 51 | #include 52 | 53 | #include 54 | #include 55 | #include 56 | #include 57 | #include 58 | 59 | #include "blast/blast_base.h" 60 | #include "blast/blast_tabular_lowlevel.h" 61 | #include "blast/blast_record.h" 62 | #include "blast/blast_tabular.h" 63 | #include "blast/blast_io_context.h" 64 | #include "blast/blast_statistics.h" 65 | #include "blast/blast_tabular_in.h" 66 | #include "blast/blast_tabular_out.h" 67 | #include "blast/blast_report_out.h" 68 | 69 | #else //SEQAN_CXX11_COMPLETE 70 | 71 | #error The blast module requires C++11 support. \ 72 | If your compiler supports C++11, please define SEQAN_CXX11_STANDARD 73 | 74 | #endif //SEQAN_CXX11_COMPLETE 75 | 76 | #endif 77 | -------------------------------------------------------------------------------- /seqan/consensus.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | 35 | #ifndef INCLUDE_SEQAN_CONSENSUS_H_ 36 | #define INCLUDE_SEQAN_CONSENSUS_H_ 37 | 38 | // ========================================================================== 39 | // Dependencies 40 | // ========================================================================== 41 | 42 | #include 43 | #include 44 | #include 45 | #include 46 | #include 47 | #include 48 | #include 49 | #include 50 | #include 51 | 52 | // ========================================================================== 53 | // Old Consensus Module 54 | // ========================================================================== 55 | 56 | #include 57 | #include 58 | #include 59 | #include 60 | 61 | // ========================================================================== 62 | // New, Store-Based Module 63 | // ========================================================================== 64 | 65 | #include 66 | #include 67 | #include 68 | #include 69 | 70 | #endif // #ifndef INCLUDE_SEQAN_CONSENSUS_H_ 71 | -------------------------------------------------------------------------------- /seqan/file/file_forwards.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: David Weese 33 | // ========================================================================== 34 | 35 | #ifndef SEQAN_HEADER_FILE_FORWARDS_H 36 | #define SEQAN_HEADER_FILE_FORWARDS_H 37 | 38 | ////////////////////////////////////////////////////////////////////////////// 39 | 40 | namespace SEQAN_NAMESPACE_MAIN 41 | { 42 | 43 | ////////////////////////////////////////////////////////////////////////////// 44 | 45 | template 46 | class Align; 47 | //IOREV _todo_ 48 | 49 | 50 | ////////////////////////////////////////////////////////////////////////////// 51 | 52 | } //namespace SEQAN_NAMESPACE_MAIN 53 | 54 | ////////////////////////////////////////////////////////////////////////////// 55 | 56 | #endif 57 | 58 | -------------------------------------------------------------------------------- /seqan/gff_io.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // gff_io 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: David Weese 33 | // ========================================================================== 34 | // Facade header for module gff_io. 35 | // ========================================================================== 36 | 37 | #ifndef INCLUDE_SEQAN_GFF_IO_H_ 38 | #define INCLUDE_SEQAN_GFF_IO_H_ 39 | 40 | // =========================================================================== 41 | // Prerequisites. 42 | // =========================================================================== 43 | 44 | #include 45 | #include 46 | #include 47 | #include 48 | 49 | // =========================================================================== 50 | // First Header Group. 51 | // =========================================================================== 52 | 53 | #include 54 | #include 55 | 56 | #endif // INCLUDE_SEQAN_GFF_IO_H_ 57 | -------------------------------------------------------------------------------- /seqan/graph_algorithms.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | 33 | #ifndef SEQAN_HEADER_GRAPH_ALGORITHMS_H 34 | #define SEQAN_HEADER_GRAPH_ALGORITHMS_H 35 | 36 | // External / STL 37 | #include 38 | #include 39 | 40 | // Seqan 41 | #include 42 | #include 43 | #include 44 | 45 | // Graph algorithms 46 | #include 47 | #include 48 | #include 49 | 50 | // Individual graph algorithms. 51 | #include 52 | #include 53 | #include 54 | #include 55 | #include 56 | #include 57 | #include 58 | #include 59 | #include 60 | #include 61 | #include 62 | #include 63 | #include 64 | #include 65 | #include 66 | #include 67 | #include 68 | #include 69 | 70 | #endif // #ifndef SEQAN_HEADER_GRAPH_ALGORITHMS_H 71 | -------------------------------------------------------------------------------- /seqan/graph_align.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Tobias Rausch 33 | // Author: Anne-Katrin Emde 34 | // ========================================================================== 35 | // Umbrella header for the moduel graph_align. 36 | // ========================================================================== 37 | 38 | #ifndef SEQAN_INCLUDE_SEQAN_GRAPH_ALIGN_H_ 39 | #define SEQAN_INCLUDE_SEQAN_GRAPH_ALIGN_H_ 40 | 41 | // External STL 42 | #include 43 | 44 | // Seqan 45 | #include 46 | #include 47 | #include 48 | #include 49 | 50 | 51 | // Alignment graph 52 | #include 53 | #include 54 | 55 | // Interval trees 56 | #include 57 | 58 | // Refinement 59 | //#include 60 | #include 61 | #include 62 | #include 63 | #include 64 | //#include 65 | #include 66 | #include 67 | #include 68 | 69 | #endif // #ifndef SEQAN_INCLUDE_SEQAN_GRAPH_ALIGN_H_ 70 | -------------------------------------------------------------------------------- /seqan/graph_align/graph_algorithm_refine_scoring.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Tobias Rausch 33 | // Author: Anne-Katrin Emde 34 | // ========================================================================== 35 | 36 | #ifndef SEQAN_INCLUDE_SEQAN_GRAPH_ALIGN_GRAPH_IMPL_REFINE_SCORING_H_ 37 | #define SEQAN_INCLUDE_SEQAN_GRAPH_ALIGN_GRAPH_IMPL_REFINE_SCORING_H_ 38 | 39 | namespace seqan { 40 | 41 | // Fake score function. 42 | 43 | template 44 | TScoreValue 45 | _getRefinedMatchScore(TScoreValue const &, TStringSet const &, TAlign const &, TValue, TValue, TSize, TSize) 46 | { 47 | return 1; 48 | } 49 | 50 | } // namespace seqan 51 | 52 | #endif // #ifndef SEQAN_INCLUDE_SEQAN_GRAPH_ALIGN_GRAPH_IMPL_REFINE_SCORING_H_ 53 | -------------------------------------------------------------------------------- /seqan/graph_msa.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | 33 | #ifndef SEQAN_HEADER_GRAPH_MSA_H 34 | #define SEQAN_HEADER_GRAPH_MSA_H 35 | 36 | // Seqan 37 | #include 38 | #include 39 | #include 40 | #include 41 | #include 42 | 43 | //MSA 44 | #include 45 | #include 46 | #include 47 | #include 48 | #include 49 | #include 50 | #include 51 | #include 52 | #include 53 | 54 | #endif //#ifndef SEQAN_HEADER_... 55 | -------------------------------------------------------------------------------- /seqan/graph_types.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | 33 | #ifndef SEQAN_HEADER_GRAPH_TYPES_H 34 | #define SEQAN_HEADER_GRAPH_TYPES_H 35 | 36 | // External / STL 37 | #include 38 | 39 | 40 | // Seqan 41 | #include 42 | #include 43 | #include 44 | 45 | // Basic graph stuff 46 | #include 47 | #include // Id manager 48 | #include // EdgeStumps 49 | #include // Graph metafunctions 50 | 51 | // Graph types 52 | #include // Directed Graph 53 | #include // Undirected graph 54 | #include // Automaton 55 | #include // Specialized automaton: Word graph 56 | #include // Tree 57 | #include // HMM 58 | 59 | // Graph iterators 60 | #include 61 | #include 62 | #include 63 | #include 64 | #include 65 | 66 | // Graph property maps 67 | #include 68 | #include 69 | #include 70 | 71 | // Specializations 72 | #include // Oracle 73 | #include // Trie 74 | 75 | // Specialized iterators 76 | #include 77 | #include 78 | 79 | // Graph drawing and some file parsing 80 | #include 81 | 82 | #endif //#ifndef SEQAN_HEADER_... 83 | -------------------------------------------------------------------------------- /seqan/graph_types/graph_utility_parsing.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | 33 | #ifndef SEQAN_HEADER_GRAPH_UTILITY_PARSING_H 34 | #define SEQAN_HEADER_GRAPH_UTILITY_PARSING_H 35 | 36 | 37 | #include 38 | 39 | namespace SEQAN_NAMESPACE_MAIN 40 | { 41 | 42 | ////////////////////////////////////////////////////////////////////////////// 43 | // File reading 44 | ////////////////////////////////////////////////////////////////////////////// 45 | 46 | ////////////////////////////////////////////////////////////////////////////// 47 | 48 | ////////////////////////////////////////////////////////////////////////////// 49 | 50 | // This is unused and a deletion candidate. 51 | // TODO(singer): Remove this! 52 | /* 53 | template 54 | inline unsigned int 55 | _loadSequences(TPath const& in_path, 56 | TStringSet& origStrSet, 57 | TNames& names) 58 | { 59 | //IOREV _nodoc_ uses custom IO, with ifstream, should be adapted to File() 60 | typedef typename Size::Type TSize; 61 | 62 | // Count sequences and read names 63 | TSize seqCount = 0; 64 | std::ifstream file; 65 | std::stringstream input; 66 | input << in_path; 67 | file.open(input.str().c_str(), std::ios_base::in | std::ios_base::binary); 68 | if (!file.is_open()) return 0; 69 | while (!file.eof()) { 70 | String id; 71 | readID(file, id, Fasta()); 72 | appendValue(names, id); 73 | goNext(file, Fasta()); 74 | ++seqCount; 75 | } 76 | 77 | // Load sequences 78 | file.clear(); 79 | file.seekg(0, std::ios_base::beg); 80 | resize(origStrSet, seqCount); 81 | TSize count = 0; 82 | for(TSize i = 0; (i < seqCount) && !file.eof(); ++i) { 83 | read(file, origStrSet[i], Fasta()); 84 | count += length(origStrSet[i]); 85 | } 86 | file.close(); 87 | 88 | return count; 89 | } 90 | */ 91 | 92 | }// namespace SEQAN_NAMESPACE_MAIN 93 | 94 | #endif //#ifndef SEQAN_HEADER_... 95 | -------------------------------------------------------------------------------- /seqan/hts_io.h: -------------------------------------------------------------------------------- 1 | #ifndef INCLUDE_SEQAN_HTS_IO_H_ 2 | #define INCLUDE_SEQAN_HTS_IO_H_ 3 | 4 | // =========================================================================== 5 | // Prerequisites. 6 | // =========================================================================== 7 | 8 | #include 9 | 10 | // =========================================================================== 11 | // HTS I/O 12 | // =========================================================================== 13 | 14 | #include 15 | #include 16 | #include 17 | 18 | #endif // INCLUDE_SEQAN_HTS_IO_H_ 19 | -------------------------------------------------------------------------------- /seqan/hts_io/hts_alignment_record.h: -------------------------------------------------------------------------------- 1 | #ifndef SEQAN_HTS_IO_HTS_ALIGNMENT_RECORD_H_ 2 | #define SEQAN_HTS_IO_HTS_ALIGNMENT_RECORD_H_ 3 | 4 | #include 5 | 6 | #include 7 | 8 | #include 9 | #include 10 | #include 11 | 12 | namespace seqan { 13 | 14 | class HtsSequenceRecord 15 | { 16 | public: 17 | String qName; 18 | String seq; 19 | String qual; 20 | 21 | static __int32 const INVALID_POS = -1; 22 | static __int32 const INVALID_REF_ID = -1; 23 | static __int32 const INVALID_LEN = 0; 24 | static __uint32 const INVALID_QID = 4294967295u; 25 | 26 | HtsSequenceRecord() 27 | : qName(), seq(), qual() {} 28 | 29 | HtsSequenceRecord(bam1_t * hts_record) 30 | { 31 | HtsSequenceRecord::parse(hts_record); 32 | } 33 | 34 | void parse(bam1_t * hts_record) 35 | { 36 | qName = bam_get_qname(hts_record); 37 | int32_t lqseq = hts_record->core.l_qseq; 38 | resize(seq, lqseq, Exact()); 39 | uint8_t* seqptr = bam_get_seq(hts_record); 40 | 41 | for (int i = 0; i < lqseq; ++i) 42 | { 43 | seq[i] = "=ACMGRSVTWYHKDBN"[bam_seqi(seqptr, i)]; 44 | } 45 | 46 | uint8_t* qualptr = bam_get_qual(hts_record); 47 | resize(qual, lqseq, Exact()); 48 | 49 | for (int i = 0; i < lqseq; ++i, ++qualptr) 50 | { 51 | qual[i] = static_cast(*qualptr + 33); 52 | } 53 | } 54 | }; 55 | 56 | } // namespace seqan 57 | 58 | #endif // SEQAN_HTS_IO_HTS_ALIGNMENT_RECORD_H_ 59 | -------------------------------------------------------------------------------- /seqan/hts_io/hts_alignment_record_utils.h: -------------------------------------------------------------------------------- 1 | #ifndef INCLUDE_SEQAN_HTS_IO_HTS_ALIGNMENT_RECORD_UTILS_H_ 2 | #define INCLUDE_SEQAN_HTS_IO_HTS_ALIGNMENT_RECORD_UTILS_H_ 3 | 4 | #include 5 | #include 6 | 7 | namespace seqan { 8 | 9 | 10 | CharString inline 11 | getContigName(int32_t const rID, HtsFile const & file) 12 | { 13 | SEQAN_ASSERT(file.hdr); 14 | 15 | if (rID < 0 || rID >= file.hdr->n_targets) 16 | return CharString(""); 17 | 18 | return CharString(file.hdr->target_name[rID]); 19 | } 20 | 21 | 22 | } // namespace seqan 23 | 24 | #endif // INCLUDE_SEQAN_HTS_IO_HTS_ALIGNMENT_RECORD_UTILS_H_ 25 | -------------------------------------------------------------------------------- /seqan/index/index_forwards.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: David Weese 33 | // ========================================================================== 34 | 35 | #ifndef SEQAN_HEADER_INDEX_MANUAL_FORWARDS_H 36 | #define SEQAN_HEADER_INDEX_MANUAL_FORWARDS_H 37 | 38 | //SEQAN_NO_GENERATED_FORWARDS: no forwards are generated for this file 39 | 40 | ////////////////////////////////////////////////////////////////////////////// 41 | // CLASSES 42 | ////////////////////////////////////////////////////////////////////////////// 43 | 44 | namespace SEQAN_NAMESPACE_MAIN { 45 | 46 | struct FibreText_; // Original text. Can be a String or a StringSet 47 | struct FibreRawText_; // Concatenation of the strings above 48 | struct FibreSA_; // suffix array (of raw text with virtual $-delimiters) with Pair entries 49 | struct FibreRawSA_; // suffix array with integer entries 50 | struct FibreSae_; // suffix array reordered in a b-tree 51 | struct FibreLcp_; // lcp table of raw text 52 | struct FibreLcpe_; // lcp interval tree 53 | struct FibreChildtab_; // childtab (Kurtz et al.) of raw text 54 | struct FibreBwt_; // burrows wheeler table of raw text 55 | 56 | typedef Tag const FibreText; 57 | typedef Tag const FibreRawText; 58 | typedef Tag const FibreSA; 59 | typedef Tag const FibreRawSA; 60 | typedef Tag const FibreSae; 61 | typedef Tag const FibreLcp; 62 | typedef Tag const FibreLcpe; 63 | typedef Tag const FibreChildtab; 64 | typedef Tag const FibreBwt; 65 | 66 | } 67 | 68 | #endif 69 | 70 | -------------------------------------------------------------------------------- /seqan/index/pump_separator7.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: David Weese 33 | // ========================================================================== 34 | 35 | #ifndef SEQAN_HEADER_INDEX_PUMP_SEPARATOR_H 36 | #define SEQAN_HEADER_INDEX_PUMP_SEPARATOR_H 37 | 38 | namespace SEQAN_NAMESPACE_MAIN 39 | { 40 | 41 | 42 | template < 43 | typename TInput, typename TFunctor, 44 | typename TOut1, typename TOut2, typename TOut4 45 | > 46 | static void _skew7SeparateSlices( 47 | TInput &in, TFunctor const &funcSlice, 48 | TOut1 &out1, TOut2 &out2, TOut4 &out4) 49 | { 50 | beginRead(in); 51 | 52 | resize(out1, funcSlice.n1); 53 | resize(out2, funcSlice.n2); 54 | resize(out4, funcSlice.n4); 55 | 56 | beginWrite(out1); 57 | beginWrite(out2); 58 | beginWrite(out4); 59 | 60 | typename Value::Type i; 61 | while (!eof(in)) { 62 | pop(in, i); 63 | if (i.i1 < funcSlice.n4) { 64 | push(out4, i); 65 | } else 66 | if (i.i1 < funcSlice.n24) { 67 | i.i1 -= funcSlice.n4; 68 | push(out2, i); 69 | } else { 70 | i.i1 -= funcSlice.n24; 71 | push(out1, i); 72 | } 73 | } 74 | 75 | endWrite(out4); 76 | endWrite(out2); 77 | endWrite(out1); 78 | endRead(in); 79 | } 80 | 81 | //} 82 | 83 | } 84 | 85 | #endif 86 | -------------------------------------------------------------------------------- /seqan/map.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | 33 | #ifndef SEQAN_HEADER_MAP_H 34 | #define SEQAN_HEADER_MAP_H 35 | 36 | //____________________________________________________________________________ 37 | // prerequisites 38 | 39 | #include 40 | #include 41 | 42 | #include 43 | 44 | //____________________________________________________________________________ 45 | 46 | #include 47 | #include 48 | #include 49 | #include 50 | #include 51 | 52 | //____________________________________________________________________________ 53 | 54 | /* 55 | #include 56 | #include 57 | #include 58 | */ 59 | 60 | //____________________________________________________________________________ 61 | 62 | #endif //#ifndef SEQAN_HEADER_... 63 | -------------------------------------------------------------------------------- /seqan/map/map_chooser.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | 33 | #ifndef SEQAN_HEADER_MAP_CHOOSER_H 34 | #define SEQAN_HEADER_MAP_CHOOSER_H 35 | 36 | ////////////////////////////////////////////////////////////////////////////// 37 | 38 | namespace SEQAN_NAMESPACE_MAIN 39 | { 40 | 41 | ////////////////////////////////////////////////////////////////////////////// 42 | // Set meta-function to choose an efficient implementation 43 | 44 | template 45 | struct ChooseMap2_ 46 | { 47 | typedef Map > Type; 48 | }; 49 | template 50 | struct ChooseMap2_ 51 | { 52 | typedef Map > Type; 53 | }; 54 | 55 | 56 | template 57 | struct ChooseMap: 58 | ChooseMap2_::Type)> 59 | {}; 60 | 61 | 62 | ////////////////////////////////////////////////////////////////////////////// 63 | 64 | } 65 | 66 | #endif 67 | -------------------------------------------------------------------------------- /seqan/math.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: David Weese 33 | // ========================================================================== 34 | // This is the facade header for the math module. 35 | // ========================================================================== 36 | 37 | #ifndef SEQAN_MATH_H_ 38 | #define SEQAN_MATH_H_ 39 | 40 | // ========================================================================== 41 | // Prerequisites 42 | // ========================================================================== 43 | 44 | #include 45 | #include 46 | 47 | // ========================================================================== 48 | // Math Data Structures 49 | // ========================================================================== 50 | 51 | #include "math/math_common_factor.h" 52 | #include "math/math_operators.h" 53 | #include "math/math_rational.h" 54 | 55 | #endif // SEQAN_MATH_H_ 56 | -------------------------------------------------------------------------------- /seqan/misc/bit_twiddling.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DecodeGenetics/BamHash/b64352c02184b72350d92eed6e2872a62b3e70ee/seqan/misc/bit_twiddling.h -------------------------------------------------------------------------------- /seqan/misc/map.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Andreas Gogol-Doering 33 | // ========================================================================== 34 | // Note that this file originally did not compile. Me (holtgrew) change it 35 | // it it compiled. However, it might not make sense to fix it so it actually 36 | // works. 37 | // ========================================================================== 38 | 39 | //SEQAN_NO_GENERATED_FORWARDS: no forwards are generated for this file 40 | 41 | #ifndef SEQAN_HEADER_MISC_MAP_H 42 | #define SEQAN_HEADER_MISC_MAP_H 43 | 44 | #include 45 | #include "base.h" 46 | 47 | 48 | ////////////////////////////////////////////////////////////////////////////// 49 | 50 | namespace SEQAN_NAMESPACE_MAIN 51 | { 52 | 53 | ////////////////////////////////////////////////////////////////////////////// 54 | // 55 | 56 | template 57 | inline typename TPair::T1 & keyOf(TPair &pair) { 58 | return getValueI1(pair); 59 | } 60 | template 61 | inline typename TPair::T1 const & keyOf(TPair const &pair) { 62 | return getValueI1(pair); 63 | } 64 | template 65 | inline typename TPair::T2 & objectOf(TPair &pair) { 66 | return getValueI2(pair); 67 | } 68 | template 69 | inline typename TPair::T2 const & objectOf(TPair const &pair) { 70 | return getValueI2(pair); 71 | } 72 | 73 | ////////////////////////////////////////////////////////////////////////////// 74 | // 75 | 76 | // template 77 | // struct Map { 78 | // typedef std::map Type; 79 | // }; 80 | template 81 | class Map< Pair > { 82 | // typedef std::set< Pair, SetLess< Pair > > Type; 83 | }; 84 | 85 | } 86 | 87 | #endif 88 | 89 | -------------------------------------------------------------------------------- /seqan/misc/priority_type_base.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | 33 | #ifndef SEQAN_HEADER_PRIORITY_TYPE_BASE_H 34 | #define SEQAN_HEADER_PRIORITY_TYPE_BASE_H 35 | 36 | #include 37 | 38 | namespace SEQAN_NAMESPACE_MAIN 39 | { 40 | 41 | ////////////////////////////////////////////////////////////////////////////// 42 | 43 | struct PriorityHeap; 44 | 45 | ////////////////////////////////////////////////////////////////////////////// 46 | 47 | /*! 48 | * @class PriorityType 49 | * @headerfile 50 | * @brief STores items in such a way that the item with the highest priority is at the top. 51 | * 52 | * @signature template <[typename TValue[, typename TLess[, typename TSpec]]]> 53 | * class PriorityType; 54 | * 55 | * @tparam TValue The value type. Default: int. 56 | * @tparam TLess The less-than comparator. Default: std::less<TValue>. 57 | * @tparam TSpec The specialization. Default: PriorityHeap. 58 | */ 59 | 60 | template , typename TSpec = PriorityHeap> 61 | class PriorityType; 62 | 63 | ////////////////////////////////////////////////////////////////////////////// 64 | 65 | template 66 | struct Value< PriorityType > 67 | { 68 | typedef TValue Type; 69 | }; 70 | 71 | template 72 | struct Size< PriorityType > 73 | { 74 | typedef typename Size::Type Type; 75 | }; 76 | 77 | ////////////////////////////////////////////////////////////////////////////// 78 | 79 | }// namespace SEQAN_NAMESPACE_MAIN 80 | 81 | #endif //#ifndef SEQAN_HEADER_... 82 | -------------------------------------------------------------------------------- /seqan/misc/priority_type_heap.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DecodeGenetics/BamHash/b64352c02184b72350d92eed6e2872a62b3e70ee/seqan/misc/priority_type_heap.h -------------------------------------------------------------------------------- /seqan/parse_lm.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // parse_lm 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Facade header for module parse_lm. 35 | // ========================================================================== 36 | 37 | #ifndef SANDBOX_HOLTGREW_INCLUDE_SEQAN_PARSE_LM_H_ 38 | #define SANDBOX_HOLTGREW_INCLUDE_SEQAN_PARSE_LM_H_ 39 | 40 | // =========================================================================== 41 | // Prerequisites. 42 | // =========================================================================== 43 | 44 | #include 45 | #include 46 | #include 47 | #include 48 | #include 49 | 50 | // =========================================================================== 51 | // First Header Group. 52 | // =========================================================================== 53 | 54 | #include 55 | 56 | #include 57 | #include 58 | #include 59 | 60 | #endif // SANDBOX_HOLTGREW_INCLUDE_SEQAN_PARSE_LM_H_ 61 | -------------------------------------------------------------------------------- /seqan/pipe.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | 33 | #ifndef SEQAN_HEADER_PIPE_H 34 | #define SEQAN_HEADER_PIPE_H 35 | 36 | //____________________________________________________________________________ 37 | // prerequisites 38 | 39 | #include 40 | #include 41 | #include 42 | 43 | #include 44 | #include 45 | #include 46 | #include 47 | #include 48 | #include 49 | #include 50 | 51 | //____________________________________________________________________________ 52 | // pipes 53 | 54 | #define SEQAN_NAMESPACE_PIPELINING pipe 55 | 56 | #include 57 | #include 58 | #include 59 | #include 60 | #include 61 | #include 62 | #include 63 | #include 64 | #include 65 | #include 66 | #include 67 | #include 68 | #include 69 | 70 | //____________________________________________________________________________ 71 | // pools 72 | 73 | #include 74 | #include 75 | 76 | #include 77 | #include 78 | #include 79 | 80 | #endif //#ifndef SEQAN_HEADER_... 81 | -------------------------------------------------------------------------------- /seqan/platform/platform_icc.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // Copyright (c) 2013 NVIDIA Corporation 6 | // All rights reserved. 7 | // 8 | // Redistribution and use in source and binary forms, with or without 9 | // modification, are permitted provided that the following conditions are met: 10 | // 11 | // * Redistributions of source code must retain the above copyright 12 | // notice, this list of conditions and the following disclaimer. 13 | // * Redistributions in binary form must reproduce the above copyright 14 | // notice, this list of conditions and the following disclaimer in the 15 | // documentation and/or other materials provided with the distribution. 16 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 17 | // its contributors may be used to endorse or promote products derived 18 | // from this software without specific prior written permission. 19 | // 20 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 24 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 30 | // DAMAGE. 31 | // 32 | // ========================================================================== 33 | 34 | #ifndef PLATFORM_GCC 35 | #define PLATFORM_GCC 36 | 37 | // should be set before including anything 38 | #ifndef _FILE_OFFSET_BITS 39 | #define _FILE_OFFSET_BITS 64 40 | #endif 41 | 42 | #ifndef _LARGEFILE_SOURCE 43 | #define _LARGEFILE_SOURCE 44 | #endif 45 | 46 | // The symbols SEQAN_IS_64_BIT and SEQAN_IS_32_BIT can be used to check 47 | // whether we are on a 32 bit or on a 64 bit machine. 48 | #if defined(__amd64__) || defined(__x86_64__) || defined(__ia64__) 49 | #define SEQAN_IS_64_BIT 1 50 | #define SEQAN_IS_32_BIT 0 51 | #else // #if defined(__amd64__) || defined(__x86_64__) || defined(__ia64__) 52 | #define SEQAN_IS_64_BIT 0 53 | #define SEQAN_IS_32_BIT 1 54 | #endif // #if defined(__amd64__) || defined(__x86_64__) || defined(__ia64__) 55 | 56 | //#include 57 | #include 58 | 59 | #define finline __inline__ 60 | 61 | // default 64bit type 62 | #define __int64 int64_t // nolint 63 | typedef uint64_t __uint64; // nolint 64 | 65 | // default 32bit type 66 | #define __int32 int32_t // nolint 67 | typedef uint32_t __uint32; // nolint 68 | 69 | // default 16bit type 70 | #define __int16 int16_t // nolint 71 | typedef uint16_t __uint16; // nolint 72 | 73 | // default 8bit type 74 | #define __int8 int8_t // nolint 75 | typedef uint8_t __uint8; // nolint 76 | 77 | // detect gcc C++11 support 78 | #if defined(__GXX_EXPERIMENTAL_CXX0X__) 79 | # define SEQAN_CXX11_STANDARD 80 | #endif 81 | 82 | // detect clang C++11 support 83 | #ifdef __has_feature 84 | # if __has_feature(cxx_static_assert) 85 | # define SEQAN_CXX11_STANDARD 86 | # endif 87 | #endif 88 | 89 | #endif // #ifndef PLATFORM_GCC 90 | -------------------------------------------------------------------------------- /seqan/platform/platform_mingw.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // Copyright (c) 2013 NVIDIA Corporation 6 | // All rights reserved. 7 | // 8 | // Redistribution and use in source and binary forms, with or without 9 | // modification, are permitted provided that the following conditions are met: 10 | // 11 | // * Redistributions of source code must retain the above copyright 12 | // notice, this list of conditions and the following disclaimer. 13 | // * Redistributions in binary form must reproduce the above copyright 14 | // notice, this list of conditions and the following disclaimer in the 15 | // documentation and/or other materials provided with the distribution. 16 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 17 | // its contributors may be used to endorse or promote products derived 18 | // from this software without specific prior written permission. 19 | // 20 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 24 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 30 | // DAMAGE. 31 | // 32 | // ========================================================================== 33 | 34 | /*! 35 | * @macro PLATFORM_WINDOWS 36 | * @headerfile 37 | * @brief Defined if the compiler targets Windows (MSVC or MinGW). 38 | * 39 | * @signature #define PLATFORM_WINDOWS 40 | * 41 | * @macro PLATFORM_WINDOWS_MINGW 42 | * @headerfile 43 | * @brief Defined if the compiler is MinGW. 44 | * 45 | * @signature #define PLATFORM_WINDOWS_MINGW 46 | */ 47 | 48 | #ifndef PLATFORM_WINDOWS 49 | #define PLATFORM_WINDOWS 50 | 51 | #define PLATFORM_WINDOWS_MINGW 52 | 53 | #define finline __inline__ 54 | 55 | // The symbols SEQAN_IS_64_BIT and SEQAN_IS_32_BIT can be used to check 56 | // whether we are on a 32 bit or on a 64 bit machine. 57 | #if defined(__amd64__) || defined(__x86_64__) || defined(__ia64__) 58 | #define SEQAN_IS_64_BIT 1 59 | #define SEQAN_IS_32_BIT 0 60 | #else // #if defined(__amd64__) || defined(__x86_64__) || defined(__ia64__) 61 | #define SEQAN_IS_64_BIT 0 62 | #define SEQAN_IS_32_BIT 1 63 | #endif // #if defined(__amd64__) || defined(__x86_64__) || defined(__ia64__) 64 | 65 | #include 66 | 67 | // Define unsigned variants of builtin Windows compiler types. 68 | typedef unsigned __int64 __uint64; 69 | typedef unsigned __int32 __uint32; 70 | typedef unsigned __int16 __uint16; 71 | typedef unsigned __int8 __uint8; 72 | 73 | // Define ftello 74 | #ifndef ftello 75 | #define ftello(fp) ftell(fp) 76 | #endif // #ifndef ftello 77 | 78 | // detect C++11 support 79 | #if defined(__GXX_EXPERIMENTAL_CXX0X__) 80 | # define SEQAN_CXX11_STANDARD 81 | #endif 82 | 83 | #endif // #ifndef PLATFORM_WINDOWS 84 | -------------------------------------------------------------------------------- /seqan/platform/platform_pgi.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // Copyright (c) 2013 NVIDIA Corporation 6 | // All rights reserved. 7 | // 8 | // Redistribution and use in source and binary forms, with or without 9 | // modification, are permitted provided that the following conditions are met: 10 | // 11 | // * Redistributions of source code must retain the above copyright 12 | // notice, this list of conditions and the following disclaimer. 13 | // * Redistributions in binary form must reproduce the above copyright 14 | // notice, this list of conditions and the following disclaimer in the 15 | // documentation and/or other materials provided with the distribution. 16 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 17 | // its contributors may be used to endorse or promote products derived 18 | // from this software without specific prior written permission. 19 | // 20 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 24 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 30 | // DAMAGE. 31 | // 32 | // ========================================================================== 33 | 34 | #ifndef PLATFORM_GCC 35 | #define PLATFORM_GCC 36 | 37 | // should be set before including anything 38 | #ifndef _FILE_OFFSET_BITS 39 | #define _FILE_OFFSET_BITS 64 40 | #endif 41 | 42 | #ifndef _LARGEFILE_SOURCE 43 | #define _LARGEFILE_SOURCE 44 | #endif 45 | 46 | // The symbols SEQAN_IS_64_BIT and SEQAN_IS_32_BIT can be used to check 47 | // whether we are on a 32 bit or on a 64 bit machine. 48 | #if defined(__amd64__) || defined(__x86_64__) || defined(__ia64__) 49 | #define SEQAN_IS_64_BIT 1 50 | #define SEQAN_IS_32_BIT 0 51 | #else // #if defined(__amd64__) || defined(__x86_64__) || defined(__ia64__) 52 | #define SEQAN_IS_64_BIT 0 53 | #define SEQAN_IS_32_BIT 1 54 | #endif // #if defined(__amd64__) || defined(__x86_64__) || defined(__ia64__) 55 | 56 | //#include 57 | #include 58 | 59 | #define finline __inline__ 60 | 61 | // default 64bit type 62 | typedef uint64_t __uint64; // nolint 63 | 64 | // default 32bit type 65 | typedef int32_t __int32; // nolint 66 | typedef uint32_t __uint32; // nolint 67 | 68 | // default 16bit type 69 | typedef int16_t __int16; // nolint 70 | typedef uint16_t __uint16; // nolint 71 | 72 | // default 8bit type 73 | typedef int8_t __int8; // nolint 74 | typedef uint8_t __uint8; // nolint 75 | 76 | // detect gcc C++11 support 77 | #if defined(__GXX_EXPERIMENTAL_CXX0X__) 78 | # define SEQAN_CXX11_STANDARD 79 | #endif 80 | 81 | // detect clang C++11 support 82 | #ifdef __has_feature 83 | # if __has_feature(cxx_static_assert) 84 | # define SEQAN_CXX11_STANDARD 85 | # endif 86 | #endif 87 | 88 | #endif // #ifndef PLATFORM_GCC 89 | -------------------------------------------------------------------------------- /seqan/platform/platform_solaris.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // Copyright (c) 2013 NVIDIA Corporation 6 | // All rights reserved. 7 | // 8 | // Redistribution and use in source and binary forms, with or without 9 | // modification, are permitted provided that the following conditions are met: 10 | // 11 | // * Redistributions of source code must retain the above copyright 12 | // notice, this list of conditions and the following disclaimer. 13 | // * Redistributions in binary form must reproduce the above copyright 14 | // notice, this list of conditions and the following disclaimer in the 15 | // documentation and/or other materials provided with the distribution. 16 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 17 | // its contributors may be used to endorse or promote products derived 18 | // from this software without specific prior written permission. 19 | // 20 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 24 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 30 | // DAMAGE. 31 | // 32 | // ========================================================================== 33 | 34 | #ifndef PLATFORM_SUN 35 | #define PLATFORM_SUN 36 | 37 | // should be set before including anything 38 | #define _FILE_OFFSET_BITS 64 39 | //#include 40 | #include 41 | 42 | #define finline inline 43 | 44 | // default 64bit type 45 | typedef int64_t __int64; 46 | typedef uint64_t __uint64; 47 | 48 | #endif // #ifndef PLATFORM_SUN 49 | -------------------------------------------------------------------------------- /seqan/random.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Umbrella header for the random module. 35 | // ========================================================================== 36 | 37 | #ifndef SEQAN_RANDOM_H_ 38 | #define SEQAN_RANDOM_H_ 39 | 40 | //____________________________________________________________________________ 41 | // Prerequisites 42 | 43 | #include 44 | #include 45 | 46 | #include 47 | 48 | //____________________________________________________________________________ 49 | // Module Headers 50 | 51 | // Basic Definitions 52 | #include 53 | 54 | // Random Number Generation 55 | #include 56 | 57 | // Rng With Special Distributions. 58 | #include 59 | #include 60 | #include // uses normal.h, uniform.h 61 | #include 62 | #include 63 | #include 64 | 65 | // Functions with randomness. 66 | #include 67 | 68 | //____________________________________________________________________________ 69 | 70 | #endif // SEQAN_RANDOM_H_ 71 | -------------------------------------------------------------------------------- /seqan/realign.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Facade header for module realign. 35 | // ========================================================================== 36 | 37 | #ifndef INCLUDE_SEQAN_REALIGN_H_ 38 | #define INCLUDE_SEQAN_REALIGN_H_ 39 | 40 | // =========================================================================== 41 | // Prerequisites. 42 | // =========================================================================== 43 | 44 | #include 45 | #include 46 | #include 47 | #include 48 | #include 49 | 50 | // =========================================================================== 51 | // Realignment Code 52 | // =========================================================================== 53 | 54 | #include 55 | #include 56 | 57 | #endif // INCLUDE_SEQAN_REALIGN_H_ 58 | -------------------------------------------------------------------------------- /seqan/reduced_aminoacid.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Hannes Hauswedell 33 | // ========================================================================== 34 | // Module with reduced versions of alphabets 35 | // ========================================================================== 36 | 37 | #ifndef SEQAN_REDUCED_AMINOACID_H_ 38 | #define SEQAN_REDUCED_AMINOACID_H_ 39 | 40 | #include 41 | #include 42 | 43 | #include 44 | 45 | #include 46 | #include 47 | 48 | // #include 49 | // #include 50 | // #include 51 | // #include 52 | 53 | #include 54 | 55 | #endif // def SEQAN_REDUCED_AMINOACID_H_ 56 | -------------------------------------------------------------------------------- /seqan/roi_io.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Facade header for module roi_io. 35 | // ========================================================================== 36 | 37 | #ifndef INCLUDE_SEQAN_ROI_IO_H_ 38 | #define INCLUDE_SEQAN_ROI_IO_H_ 39 | 40 | // =========================================================================== 41 | // Prerequisites. 42 | // =========================================================================== 43 | 44 | #include 45 | #include 46 | #include 47 | 48 | // =========================================================================== 49 | // Module Contents 50 | // =========================================================================== 51 | 52 | #include 53 | 54 | #include 55 | #include 56 | #include 57 | #include 58 | 59 | #endif // INCLUDE_SEQAN_ROI_IO_H_ 60 | -------------------------------------------------------------------------------- /seqan/roi_io/roi_io_context.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Class RoiIOContext, accessor functions. 35 | // ========================================================================== 36 | 37 | #ifndef INCLUDE_SEQAN_ROI_IO_ROI_IO_CONTEXT_H_ 38 | #define INCLUDE_SEQAN_ROI_IO_ROI_IO_CONTEXT_H_ 39 | 40 | #include 41 | 42 | namespace seqan { 43 | 44 | // ============================================================================ 45 | // Forwards 46 | // ============================================================================ 47 | 48 | // ============================================================================ 49 | // Tags, Classes, Enums 50 | // ============================================================================ 51 | 52 | class RoiIOContext 53 | { 54 | public: 55 | // Just two buffers needed for reading. 56 | CharString buffer; 57 | CharString castBuffer; 58 | }; 59 | 60 | // ============================================================================ 61 | // Metafunctions 62 | // ============================================================================ 63 | 64 | // ============================================================================ 65 | // Functions 66 | // ============================================================================ 67 | 68 | } // namespace seqan 69 | 70 | #endif // #ifndef INCLUDE_SEQAN_ROI_IO_ROI_IO_CONTEXT_H_ 71 | 72 | -------------------------------------------------------------------------------- /seqan/score.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Andreas Gogol-Doering 33 | // ========================================================================== 34 | // This is the facade header for the score module. 35 | // ========================================================================== 36 | 37 | #ifndef SEQAN_SH_ 38 | #define SEQAN_SH_ 39 | 40 | #include 41 | 42 | #include 43 | 44 | #include 45 | #include 46 | #include 47 | #include 48 | #include 49 | #include 50 | 51 | #endif // SEQAN_SH_ 52 | -------------------------------------------------------------------------------- /seqan/seeds/seeds_base.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Basic definitions for the module seeds. 33 | // ========================================================================== 34 | 35 | #ifndef SEQAN_SEEDS_SEEDS_BASE_H_ 36 | #define SEQAN_SEEDS_SEEDS_BASE_H_ 37 | 38 | namespace seqan { 39 | 40 | } // namespace seqan 41 | 42 | #endif // SEQAN_SEEDS_SEEDS_BASE_H_ 43 | -------------------------------------------------------------------------------- /seqan/seeds/seeds_global_chaining_base.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Generic parts of the global chaining algorithms and basic definitions. 35 | // ========================================================================== 36 | 37 | #ifndef SEQAN_SEEDS_SEEDS_GLOBAL_CHAINING_BASE_H_ 38 | #define SEQAN_SEEDS_SEEDS_GLOBAL_CHAINING_BASE_H_ 39 | 40 | namespace seqan { 41 | 42 | } // namespace seqan 43 | 44 | #endif // SEQAN_SEEDS_SEEDS_GLOBAL_CHAINING_BASE_H_ 45 | -------------------------------------------------------------------------------- /seqan/seeds/seeds_global_chaining_gusfield.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Global chaining after Gusfield [1]. 35 | // 36 | // [1] Dan Gusfield. Algorithms on Strings, Trees, and Sequences: 37 | // Computer Science and Computational Biology. Cambridge University 38 | // Press, January 1997. 39 | // ==========================================================================*/ 40 | 41 | #ifndef SEQAN_SEEDS_SEEDS_GLOBAL_CHAINING_BASE_H_ 42 | #define SEQAN_SEEDS_SEEDS_GLOBAL_CHAINING_BASE_H_ 43 | 44 | namespace seqan { 45 | 46 | } // namespace seqan 47 | 48 | #endif // SEQAN_SEEDS_SEEDS_GLOBAL_CHAINING_BASE_H_ 49 | -------------------------------------------------------------------------------- /seqan/seeds/seeds_seed_set_non_scored.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Non-Scored SeedSet specialization. 35 | // ========================================================================== 36 | 37 | #ifndef SEQAN_SEEDS_SEEDS_SEED_SET_NON_SCORED_H_ 38 | #define SEQAN_SEEDS_SEEDS_SEED_SET_NON_SCORED_H_ 39 | 40 | namespace seqan { 41 | 42 | // =========================================================================== 43 | // Enums, Tags, Classes, Specializations 44 | // =========================================================================== 45 | 46 | // =========================================================================== 47 | // Metafunctions 48 | // =========================================================================== 49 | 50 | // =========================================================================== 51 | // Functions 52 | // =========================================================================== 53 | 54 | } // namespace seqan 55 | 56 | #endif // SEQAN_SEEDS_SEEDS_SEED_SET_NON_SCORED_H_ 57 | -------------------------------------------------------------------------------- /seqan/seeds/seeds_seed_set_scored.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Scored SeedSet specialization. 35 | // ========================================================================== 36 | 37 | #ifndef SEQAN_SEEDS_SEEDS_SEED_SET_SCORED_H_ 38 | #define SEQAN_SEEDS_SEEDS_SEED_SET_SCORED_H_ 39 | 40 | namespace seqan { 41 | 42 | // =========================================================================== 43 | // Enums, Tags, Classes, Specializations 44 | // =========================================================================== 45 | 46 | // =========================================================================== 47 | // Metafunctions 48 | // =========================================================================== 49 | 50 | // =========================================================================== 51 | // Functions 52 | // =========================================================================== 53 | 54 | } // namespace seqan 55 | 56 | #endif // SEQAN_SEEDS_SEEDS_SEED_SET_SCORED_H_ 57 | -------------------------------------------------------------------------------- /seqan/seq_io.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Facade header for module seq_io. 35 | // ========================================================================== 36 | 37 | #ifndef INCLUDE_SEQAN_SEQ_IO_H_ 38 | #define INCLUDE_SEQAN_SEQ_IO_H_ 39 | 40 | // =========================================================================== 41 | // Prerequisites. 42 | // =========================================================================== 43 | 44 | #include 45 | #include 46 | #include 47 | 48 | // =========================================================================== 49 | // Sequence File Formats 50 | // =========================================================================== 51 | 52 | #include 53 | #include 54 | #include 55 | 56 | // =========================================================================== 57 | // Sequence File 58 | // =========================================================================== 59 | 60 | #include 61 | 62 | // =========================================================================== 63 | // Genomic Region 64 | // =========================================================================== 65 | 66 | #include 67 | 68 | // =========================================================================== 69 | // FAI Index 70 | // =========================================================================== 71 | 72 | #include 73 | 74 | #endif // INCLUDE_SEQAN_SEQ_IO_H_ 75 | -------------------------------------------------------------------------------- /seqan/sequence_journaled.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Umbrella Header for the sequence_journaleded module. 35 | // ========================================================================== 36 | 37 | #ifndef SEQAN_HEADER_SEQUENCE_JOURNALED_H 38 | #define SEQAN_HEADER_SEQUENCE_JOURNALED_H 39 | 40 | // ============================================================================ 41 | // Prerequisites. 42 | // ============================================================================ 43 | 44 | #include 45 | #include 46 | #include 47 | #include 48 | #include 49 | 50 | #include 51 | #include 52 | 53 | // ============================================================================ 54 | // Journaled Sequences. 55 | // ============================================================================ 56 | 57 | #include 58 | #include 59 | #include 60 | #include 61 | #include 62 | 63 | #endif // SEQAN_HEADER_SEQUENCE_JOURNALED_H 64 | -------------------------------------------------------------------------------- /seqan/simple_intervals_io.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Facade header for the intervals_io module. 35 | // ========================================================================== 36 | 37 | #ifndef SEQAN_SIMPLE_INTERVALS_IO_H_ 38 | #define SEQAN_SIMPLE_INTERVALS_IO_H_ 39 | 40 | // =========================================================================== 41 | // Prerequisites 42 | // =========================================================================== 43 | 44 | #include 45 | #include 46 | 47 | // =========================================================================== 48 | // Module Contents 49 | // =========================================================================== 50 | 51 | #include // read/write record functions, tags 52 | #include // FormattedFile 53 | 54 | #endif // SEQAN_SIMPLE_INTERVALS_IO_H_ 55 | -------------------------------------------------------------------------------- /seqan/statistics.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | 33 | #ifndef SEQAN_HEADER_STATISTICS_H 34 | #define SEQAN_HEADER_STATISTICS_H 35 | 36 | //____________________________________________________________________________ 37 | // prerequisites 38 | 39 | #include 40 | #include 41 | #include 42 | //____________________________________________________________________________ 43 | 44 | #include 45 | #include 46 | 47 | //____________________________________________________________________________ 48 | 49 | #endif //#ifndef SEQAN_HEADER_... 50 | -------------------------------------------------------------------------------- /seqan/statistics/.statistics_markov_model.h.swp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DecodeGenetics/BamHash/b64352c02184b72350d92eed6e2872a62b3e70ee/seqan/statistics/.statistics_markov_model.h.swp -------------------------------------------------------------------------------- /seqan/store.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | 33 | #ifndef SEQAN_HEADER_STORE_H 34 | #define SEQAN_HEADER_STORE_H 35 | 36 | #include 37 | #include 38 | #include 39 | #include 40 | #include 41 | #include 42 | #include 43 | #include 44 | #include 45 | #include 46 | 47 | #include 48 | #include 49 | #include 50 | 51 | ////////////////////////////////////////////////////////////////////////////// 52 | // FRAGMENT STORE SUB-CONTAINERS 53 | ////////////////////////////////////////////////////////////////////////////// 54 | 55 | #include 56 | #include 57 | #include 58 | #include 59 | #include 60 | #include 61 | #include 62 | #include 63 | 64 | #include 65 | #include 66 | 67 | // #include 68 | // #include 69 | // #include 70 | // #include 71 | 72 | #endif //#ifndef SEQAN_HEADER_... 73 | -------------------------------------------------------------------------------- /seqan/store/store_base.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: David Weese 33 | // ========================================================================== 34 | 35 | #ifndef SEQAN_HEADER_STORE_BASE_H 36 | #define SEQAN_HEADER_STORE_BASE_H 37 | 38 | namespace SEQAN_NAMESPACE_MAIN 39 | { 40 | 41 | ////////////////////////////////////////////////////////////////////////////// 42 | // Base structs 43 | ////////////////////////////////////////////////////////////////////////////// 44 | 45 | }// namespace SEQAN_NAMESPACE_MAIN 46 | 47 | #endif //#ifndef SEQAN_HEADER_... 48 | -------------------------------------------------------------------------------- /seqan/system.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | 33 | #include 34 | 35 | #ifndef SEQAN_HEADER_SYSTEM_H 36 | #define SEQAN_HEADER_SYSTEM_H 37 | 38 | //____________________________________________________________________________ 39 | // prerequisites 40 | 41 | #include 42 | #include 43 | #include 44 | #include 45 | 46 | #ifdef PLATFORM_WINDOWS 47 | 48 | #include 49 | 50 | #else //#ifdef PLATFORM_WINDOWS 51 | 52 | #include 53 | #include 54 | #include 55 | #include 56 | #include 57 | #include 58 | #include 59 | 60 | #ifndef O_LARGEFILE 61 | #define O_LARGEFILE 0 62 | #endif 63 | 64 | #ifndef O_DIRECT 65 | #define O_DIRECT 0 66 | #endif 67 | 68 | #endif //#ifdef PLATFORM_WINDOWS 69 | 70 | #include 71 | #ifndef PLATFORM_WINDOWS 72 | #include 73 | #endif // #ifndef PLATFORM_WINDOWS 74 | 75 | //____________________________________________________________________________ 76 | // multi-threading 77 | 78 | #include 79 | #include 80 | #include 81 | #include 82 | #include 83 | #include 84 | 85 | //____________________________________________________________________________ 86 | // synchronous and asynchronous files 87 | 88 | #include 89 | #include 90 | #include 91 | 92 | #endif //#ifndef SEQAN_HEADER_... 93 | -------------------------------------------------------------------------------- /seqan/system/system_base.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: David Weese 33 | // ========================================================================== 34 | 35 | #ifndef SEQAN_HEADER_SYSTEM_BASE_H 36 | #define SEQAN_HEADER_SYSTEM_BASE_H 37 | 38 | namespace SEQAN_NAMESPACE_MAIN 39 | { 40 | 41 | #if SEQAN_ENABLE_DEBUG // Note the new-style for macros, is always defined and 0/1 42 | 43 | #define SEQAN_DO_SYS(_cond) SEQAN_ASSERT(_cond) 44 | #define SEQAN_DO_SYS1(_cond) SEQAN_DO_SYS(_cond) 45 | #define SEQAN_DO_SYS2(_cond, _comment) SEQAN_ASSERT_MSG(_cond, _comment) 46 | 47 | #else // #ifdef SEQAN_ENABLE_DEBUG 48 | 49 | #if defined(PLATFORM_GCC) || defined(PLATFORM_WINDOWS_MINGW) 50 | // GCC warns below that the "value computed is not used". However, 51 | // MSVC does not like casting void values to void. Thus, this 52 | // distinction. 53 | #define SEQAN_DO_SYS(_cond) do { (void) _cond; } while (false) 54 | #else // #if defined(PLATFORM_GCC) || defined(PLATFORM_WINDOWS_MINGW) 55 | #define SEQAN_DO_SYS(_cond) do { _cond; } while (false) 56 | #endif // #if defined(PLATFORM_GCC) || defined(PLATFORM_WINDOWS_MINGW) 57 | 58 | #define SEQAN_DO_SYS1(_cond) SEQAN_DO_SYS(_cond) 59 | #define SEQAN_DO_SYS2(_cond, _comment) SEQAN_DO_SYS(_cond) 60 | 61 | #endif // #ifdef SEQAN_ENABLE_DEBUG 62 | 63 | } 64 | 65 | #endif 66 | -------------------------------------------------------------------------------- /seqan/tabix_io.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: David Weese 33 | // ========================================================================== 34 | // Facade header for module tabix_io. 35 | // ========================================================================== 36 | 37 | #ifndef INCLUDE_SEQAN_TABIX_IO_H_ 38 | #define INCLUDE_SEQAN_TABIX_IO_H_ 39 | 40 | // =========================================================================== 41 | // Prerequisites. 42 | // =========================================================================== 43 | 44 | #include 45 | #include 46 | #include 47 | #include 48 | #include 49 | 50 | // =========================================================================== 51 | // Tabix index 52 | // =========================================================================== 53 | 54 | // Tabix indices are only available when ZLIB is available. 55 | #if SEQAN_HAS_ZLIB 56 | #include 57 | #endif // #if SEQAN_HAS_ZLIB 58 | 59 | #endif // INCLUDE_SEQAN_TABIX_IO_H_ 60 | -------------------------------------------------------------------------------- /seqan/translation.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Hannes Hauswedell 33 | // ========================================================================== 34 | // Code for Dna(5) to AminoAcid Translation 35 | // ========================================================================== 36 | 37 | 38 | #ifndef INCLUDE_SEQAN_TRANSLATION_H_ 39 | #define INCLUDE_SEQAN_TRANSLATION_H_ 40 | 41 | #include 42 | #include 43 | #include 44 | 45 | #include 46 | #include 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /seqan/ucsc_io.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Facade header for module ucsc_io. 35 | // ========================================================================== 36 | 37 | #ifndef SEQAN_INCLUDE_SEQAN_UCSC_IO_H_ 38 | #define SEQAN_INCLUDE_SEQAN_UCSC_IO_H_ 39 | 40 | #include 41 | #include 42 | #include 43 | 44 | #endif // SEQAN_INCLUDE_SEQAN_UCSC_IO_H_ 45 | 46 | -------------------------------------------------------------------------------- /seqan/vcf_io.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Facade header for module vcf_io. 35 | // ========================================================================== 36 | 37 | #ifndef SEQAN_INCLUDE_SEQAN_VCF_IO_H_ 38 | #define SEQAN_INCLUDE_SEQAN_VCF_IO_H_ 39 | 40 | // =========================================================================== 41 | // Prerequisites. 42 | // =========================================================================== 43 | 44 | #include 45 | #include 46 | #include 47 | #include 48 | #include 49 | 50 | #include 51 | #include 52 | #include 53 | 54 | // =========================================================================== 55 | // First Header Group. 56 | // =========================================================================== 57 | 58 | #include 59 | 60 | #include 61 | #include 62 | #include 63 | #include 64 | #include 65 | #include 66 | #include 67 | #endif // SEQAN_INCLUDE_SEQAN_VCF_IO_H_ 68 | -------------------------------------------------------------------------------- /seqan/vcf_io/vcf_header.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | 35 | #ifndef SEQAN_INCLUDE_SEQAN_VCF_VCF_HEADER_H_ 36 | #define SEQAN_INCLUDE_SEQAN_VCF_VCF_HEADER_H_ 37 | 38 | namespace seqan { 39 | 40 | // ============================================================================ 41 | // Tags, Classes, Enums 42 | // ============================================================================ 43 | 44 | // ---------------------------------------------------------------------------- 45 | // Class VcfHeader 46 | // ---------------------------------------------------------------------------- 47 | 48 | /*! 49 | * @class VcfHeader 50 | * @implements FormattedFileHeaderConcept 51 | * @headerfile 52 | * @brief Store VCF Header information. 53 | * 54 | * @signature typedef String VcfHeader; 55 | */ 56 | 57 | // Records for the meta information lines. 58 | typedef String VcfHeader; 59 | 60 | } // namespace seqan 61 | 62 | #endif // #ifndef SEQAN_INCLUDE_SEQAN_VCF_VCF_HEADER_H_ 63 | -------------------------------------------------------------------------------- /seqan/version.h: -------------------------------------------------------------------------------- 1 | // ========================================================================== 2 | // SeqAn - The Library for Sequence Analysis 3 | // ========================================================================== 4 | // Copyright (c) 2006-2015, Knut Reinert, FU Berlin 5 | // All rights reserved. 6 | // 7 | // Redistribution and use in source and binary forms, with or without 8 | // modification, are permitted provided that the following conditions are met: 9 | // 10 | // * Redistributions of source code must retain the above copyright 11 | // notice, this list of conditions and the following disclaimer. 12 | // * Redistributions in binary form must reproduce the above copyright 13 | // notice, this list of conditions and the following disclaimer in the 14 | // documentation and/or other materials provided with the distribution. 15 | // * Neither the name of Knut Reinert or the FU Berlin nor the names of 16 | // its contributors may be used to endorse or promote products derived 17 | // from this software without specific prior written permission. 18 | // 19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 20 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 21 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 22 | // ARE DISCLAIMED. IN NO EVENT SHALL KNUT REINERT OR THE FU BERLIN BE LIABLE 23 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 26 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 | // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 29 | // DAMAGE. 30 | // 31 | // ========================================================================== 32 | // Author: Manuel Holtgrewe 33 | // ========================================================================== 34 | // Define SeqAn version. 35 | // ========================================================================== 36 | 37 | #ifndef SEQAN_VERSION_H_ 38 | #define SEQAN_VERSION_H_ 39 | 40 | #define SEQAN_VERSION_MAJOR 2 41 | 42 | #define SEQAN_VERSION_MINOR 1 43 | 44 | #define SEQAN_VERSION_PATCH 0 45 | 46 | #define SEQAN_VERSION_PRE_RELEASE 0 47 | 48 | #endif // SEQAN_VERSION_H_ 49 | --------------------------------------------------------------------------------