funded by 
Analysis of Marker Chromosomes
(Linear) Marker Chromosomes are described with the symbol "mar".
Their number is given as an absolute number or as a range before this symbol.
If several different markers are clonally present, this is indicated by
an arabic number after the symbol, and if multiple copies of such a marker
are present, their copy number follows after the symbol and a multiplication
sign. If no copy number is given, it is assumed to be 1.
Examples:
-
+mar: one additional marker is present
-
+1~3mar: one to three markers are present
-
+mar1,+mar2x3: markers 1 and 2 are present clonally, with one
copy of mar1 and 3 copies of mar2
Hence, the description string passed to the constructor of the Marker
class is compared to the pattern "^((?<min>[\+\-]?\d*)([\-\~](?<max>\d+))?)?x?marc?(?<num>\d+)?(x(?<min>\d+)([\-\~](?<max>\d+))?)?$"
after removal of unnecessary spaces.
The above pattern will also accept several styles which are not allowed
according to the ISCN manual:
-
no plus sign ("+") is required at the beginning of the description
-
no multiplication sign ("x") is required when the copy number
is given before the "mar" symbol
-
the copy number may be given before or after the "mar" symbol
regardless of the clonal presence of different markers.
The "min" and "max" groups will catch the minimum and
maximum copy number, resp., while the "num" group catches the
number of a distinguishable marker chromosome.
Despite these differences to the ISCN standards, the "toString"
method will return a description according to standard. Thus, within the
above mentioned limits, the Marker class can be "abused" to correct not-well
spelled descriptions of marker chromosomes.