diff --git a/c/tskit/core.h b/c/tskit/core.h index 289e57e386..5fb0b9f46a 100644 --- a/c/tskit/core.h +++ b/c/tskit/core.h @@ -204,7 +204,7 @@ whose representation differs from the NAN generated by computations such as divi @{ */ -/* Place the commmon options at the top of the space; this way we can start +/* Place the common options at the top of the space; this way we can start options for individual functions at the bottom without worrying about clashing with the common options */ @@ -249,7 +249,7 @@ Memory could not be allocated. */ #define TSK_ERR_NO_MEMORY -2 /** -An IO error occured. +An IO error occurred. */ #define TSK_ERR_IO -3 #define TSK_ERR_BAD_PARAM_VALUE -4 @@ -704,7 +704,7 @@ Trees with different numbers of samples were specified. */ #define TSK_ERR_SAMPLE_SIZE_MISMATCH -1200 /** -Trees with unidentical samples were specified. +Trees with nonidentical samples were specified. */ #define TSK_ERR_SAMPLES_NOT_EQUAL -1201 /** diff --git a/c/tskit/genotypes.h b/c/tskit/genotypes.h index d769742577..8c3b769e5a 100644 --- a/c/tskit/genotypes.h +++ b/c/tskit/genotypes.h @@ -35,7 +35,7 @@ extern "C" { #define TSK_ISOLATED_NOT_MISSING (1 << 1) /** -@brief A variant at a specfic site. +@brief A variant at a specific site. @rst Used to generate the genotypes for a given set of samples at a given diff --git a/c/tskit/tables.h b/c/tskit/tables.h index c46af7f367..54f6ca7967 100644 --- a/c/tskit/tables.h +++ b/c/tskit/tables.h @@ -741,12 +741,12 @@ specific flags. */ /** Check edge ordering constraints for a tree sequence. */ #define TSK_CHECK_EDGE_ORDERING (1 << 0) -/** Check that sites are in nondecreasing position order. */ +/** Check that sites are in non-decreasing position order. */ #define TSK_CHECK_SITE_ORDERING (1 << 1) /**Check for any duplicate site positions. */ #define TSK_CHECK_SITE_DUPLICATES (1 << 2) /** -Check contraints on the ordering of mutations. Any non-null +Check constraints on the ordering of mutations. Any non-null mutation parents and known times are checked for ordering constraints. */ @@ -1104,7 +1104,7 @@ Copies the metadata schema string to this table, replacing any existing. @endrst @param self A pointer to a tsk_individual_table_t object. -@param metadata_schema A pointer to a char array +@param metadata_schema A pointer to a char array. @param metadata_schema_length The size of the metadata schema in bytes. @return Return 0 on success or a negative value on failure. */ @@ -1148,11 +1148,6 @@ int tsk_individual_table_set_columns(tsk_individual_table_t *self, tsk_size_t nu const tsk_id_t *parents, const tsk_size_t *parents_offset, const char *metadata, const tsk_size_t *metadata_offset); -int tsk_individual_table_takeset_columns(tsk_individual_table_t *self, - tsk_size_t num_rows, tsk_flags_t *flags, double *location, - tsk_size_t *location_offset, tsk_id_t *parents, tsk_size_t *parents_offset, - char *metadata, tsk_size_t *metadata_offset); - /** @brief Extends this table by copying from a set of column arrays @@ -1453,7 +1448,7 @@ int tsk_node_table_get_row( Copies the metadata schema string to this table, replacing any existing. @endrst @param self A pointer to a tsk_node_table_t object. -@param metadata_schema A pointer to a char array +@param metadata_schema A pointer to a char array. @param metadata_schema_length The size of the metadata schema in bytes. @return Return 0 on success or a negative value on failure. */ @@ -1495,10 +1490,6 @@ int tsk_node_table_set_columns(tsk_node_table_t *self, tsk_size_t num_rows, const tsk_flags_t *flags, const double *time, const tsk_id_t *population, const tsk_id_t *individual, const char *metadata, const tsk_size_t *metadata_offset); -int tsk_node_table_takeset_columns(tsk_node_table_t *self, tsk_size_t num_rows, - tsk_flags_t *flags, double *time, tsk_id_t *population, tsk_id_t *individual, - char *metadata, tsk_size_t *metadata_offset); - /** @brief Extends this table by copying from a set of column arrays @@ -1831,10 +1822,6 @@ int tsk_edge_table_append_columns(tsk_edge_table_t *self, tsk_size_t num_rows, const double *left, const double *right, const tsk_id_t *parent, const tsk_id_t *child, const char *metadata, const tsk_size_t *metadata_offset); -int tsk_edge_table_takeset_columns(tsk_edge_table_t *self, tsk_size_t num_rows, - double *left, double *right, tsk_id_t *parent, tsk_id_t *child, char *metadata, - tsk_size_t *metadata_offset); - /** @brief Controls the pre-allocation strategy for this table @@ -2105,7 +2092,7 @@ int tsk_migration_table_get_row( Copies the metadata schema string to this table, replacing any existing. @endrst @param self A pointer to a tsk_migration_table_t object. -@param metadata_schema A pointer to a char array +@param metadata_schema A pointer to a char array. @param metadata_schema_length The size of the metadata schema in bytes. @return Return 0 on success or a negative value on failure. */ @@ -2176,10 +2163,6 @@ int tsk_migration_table_append_columns(tsk_migration_table_t *self, tsk_size_t n const tsk_id_t *source, const tsk_id_t *dest, const double *time, const char *metadata, const tsk_size_t *metadata_offset); -int tsk_migration_table_takeset_columns(tsk_migration_table_t *self, tsk_size_t num_rows, - double *left, double *right, tsk_id_t *node, tsk_id_t *source, tsk_id_t *dest, - double *time, char *metadata, tsk_size_t *metadata_offset); - /** @brief Controls the pre-allocation strategy for this table @@ -2423,7 +2406,7 @@ int tsk_site_table_get_row( Copies the metadata schema string to this table, replacing any existing. @endrst @param self A pointer to a tsk_site_table_t object. -@param metadata_schema A pointer to a char array +@param metadata_schema A pointer to a char array. @param metadata_schema_length The size of the metadata schema in bytes. @return Return 0 on success or a negative value on failure. */ @@ -2490,10 +2473,6 @@ int tsk_site_table_append_columns(tsk_site_table_t *self, tsk_size_t num_rows, const tsk_size_t *ancestral_state_offset, const char *metadata, const tsk_size_t *metadata_offset); -int tsk_site_table_takeset_columns(tsk_site_table_t *self, tsk_size_t num_rows, - double *position, char *ancestral_state, tsk_size_t *ancestral_state_offset, - char *metadata, tsk_size_t *metadata_offset); - /** @brief Controls the pre-allocation strategy for this table @@ -2763,7 +2742,7 @@ int tsk_mutation_table_get_row( Copies the metadata schema string to this table, replacing any existing. @endrst @param self A pointer to a tsk_mutation_table_t object. -@param metadata_schema A pointer to a char array +@param metadata_schema A pointer to a char array. @param metadata_schema_length The size of the metadata schema in bytes. @return Return 0 on success or a negative value on failure. */ @@ -2838,10 +2817,6 @@ int tsk_mutation_table_append_columns(tsk_mutation_table_t *self, tsk_size_t num const tsk_size_t *derived_state_offset, const char *metadata, const tsk_size_t *metadata_offset); -int tsk_mutation_table_takeset_columns(tsk_mutation_table_t *self, tsk_size_t num_rows, - tsk_id_t *site, tsk_id_t *node, tsk_id_t *parent, double *time, char *derived_state, - tsk_size_t *derived_state_offset, char *metadata, tsk_size_t *metadata_offset); - /** @brief Controls the pre-allocation strategy for this table @@ -3091,7 +3066,7 @@ int tsk_population_table_get_row( Copies the metadata schema string to this table, replacing any existing. @endrst @param self A pointer to a tsk_population_table_t object. -@param metadata_schema A pointer to a char array +@param metadata_schema A pointer to a char array. @param metadata_schema_length The size of the metadata schema in bytes. @return Return 0 on success or a negative value on failure. */ @@ -3146,9 +3121,6 @@ metadata schema is not affected. int tsk_population_table_append_columns(tsk_population_table_t *self, tsk_size_t num_rows, const char *metadata, const tsk_size_t *metadata_offset); -int tsk_population_table_takeset_columns(tsk_population_table_t *self, - tsk_size_t num_rows, char *metadata, tsk_size_t *metadata_offset); - /** @brief Controls the pre-allocation strategy for this table @@ -3432,10 +3404,6 @@ int tsk_provenance_table_append_columns(tsk_provenance_table_t *self, tsk_size_t num_rows, const char *timestamp, const tsk_size_t *timestamp_offset, const char *record, const tsk_size_t *record_offset); -int tsk_provenance_table_takeset_columns(tsk_provenance_table_t *self, - tsk_size_t num_rows, char *timestamp, tsk_size_t *timestamp_offset, char *record, - tsk_size_t *record_offset); - /** @brief Controls the pre-allocation strategy for this table @@ -3512,15 +3480,13 @@ are initialised and freed. **Options** -Options can be specified by providing one or more of the following bitwise -flags: +Options can be specified by providing bitwise flags: - :c:macro:`TSK_TC_NO_EDGE_METADATA` @endrst @param self A pointer to an uninitialised tsk_table_collection_t object. -@param options Allocation time options. Currently unused; should be - set to zero to ensure compatibility with later versions of tskit. +@param options Allocation time options as above. @return Return 0 on success or a negative value on failure. */ int tsk_table_collection_init(tsk_table_collection_t *self, tsk_flags_t options); @@ -3539,7 +3505,7 @@ this table collection. @rst By default this operation clears all tables except the provenance table, retaining -table metadata schemas and the tree-sequnce level metadata and schema. +table metadata schemas and the tree-sequence level metadata and schema. No memory is freed as a result of this operation; please use :c:func:`tsk_table_collection_free` to free internal resources. @@ -3555,7 +3521,7 @@ Options can be specified by providing one or more of the following bitwise @endrst @param self A pointer to a tsk_table_collection_t object. -@param options Bitwise clearing options +@param options Bitwise clearing options. @return Return 0 on success or a negative value on failure. */ int tsk_table_collection_clear(tsk_table_collection_t *self, tsk_flags_t options); @@ -3605,6 +3571,8 @@ be supplied to avoid leaking memory. **Options** +Options can be specified by providing bitwise flags: + :c:macro:`TSK_COPY_FILE_UUID` @endrst @@ -3833,10 +3801,10 @@ int tsk_table_collection_truncate( @rst Some of the tables in a table collection must satisfy specific sortedness requirements in order to define a :ref:`valid tree sequence `. -This method sorts the ``edge``, ``site`` and ``mutation`` tables such that -these requirements are guaranteed to be fulfilled. The ``individual``, -``node``, ``population`` and ``provenance`` tables do not have any sortedness -requirements, and are therefore ignored by this method. +This method sorts the ``edge``, ``site``, ``mutation`` and ``individual`` tables such +that these requirements are guaranteed to be fulfilled. The ``node``, ``population`` +and ``provenance`` tables do not have any sortedness requirements, and are therefore +ignored by this method. .. note:: The current implementation **may** sort in such a way that exceeds these requirements, but this behaviour should not be relied upon and later @@ -3849,16 +3817,16 @@ requirements, and are therefore ignored by this method. The specified :c:type:`tsk_bookmark_t` allows us to specify a start position for sorting in each of the tables; rows before this value are assumed to already be in sorted order and this information is used to make sorting more efficient. -Positions in tables that are not sorted (``individual``, ``node``, ``population`` +Positions in tables that are not sorted (``node``, ``population`` and ``provenance``) are ignored and can be set to arbitrary values. .. warning:: The current implementation only supports specifying a start position for the ``edge`` table and in a limited form for the - ``site`` and ``mutation`` tables. Specifying a non-zero ``migration``, - start position results in an error. The start positions for the - ``site`` and ``mutation`` tables can either be 0 or the length of the - respective tables, allowing these tables to either be fully sorted, or - not sorted at all. + ``site``, ``mutation`` and ``individual`` tables. Specifying a non-zero + ``migration``, start position results in an error. The start positions for the + ``site``, ``mutation`` and ``individual`` tables can either be 0 or the length of the + respective tables, allowing these tables to either be fully sorted, or not sorted at + all. The table collection will always be unindexed after sort successfully completes. @@ -4081,7 +4049,7 @@ int tsk_table_collection_union(tsk_table_collection_t *self, Copies the time_units string to this table collection, replacing any existing. @endrst @param self A pointer to a tsk_table_collection_t object. -@param time_units A pointer to a char array +@param time_units A pointer to a char array. @param time_units_length The size of the time units string in bytes. @return Return 0 on success or a negative value on failure. */ @@ -4094,23 +4062,20 @@ int tsk_table_collection_set_time_units( Copies the metadata string to this table collection, replacing any existing. @endrst @param self A pointer to a tsk_table_collection_t object. -@param metadata A pointer to a char array +@param metadata A pointer to a char array. @param metadata_length The size of the metadata in bytes. @return Return 0 on success or a negative value on failure. */ int tsk_table_collection_set_metadata( tsk_table_collection_t *self, const char *metadata, tsk_size_t metadata_length); -int tsk_table_collection_takeset_metadata( - tsk_table_collection_t *self, char *metadata, tsk_size_t metadata_length); - /** @brief Set the metadata schema @rst Copies the metadata schema string to this table collection, replacing any existing. @endrst @param self A pointer to a tsk_table_collection_t object. -@param metadata_schema A pointer to a char array +@param metadata_schema A pointer to a char array. @param metadata_schema_length The size of the metadata schema in bytes. @return Return 0 on success or a negative value on failure. */ @@ -4139,8 +4104,6 @@ life-cycle. bool tsk_table_collection_has_index( const tsk_table_collection_t *self, tsk_flags_t options); -bool tsk_table_collection_has_reference_sequence(const tsk_table_collection_t *self); - /** @brief Deletes the indexes for this table collection. @@ -4175,12 +4138,6 @@ collection. Any existing index is first dropped using */ int tsk_table_collection_build_index(tsk_table_collection_t *self, tsk_flags_t options); -int tsk_table_collection_set_indexes(tsk_table_collection_t *self, - tsk_id_t *edge_insertion_order, tsk_id_t *edge_removal_order); - -int tsk_table_collection_takeset_indexes(tsk_table_collection_t *self, - tsk_id_t *edge_insertion_order, tsk_id_t *edge_removal_order); - /** @brief Runs integrity checks on this table collection. @@ -4262,6 +4219,39 @@ int tsk_table_collection_compute_mutation_parents( int tsk_table_collection_compute_mutation_times( tsk_table_collection_t *self, double *random, tsk_flags_t TSK_UNUSED(options)); +int tsk_table_collection_set_indexes(tsk_table_collection_t *self, + tsk_id_t *edge_insertion_order, tsk_id_t *edge_removal_order); + +int tsk_table_collection_takeset_metadata( + tsk_table_collection_t *self, char *metadata, tsk_size_t metadata_length); +int tsk_table_collection_takeset_indexes(tsk_table_collection_t *self, + tsk_id_t *edge_insertion_order, tsk_id_t *edge_removal_order); +int tsk_individual_table_takeset_columns(tsk_individual_table_t *self, + tsk_size_t num_rows, tsk_flags_t *flags, double *location, + tsk_size_t *location_offset, tsk_id_t *parents, tsk_size_t *parents_offset, + char *metadata, tsk_size_t *metadata_offset); +int tsk_node_table_takeset_columns(tsk_node_table_t *self, tsk_size_t num_rows, + tsk_flags_t *flags, double *time, tsk_id_t *population, tsk_id_t *individual, + char *metadata, tsk_size_t *metadata_offset); +int tsk_edge_table_takeset_columns(tsk_edge_table_t *self, tsk_size_t num_rows, + double *left, double *right, tsk_id_t *parent, tsk_id_t *child, char *metadata, + tsk_size_t *metadata_offset); +int tsk_migration_table_takeset_columns(tsk_migration_table_t *self, tsk_size_t num_rows, + double *left, double *right, tsk_id_t *node, tsk_id_t *source, tsk_id_t *dest, + double *time, char *metadata, tsk_size_t *metadata_offset); +int tsk_site_table_takeset_columns(tsk_site_table_t *self, tsk_size_t num_rows, + double *position, char *ancestral_state, tsk_size_t *ancestral_state_offset, + char *metadata, tsk_size_t *metadata_offset); +int tsk_mutation_table_takeset_columns(tsk_mutation_table_t *self, tsk_size_t num_rows, + tsk_id_t *site, tsk_id_t *node, tsk_id_t *parent, double *time, char *derived_state, + tsk_size_t *derived_state_offset, char *metadata, tsk_size_t *metadata_offset); +int tsk_population_table_takeset_columns(tsk_population_table_t *self, + tsk_size_t num_rows, char *metadata, tsk_size_t *metadata_offset); +int tsk_provenance_table_takeset_columns(tsk_provenance_table_t *self, + tsk_size_t num_rows, char *timestamp, tsk_size_t *timestamp_offset, char *record, + tsk_size_t *record_offset); + +bool tsk_table_collection_has_reference_sequence(const tsk_table_collection_t *self); int tsk_reference_sequence_init(tsk_reference_sequence_t *self, tsk_flags_t options); int tsk_reference_sequence_free(tsk_reference_sequence_t *self); bool tsk_reference_sequence_is_null(const tsk_reference_sequence_t *self); diff --git a/c/tskit/trees.h b/c/tskit/trees.h index b53e46c3a8..36d328541a 100644 --- a/c/tskit/trees.h +++ b/c/tskit/trees.h @@ -164,7 +164,7 @@ typedef struct { tsk_id_t *right_child; /** @brief The sibling to the left of node u is left_sib[u]. Equal to - TSK_NULL if node u has no siblings to its left. + ``TSK_NULL`` if node u has no siblings to its left. */ tsk_id_t *left_sib; /** @@ -298,7 +298,7 @@ are initialised and freed. @endrst @param self A pointer to an uninitialised tsk_table_collection_t object. -@param tables A pointer to a tsk_table_collection_t +@param tables A pointer to a tsk_table_collection_t object. @param options Allocation time options. See above for details. @return Return 0 on success or a negative value on failure. */ @@ -1033,7 +1033,7 @@ int tsk_tree_free(tsk_tree_t *self); By default (``options`` = 0) the method initialises the specified destination tree by calling :c:func:`tsk_tree_init`. If the destination is already initialised, the :c:macro:`TSK_NO_INIT` option should be supplied to avoid -leaking memory. If `TSK_NO_INIT` is supplied and the tree sequence associated +leaking memory. If :c:macro:`TSK_NO_INIT` is supplied and the tree sequence associated with the ``dest`` tree is not equal to the tree sequence associated with ``self``, an error is raised. @@ -1470,7 +1470,7 @@ node is :c:macro:`TSK_NULL`. @param self A pointer to a tsk_tree_t object. @param u A tree node. @param v A tree node. -@param mrca A tsk_id_t pointer to store the returned most recent cmomon ancestor node. +@param mrca A tsk_id_t pointer to store the returned most recent common ancestor node. @return 0 on success or a negative value on failure. */ int tsk_tree_get_mrca(const tsk_tree_t *self, tsk_id_t u, tsk_id_t v, tsk_id_t *mrca); diff --git a/docs/c-api.rst b/docs/c-api.rst index d0b10be0b1..33246cf6cd 100644 --- a/docs/c-api.rst +++ b/docs/c-api.rst @@ -24,7 +24,7 @@ The ``tskit`` C API is generally useful in the following situations: - You want to use the ``tskit`` API in a larger C/C++ application (e.g., in order to output data in the ``.trees`` format); -- You need to perform lots of tree traversals/loops etc to analyse some +- You need to perform lots of tree traversals/loops etc. to analyse some data that is in tree sequence form. For high level operations that are not performance sensitive, the :ref:`sec_python_api` @@ -32,6 +32,18 @@ is generally more useful. Python is *much* more convenient that C, and since the ``tskit`` Python module is essentially a wrapper for this C library, there's often no real performance penalty for using it. +------------------------------- +Differences with the Python API +------------------------------- + +Much of the explanatory material (for example tutorials) about the Python API applies to +the C-equivalent methods as the Python API wraps this API. + +The main area of difference is, unlike the Python API, the C API doesn't do any +decoding, encoding or schema validation of :ref:`sec_metadata` fields, +instead only handling the byte sting representation of the metadata. Metadata is therefore +never used directly by any tskit C API method, just stored. + ---------------------- API stability contract ---------------------- @@ -56,14 +68,13 @@ arbitrarily between releases. therefore imporant to you, please let us know and we can plan accordingly. - .. _sec_c_api_overview_structure: ------------- API structure ------------- -Tskit uses a set of conventions to provide a pseudo object oriented API. Each +Tskit uses a set of conventions to provide a pseudo object-oriented API. Each 'object' is represented by a C struct and has a set of 'methods'. This is most easily explained by an example: @@ -80,20 +91,20 @@ keep code written in plain C logically structured; there are no extra C++ style We use object oriented terminology freely throughout this documentation with this understanding. -In this convention, a class is defined by a struct ``class_name_t`` (e.g. -``edge_table_t``) and its methods all have the form ``class_name_method_name`` +In this convention, a class is defined by a struct ``tsk_class_name_t`` (e.g. +``tsk_edge_table_t``) and its methods all have the form ``tsk_class_name_method_name`` whose first argument is always a pointer to an instance of the class (e.g., -``edge_table_add_row`` above). -Each class has an initialise and free method, called ``class_name_init`` -and ``class_name_free``, respectively. The init method must +``tsk_edge_table_add_row`` above). +Each class has an initialise and free method, called ``tsk_class_name_init`` +and ``tsk_class_name_free``, respectively. The init method must be called to ensure that the object is correctly initialised (except for functions such as for :c:func:`tsk_table_collection_load` and :c:func:`tsk_table_collection_copy` which automatically initialise the object by default for convenience). The free method must always be called to avoid leaking memory, even in the -case of an error occuring during initialisation. If ``class_name_init`` has -been called succesfully, we say the object has been "initialised"; if not, -it is "uninitialised". After ``class_name_free`` has been called, +case of an error occurring during initialisation. If ``tsk_class_name_init`` has +been called successfully, we say the object has been "initialised"; if not, +it is "uninitialised". After ``tsk_class_name_free`` has been called, the object is again uninitialised. It is important to note that the init methods only allocate *internal* memory; @@ -184,18 +195,15 @@ different project structures and build systems. Tskit uses the `meson `_ build system internally, and supports being used a `meson subproject `_. We show an `example `_ -in which this is combined with -`git submodules `_ to neatly -abstract many details of cross platform C development. - -Some users may choose to check the source for ``tskit`` (and ``kastore``) -directly into their source control repositories. If you wish to do this, -the code is in the ``c`` subdirectory of the -`tskit `_ and -`kastore `__ repos. +in which this is combined with the tskit distribution tarball to neatly +abstract many details of cross-platform C development. + +Some users may choose to check the source for ``tskit`` directly into their source +control repositories. If you wish to do this, the code is in the ``c`` subdirectory of the +`tskit `_ repo. The following header files should be placed in the search path: -``kastore.h``, ``tskit.h``, and ``tskit/*.h``. -The C files ``kastore.c`` and ``tskit*.c`` should be compiled. +``subprojects/kastore/kastore.h``, ``tskit.h``, and ``tskit/*.h``. +The C files ``subprojects/kastore/kastore.c`` and ``tskit/*.c`` should be compiled. For those who wish to minimise the size of their compiled binaries, ``tskit`` is quite modular, and C files can be omitted if not needed. For example, if you are just using the :ref:`sec_c_api_tables_api` then @@ -206,16 +214,16 @@ However you include ``tskit`` in your project, however, please ensure that it is a **released version**. Released versions are tagged on GitHub using the convention ``C_{VERSION}``. The code can either be downloaded from GitHub on the `releases page -`_ or checked out -using git. For example, to check out the ``C_0.99.1`` release:: +`_ where each release has a distribution +tarball for example +https://github.com/tskit-dev/tskit/releases/download/C_1.0.0/tskit-1.0.0.tar.xz +Alternatively the code can be checked out +using git. For example, to check out the ``C_1.0.0`` release:: $ git clone https://github.com/tskit-dev/tskit.git $ cd tskit - $ git checkout C_0.99.1 + $ git checkout C_1.0.0 -Git submodules may also be considered---see the -`example `_ -for how to set these up and to check out at a specific release. *********** @@ -536,7 +544,7 @@ Thus, the loop on lines 11-14 can exit in two ways: :c:func:`tsk_tree_next` :c:func:`tsk_tree_prev`, and :c:func:`tsk_tree_seek` - can be called in any order and from any non-error state + can be called in any order and from any non-error state. .. doxygengroup:: TREE_API_SEEKING_GROUP :content-only: @@ -759,20 +767,6 @@ Table errors .. doxygengroup:: TABLE_ERROR_GROUP :content-only: ------------- -Stats errors ------------- - -.. doxygengroup:: STATS_ERROR_GROUP - :content-only: - ------------------------ -Mutation mapping errors ------------------------ - -.. doxygengroup:: MAPPING_ERROR_GROUP - :content-only: - ------------------------ Genotype decoding errors ------------------------ @@ -780,20 +774,6 @@ Genotype decoding errors .. doxygengroup:: GENOTYPE_ERROR_GROUP :content-only: ----------------------- -Distance metric errors ----------------------- - -.. doxygengroup:: DISTANCE_ERROR_GROUP - :content-only: - -------------------------- -Haplotype matching errors -------------------------- - -.. doxygengroup:: HAPLOTYPE_ERROR_GROUP - :content-only: - ------------ Union errors ------------ @@ -801,14 +781,6 @@ Union errors .. doxygengroup:: UNION_ERROR_GROUP :content-only: ----------- -IBD errors ----------- - -.. doxygengroup:: IBD_ERROR_GROUP - :content-only: - - --------------- Simplify errors ---------------