# fn() matchRefinement
Refines (i.e. cuts into smaller parts) a set of pairwise segment matches in such a way that none of the segments partly overlap. They are either identical (fully overlapping) or non-overlapping.

Defined in | <seqan/graph_align.h>
Signature | `void matchRefinement(matches, stringSet[, scoringScheme], refinedGraph);`

## Parameters

`matches` | The set of matches. Types: Fragment, Align, Alignment Graph
`refinedGraph` | The resulting refined set of matches stored in a graph. Types: Alignment Graph
`stringSet` | The StringSet containing the sequences which the matches lie on. Types: StringSet
`scoringScheme` | The scoring scheme used to score the refined matches (scores are attached to edges in the refined AlignmentGraph). If no scoring scheme is given, all edges get weight 1. Types: Score

## Data Races

Thread safety unknown!

#### Dox Sources

    /*!
     * @fn matchRefinement
     *
     * @headerfile <seqan/graph_align.h>
     *
     * @brief Refines (i.e. cuts into smaller parts) a set of pairwise segment
     *        matches in such a way that none of the segments partly overlap. They
     *        are either identical (fully overlapping) or non-overlapping.
     *
     * @signature void matchRefinement(matches, stringSet[, scoringScheme],
     *            refinedGraph);
     *
     * @param[out] matches The set of matches. Types: Fragment, Align, Alignment
     *                     Graph
     * @param[out] refinedGraph The resulting refined set of matches stored in a
     *                          graph. Types: Alignment Graph
     * @param[out] stringSet The StringSet containing the sequences which the
     *                       matches lie on. Types: StringSet
     * @param[in] scoringScheme The scoring scheme used to score the refined matches
     *                          (scores are attached to edges in the refined
     *                          AlignmentGraph). If no scoring scheme is given, all
     *                          edges get weight 1. Types: Score
     */