Class Karyotype

The class Karyotype describes a single (monoclonal) Karyotype. It provides methods for accessing the constituents of the karyotye and calculates meta-information like structural aberrations, break points and gains and losses of chromosomal material.

This class is meant to be the main class of the ISCNAnalyser dll. Other classes were designed for use by this class mainly.

Overview

Karyotype
New()
New(ISCNFormula: String)
getAberrationCount(Optional IgnoreConstitutionalAberrations: Boolean = False): Integer
getAberrations(Optional IgnoreConstitutive: Boolean = False): Aberrations
getAberrationString(Index: Integer): String
getChromosomeCount: ChromosomeCount
getChromosomeCountField: String
getCKAS: CKAS
getCloneSize: Integer
isCompositeKaryotype: Boolean
hasDMin() As Boolean
getDoubleMinutes: DoubleMinute
getErrorDescription: String
hasExpandError() As Boolean
isIncompleteKaryotype: Boolean
hasMarker() As Boolean
getMarkers: Markers
getPloidyLevel: Integer
hasRing() As Boolean
getRings: Rings
getSexChromosomes: SexChromosomes
getSexChromosomesField: String
isValidKaryotype: Boolean
isValidKaryotypeForComposing: Boolean
clone(): Object {Implements ICloneable.Clone}
combine(SecondKaryotype: Karyotype)
getAlteredChromosomes(Optional IgnoreMultiplicator: Boolean = False): Chromosomes
getBreakPoints(): Bands
getFusions(): Fusions
getGainsLossesStructs(Resolution: ChromosomeData.eResolutionLevel): GainsLossesStructs
getQualitativeAberrations(): QualitativeAberrations
getQualitativeAberrationsExpandedToResolution(Resolution: eResolutionLevel, Optional IgnoreUncertainties: Boolean = True): QualitativeAberrations
getQuantitativeAberrations(): QuantitativeAberrations
getQuantitativeAberrationsExpandedToResolution(Resolution: eResolutionLevel, Optional IgnoreUncertainties: Boolean = True): QuantitativeAberrations
getUnexpandedAberration(): Aberration
setKaryotype(ISCNFormula: String)
toString(): String
toString(format: String): String

Programming Language

  • Microsoft Visual Basic .Net.

Availability

Constructors

Public Sub New()

Instantiates a new Karyotype object.

Remarks

  • This empty constructor is made available for use with old-style VBA programming (e.g. with MS Access) where no parameters can be passed to a constructor. Here, the call of the constructor is to be followed by a call to setKaryotype.
  • Whenever possible, the use of this constructor is strongly discouraged.

Examples

  • When initialising a Karyotype object with VBA (e.g. MS Access), use:

  • Dim myKaryotype As New Karyotype
    myKaryotype.setKaryotype ("47,XY,t(9;22)(q34;q11),+der(22)t(9;22)")

Public Sub New(ByRef ISCNFormula As String)

Initialises a new Karyotype object.

Parameters

  • ISCNFormula: a textual description of the karyotype following the ISCN 1995 specification.

Exceptions

Remarks

  • This constructor is intended as the "normal" constructor for the Karyotype class.
  • The ISCNFomula is (almost) not case-sensitive (exception: when break points have to be completed from other aberrations / clones, the mulitplicator must be lower case, and X chromosome must be upper case).

Examples

  • To initialise a Karyotype object with a karyotype containing the Philadelphia translocation and an additional aberrant chromosome 22, do:

  • Dim myKaryotype As Karyotype
    myKaryotype = New Karyotype("47,XY,t(9;22)(q34;q11),+der(22)t(9;22)")

Interfaces

ICloneable

is implemented with the clone function.

Enumerations

The class does not provide enumerations.

Properties

Since all properties are read-only, they were actually implemented as functions:
Properties of a non-Boolean type are accessed with their respective getPropertyName functions, Boolean properties with their respective isPropertyName or hasPropertyName functions.

getAberrationCount(Optional ByVal IgnoreConstitutionalAberrations As Boolean = False) As Integer

Gets the number of Aberration elements in the karyotype.

Property Value

  • the number of Aberration elements in the karyotype.

Parameters

  • IgnoreConstitutionalAberrations: indicates if constitutional alterations are to be ignored (by default false).

Exceptions

Remarks

  • Only defined gains, losses and structural aberrations are treated as Aberration elements, markers, double minutes and undefined ring chromosomes are dealt with separately.

Examples

  • To get the number of aberrations in a karyotype, do:

  • Dim myKaryotype as Karyotype = New Karyotyope("46,XY,t(9;22)(q34;q11)")
    myKaryotype.getAberrationCount returns "1".

getAberrations(Optional ByVal IgnoreConstitutive As Boolean = False) As Aberrations

Gets the collection of Aberration elements in the karyotype.

Property Value

  • the collelction of Aberration elements in the karyotype.

Parameters

  • IgnoreConstitutionalAberrations: indicates if constitutional alterations are to be ignored (by default false).

Exceptions

Remarks

  • Only defined gains, losses and structural aberrations are treated as Aberration elements, markers, double minutes and undefined ring chromosomes are dealt with separately.

getAberrationString(ByRef Index As Integer) As String

Returns a description of the aberration element at the specified index. This description contains the aberration, its gains and losses, structural aberrations, break points, fusions and, if it is of "der" type, the detailed notation of the derivative chromosome.

Property Value

  • a description of the aberration element at the specified index.

Parameters

  • Index: The zero-based index of the element to get.

Exceptions

Remarks

  • This property is for debugging purposes.

getChromosomeCountField() As String

Gets the item of the Karyotype formula with the chromosome count.

Property Value

  • the item of the Karyotype formula with the chromosome count.

Exceptions

Remarks

  • The first field of karyotype is reserved for the chromosome count.
  • This function does not return the original value, but a textual expression strictly fitting the ISCN specification calculated from the ChromosomeCount class (ChromosomeCount.toString()).

Examples

  • To get the chromosome count field of a karyotype, do:

  • Dim myKaryotype as Karyotype = New Karyotyope("46~47,XY,t(9;22)(q34;q11),der(22)t(9;22)[cp]")
    myKaryotype.getChromosomeCountField returns "46~47<2n>".

getChromosomeCount() As ChromosomeCount

Gets the chromosome count of a karyotype as a specialised object.

Property Value

  • the chromosome count of a karyotype.

Exceptions

Remarks

  • A special class "ChromosomeCount" was established for dealing with the chromosome count. The minimum and maximum number of chromosomes and ploidy level can be queried therefrom.

getCKAS() As CKAS

Gets an object of CKAS type describing the complex karyotype aberration score.

Property Value

  • an object of CKAS type describing the complex karyotype aberration score.

Exceptions

Remarks

  • For more information on the "complex karyotype aberration score", see the description of the CKAS class.

Examples

  • To get the overall aberration score of a karyotype, do:

  • Dim myKaryotype as Karyotype = New Karyotyope("47,XY,t(9;22)(q34;q11),+der(22)t(9;22)")
    myKaryotype.getCKAS.getOverallCKAS returns "2".

getCloneSize() As Integer

Returns the number of metaphases which contributed to this karyotype.

Property Value

  • the number of metaphases which contributed to this karyotype.
  • 0, if no such information was given in the karyotype description.

Exceptions

Remarks

  • The clone size is an optional value in the karyotype description.

isCompositeKaryotype() As Boolean

Indicates whether the karyotype is marked composite.

Property Value

  • true, if the karyotype is marked composite ("[cp]").
  • false, otherwise.

Exceptions

Remarks

  • When a composite karyotype was calculated from single karyotypes with the combine function, it is automatically marked composite.
  • Often, composite karyotypes are not marked as such.

hasDMin() As Boolean

Indicates if double minutes were found.

Property Value

  • true, if a "dmin" section was found in the ISCN formula.
  • false, otherwise.

Remarks

  • To get all the double minutes instead information on their presence only, use the DoubleMinutes property.

getDoubleMinutes() As DoubleMinute

Returns a DoubleMinute object describing the double minutes of this karyotype.

Property Value

  • a DoubleMinute object describing the double minutes of this karyotype.

Exceptions

Remarks

  • For more information on "double minutes", see the description of the DoubleMinute class.

getErrorDescription() As String

Gets the description of an error encountered while analysing the karyotype.

Property Value

  • the description of an error encountered while analysing the karyotype.
  • an empty string, if no error happened.

Remarks

  • Before raising an error, its description is placed in this property.

hasExpandError() As Boolean

Indicates if an aberration without breakpoints or a derivative chromosome without aberration descriptions was encountered.

Property Value

  • true, if an aberration without breakpoints or a derivative chromosome without aberration descriptions was encountered.
  • false, otherwise.

Remarks

isIncompleteKaryotype() As Boolean

Indicates whether the karyotype is marked incomplete.

Property Value

  • true, if the karyotype is marked incomplete ("inc").
  • false, otherwise.

Exceptions

Remarks

  • Often, incomplete karyotypes are not marked as such.

hasMarker() As Boolean

Indicates if marker chromosomes were encountered.

Property Value

  • true, if marker chromosomes were encountered.
  • false, otherwise.

Remarks

  • To get all marker chromosomes instead of an indication of their presence only, use the Markers property.

getMarkers() As Markers

Returns a Markers object describing the marker chromosomes of the karyotype.

Property Value

  • a Markers object describing the marker chromosomes of the karyotype.

Exceptions

Remarks

  • For more information on dealing with marker chromosomes, see the description of the Marker and Markers classes.

getPloidyLevel() As Integer

Gets the ploidy level of the karyotype.

Property Value

  • the ploidy level of the karyotype.

Exceptions

Remarks

  • If the ploidy level is not given explicitly in the karyotype formula, it is calculated by dividing the arithmetic medium value of chromosome count by the number of chromosomes per haploid set (23 for humans) and rounding to the nearest full number.
  • Actually passes through to ChromosomeCount.Ploidy().

Examples

  • To get the ploidy level of a karyotype, do:

  • Dim myKaryotype as Karyotype = New Karyotyope("44~52,XY,t(9;22)(q34;q11),+der(22)t(9;22),inc[cp]")
    myKaryotype.getPloidyLevel returns "2".

hasRing() As Boolean

Indicates if ring chromosomes were encountered.

Property Value

  • true, if ring chromosomes were encountered.
  • false, otherwise.

Remarks

  • Not only ring shaped marker chromosomes ("+r"), but also well defined ring chromosomes ("r(7)(p22q36)") are accepted.
  • To get all ring shaped marker chromosomes, use the Rings property.

getRings() As Rings

Returns a Rings object describing the unidentified ring chromosomes of the karyotype.

Property Value

  • a Rings object describing the unidentified ring chromosomes of the karyotype.

Exceptions

Remarks

  • For more information on dealing with less well characterized ring chromosomes, see the description of the Ring and Rings classes.
  • Well defined ring chromosomes are dealt with as normal aberrations, not as ring shaped marker chromsomes.

getSexChromosomes() As SexChromosomes

Returns a SexChromosomes object representing the sex chromosomes field of the ISCN formula.

Property Value

  • a SexChromosomes object representing the sex chromosomes field of the ISCN formula.

Exceptions

Remarks

  • The sex chromosome field is not mandatory. Also, sex chromosomes may have been consumed by aberrations. In such cases, the return value is an "empty" object.

getSexChromosomesField() As String

Returns the sex chromosomes field of the ISCN formula.

Property Value

  • the sex chromosomes field of the ISCN formula.

Exceptions

Remarks

  • The sex chromosome field is not mandatory. Also, sex chromosomes may have been consumed by aberrations. In such cases, the return value is an empty string.
  • Actually passes through to SexChromosomes.toString().

Examples

  • To get the sex chromosomes of a karyotype, do:

  • Dim myKaryotype as Karyotype = New Karyotyope("47,XYXc,t(9;22)(q34;q11)")
    myKaryotype.getSexChromosomes returns "XXYc".

isValidKaryotype() As Boolean

Indicates whether the karyotype is valid.

Property Value

  • true, if the karyotype is valid.
  • false, otherwise.

Remarks

  • The karyotype gets analysed. If errors are encountered during this analysis, the ErrorDescription property is set, but no error is raised.

isValidKaryotypeForComposing() As Boolean

Indicates whether the karyotype is valid for combining with another karyotype to a composite karyotype.

Property Value

  • true, if the karyotype is valid.
  • false, otherwise.

Remarks

  • The karyotype gets analysed. If errors are encountered during this analysis, the ErrorDescription property is set, but no error is raised.
  • The Validity check for combining is less strict than for normal analysis. E.g. aberrations whose break points cannot be found within this karyotype are acceptable, since their break points may be found in the composite karyotype.

Methods

Public Function clone() As Object Implements ICloneable.Clone

Creates a deep copy of the Karyotype object.

Return Value

  • A deep copy of the Karyotype object.

Implements

Remarks

  • The clone contains clones of the constituent objects.

Public Sub combine(ByRef SecondKaryotype As Karyotype)

Creates a composite karyotype of this one and SecondKaryotype. During the operation, this karyotype gets changed into the composite karyotype.

Parameters

  • SecondKaryotype: The karyotype to be integrated into this karyotype.

Exceptions

Remarks

  • This karyotype object gets changed into the composite karyotype.
  • The Validity check for combining is less strict than for normal analysis. E.g. aberrations whose break points cannot be found within this karyotype are acceptable, since their break points may be found in the composite karyotype.
  • Markers and unidentified ring chromosomes loose their individuality, only the sums of their count are present in the composite karyotype.

Examples

  • To combine the karyotypes "46,XY,t(9;22)(q34;q11)" and "47,XY,t(9;22)(q34;q11),+der(22)t(9;22)", do:

  • Dim myFirstKaryotype as Karyotype = New Karyotyope("46,XY,t(9;22)(q34;q11)")
    Dim mySecondKaryotype as Karyotype = New Karyotyope("47,XY,t(9;22)(q34;q11),+der(22)t(9;22)")
    myFirstKaryotype.combine(mySecondKaryotype)
    myFirstKaryotype.toString results then in "46~47,XY,t(9;22)(q34;q11),+der(22)t(9;22)[cp]".

Public Function getAlteredChromosomes() As Chromosomes

Calculates all (derivative or additional / lost) chromosomes derived from this karyotype and returns them as a Chromosomes object.

Return Value

  • A Chromosomes object containing all chromosomes derived from this karyotype.

Parameters

  • None.

Remarks

  • Markers and ring chromosomes are represented by chromosomes of unknown centromeric origin.

Known Problems

Internal processing

  • For each aberration of the karyotype, Aberration.getAlteredChromosomes is called.
  • Chromosomes of unknown centromeric origin are added according to the sum of marker and ring chromosomes.

Public Function getBreakPoints() As Bands

Returns a Bands object describing all the break points inferred by this karyotype.

Return Value

  • a Bands object describing all the break points inferred by this karyotype.

Exceptions

Remarks

  • The object may be emtpy if there are no break points (e.g. gain / loss of non-aberrant chromosomes only).

Examples

  • To get the break points inferred by a karyotype, do:

  • Dim myKaryotype as Karyotype = New Karyotyope("47,XX,t(9;22)(q34;q11),+der(22)t(9;22)")
    myKaryotype.getBreakPoints.toString
    returns "9q34,22q11".

Public Function getFusions() As Fusions

Returns a Fusions object describing the sites in this karyotype where chromosomal regions were brought into contact with each other.

Return Value

  • a Fusions object describing the fusions / junctions of this karyotype.

Exceptions

Remarks

  • "Fusions" are also called "junctions".
  • For more information on "fusions", see the description of the Fusion and Fusions classes.

Public Function getGainsLossesStructs(ByVal Resolution As ChromosomeData.eResolutionLevel) As GainsLossesStructs

Returns a GainsLossesStructs object describing the alterations per chromosomal band in this karyotype.

Return Value

  • a GainsLossesStructs object describing the alterations per chromosomal band in this karyotype.

Exceptions

Remarks

  • GainsLossesStructs are calculated only once for a given resolution, later the value is retrieved from the stored result of a previous calculation.
  • For more information on "GainsLossesStructs", see the description of the GainLossStruct and GainsLossesStructs classes.

Public Function getQualitativeAberrations() As QualitativeAberrations

Returns a QualitativeAberrations object describing the qualitative (structural) aberrations of this karyotype.

Return Value

Exceptions

Remarks

Examples

  • To get the qualitative aberrations of a karyotype in SCCN, do:

  • Dim myKaryotype as Karyotype = New Karyotyope("47,XX,t(9;22)(q34;q11)+der(22)t(9;22)")
    myKaryotype.getQualitativeAberrations.toString returns "t(9)(q34),t(22)(q11)".

Public Function getQualitativeAberrationsExpandedToResolution(ByVal Resolution As Band.eResolutionLevel, Optional ByVal IgnoreUncertainties As Boolean = True) As QualitativeAberrations

Returns a QualitativeAberrations object describing the qualitative (structural) aberrations of this karyotype at the specified resolution with the specified treatment of uncertainties.

Return Value

  • a QualitativeAberrations object describing the qualitative aberrations of this karyotype at the specified resolution with the specified treatment of uncertainties.

Parameters

  • Resolution: the banding resolution to be met by the aberrations.
  • IgnoreUncertainties: If set to true, all aberrations containing uncertainties will be ignored (default), otherwise the information about the uncertainty will be lost.

Exceptions

Remarks

Examples

  • To get the qualitative aberrations of a karyotype at 400 bands per haploid set in SCCN, do:

  • Dim myKaryotype as Karyotype = New Karyotyope("47,XX,t(9;22)(q34;q11)+der(22)t(9;22)")
    myKaryotype.getQualitativeAberrationsExpandedToResolution(Resolution400Bands).toString returns "t(9)(q34),t(22)(q111q112)".

Public Function getQuantitativeAberrations() As QuantitativeAberrations

Returns a QuantitativeAberrations object describing the quantitative aberrations (gains and losses of chromosomal material) of this karyotype.

Return Value

Exceptions

Remarks

Examples

  • To get the quantitative aberrations of a karyotype in SCCN, do:

  • Dim myKaryotype as Karyotype = New Karyotyope("47,XX,t(9;22)(q34;q11),+der(22)t(9;22)")
    myKaryotype.getQuantitativeAberrations.toString
    returns "+(9)(q34qter),+(22)(pterq11)".

Public Function getQuantitativeAberrationsExpandedToResolution(ByRef Resolution As Band.eResolutionLevel, Optional ByRef IgnoreUncertainties As Boolean = True) As QuantitativeAberrations

Returns a QuantitativeAberrations object describing the quantitative aberrations (gains and losses of chromosomal material) of this karyotype at the specified resolution with the specified treatment of uncertainties.

Return Value

  • a QuantitativeAberrations object describing the quantitative aberrations of this karyotype at the specified resolution with the specified treatment of uncertainties.

Parameters

  • Resolution: the banding resolution to be met by the aberrations.
  • IgnoreUncertainties: If set to true, all aberrations containing uncertainties will be ignored (default), otherwise the information about the uncertainty will be lost.

Exceptions

Remarks

Examples

  • To get the quantitative aberrations of a karyotype at 400 bands per haploid set in SCCN, do:

  • Dim myKaryotype as Karyotype = New Karyotyope("47,XX,t(9;22)(q34;q11)+der(22)t(9;22)")
    myKaryotype.getQuantitativeAberrationsExpandedToResolution(Resolution400Bands).toString returns "+(9)(q34q34),+(22)(p13q112)".

Public Function getUnexpandedAberration() As Aberration

Returns the first aberration in the karyotype whose breakpoints (or in case of derivative chromosomes: whose aberration descriptions) are missing.

Return Value

  • the first unexpanded aberration in the karyotype.

Exceptions

Remarks

  • In some cases, break points can be added to descriptions of rearrangements; also, sometimes missing aberrations can be found for derivative chromosomes.
  • If more than one aberration is not expanded, only the first one can be retrieved.

Public Sub setKaryotype(ByRef ISCNFormula As String)

If no karyotype description was passed to the constructor of Karyotype, its description can be passed here once.

Parameters

  • ISCNFormula: a textual description of the karyotype following the ISCN 1995 specification.

Exceptions

  • InvalidOperationException: the object has already received a karyotype description, no karyotype description can be passed to it.

Remarks

  • This function is used only in combination with the empty constructor. Whenever possible, the constructor with a parameter should be used instead.

Examples

  • When initialising a Karyotype object with VBA (e.g. MS Access), use:

  • Dim myKaryotype As New Karyotype
    myKaryotype.setKaryotype ("47,XY,t(9;22)(q34;q11),+der(22)t(9;22)")

Public Shadows Function toString() As String

Returns a textual description of the karyotype using the ISCN 1995.

Return Value

  • a textual description of the karyotype.

Parameters

  • None.

Remarks

  • The ISCN formula is recalculated if the karyotype is valid thus correcting minor errors; otherwise, the original description (including its errors) is returned.
  • Internally, passes through to toString("S").

Public Shadows Function toString(ByVal format As String) As String

Returns a textual description of the karyotype using the ISCN 1995.

Return Value

  • a textual description of the karyotype.

Parameters

  • format: an indication of the format to be used:

  • "S" means standard (lenient) format,
    "E" exact format.

Remarks

  • The ISCN formula is recalculated if the karyotype is valid thus correcting minor errors; otherwise, the original description (including its errors) is returned.

Interaction with other classes

The Karyotype class is the central class of the ISCNAnalyser dll.

Classes using Karyotype

Only its collection class, Karyotypes, uses the Karyotype class; a Karyotypes object may contain 0, 1 or many Karyotype objects.

Classes used by Karyotype

A Karyotype object constitutionally contains many other objects of the CyDAS project, typically collection classes: Aberrations, ChromosomeCount, SexChromosomes, Markers, Rings, DoubleMinute, CKAS, Bands (for break points), QualitativeAberrations, QuantitativeAberrations.