Class Aberration

The class Aberration describes an aberration. After initialisation, analysis of the aberration is started and all relevant information on it is calculated.

For a more prosaic overview on ISCN analysis, see "Analysis of ISCN" or, for single aberrations "Analysis of Aberrations".

Overview

Aberration
New()
New(AberrationString: String)
Metaphases(): Integer
causesOneDerivative(): Boolean
clone(): Object {Implements ICloneable.Clone}
compareTo(obj: Object): Integer {Implements IComparable.CompareTo}
correctDerivativeAberration(): void
getAberrationDescription(): String
getAberrationType(): eAberrationType
getAlteredChromosomes(Optional IgnoreMultiplicator: Boolean = False): Chromosomes
getBand1(): Band
getBand2(): Band
getBand3(): Band
getBreakPoints(): Bands
getChromosome1(): String
getChromosome2(): String
getChromosome3(): String
getDerivateChromosome(): Chromosome
getErrorDescription(): String
getFusions(): Fusions
getMultiplicator(): Integer
getMultiplicatorMax(): Integer
getNumericChange(): QuantitativeAberrationType
getQualitativeAberrations(): QualitativeAberrations
getQuantitativeAberrations(): QuantitativeAberrations
isConstitutional(): Boolean
isExpanded(): Boolean
isValidAberration(): Boolean
toString(): String
toString(ByVal format: String): String

Programming Language

  • Microsoft Visual Basic .Net.

Availability

Constructors

Public Sub New()

Instantiates a new Aberration object.

Parameters

  • None.

Remarks

  • This constructor without parameters was made public only because of compatibility issues with COM. DO NOT USE IT.

Public Sub New(ByRef AberrationString As String)

Instantiates a new Aberration object.

Parameters

  • AberrationString: a textual description of the aberration.

Exceptions

Remarks

  • An "aberration" can be described as an item of the ISCN formula which is surrounded by commata.
  • If errors are encountered during analysis of the aberration, no exception is thrown; instead, the ValidAberration property is set to false and the ErrorDescription is set to a meaningful value.

Examples

  • mySimpleAberration = New Aberration("t(9;22)(q34;q11)") initializes an aberration object with the description of the Philadelphia translocation.
  • myComplicatedAberration = New Aberration("der(22)t(9;22)(q34;q11)") initializes an aberration object with the description of the derivative chromosome 22 caused by the Philadelphia translocation.

Interfaces

IComparable

is implemented with the compareTo function.

ICloneable

is implemented with the clone function.

Enumerations

The class does not provide enumerations.

Properties

The object has almost no properties proper because it is actually expected not to be changed from outside after initialisation (with the exception of changes originating from other objects of the ISCNAnalyser) and thus all properties would be read-only. Instead, they can be queried with the methods described below.

Public Property Metaphases() As Integer

Gets or sets the number of metaphases / cells the aberration was found in.

Property Value

  • the number of metaphases the aberration was found in.

Remarks

  • The number of metaphases an abnormality was found in is an optional value according to the ISCN manual (chapter 11.1.6).
  • It follows after the aberration proper in square brackets, e.g. "t(9;22)(q34;q11)[7]".

Methods

Public Function causesOneDerivative() As Boolean

Checks if the aberration alters exactly one or more chromosomes.

Return Value

  • true, if exactly one chromosome is altered by this aberration.
  • false, otherwise.

Parameters

  • None.

Remarks

  • This function is useful when determining if more than one normal chromosome is to be replaced by a derivative chromosome (e.g. when calculating a karyogram or when showing ideograms of all altered chromosomes).

Internal processing

  • Since almost all aberrations yield one altered chromosome only, the return value is initialised to true.
  • If it the aberration is of type Fision, Interchromosomal Insertion, or any type of Translocation, it is changed to false.

Public Function clone() As Object Implements ICloneable.Clone

Creates a deep copy of the Aberration object.

Return Value

  • A deep copy of the Aberration object.

Implements

Remarks

  • The clone contains clones of the constituent objects.

Public Function compareTo(ByVal obj As Object) As Integer Implements IComparable.CompareTo

Compares this instance to a specified Aberration object and returns an indication of their relative values. Comparison is done on the first break point of the aberration, then on the type of aberration in alphabetic order.

Return Value

  • <=-1: The first chromosomal break point of this aberration resides on a chromosome with lower number, or if on the same chromosome, is closer to the p-terminus, or if they share the chromosomal break point, this one has a type of lower value.
  • 0: The Aberrations share the first chromosomal break point and the type of aberration.
  • >=1: The first chromosomal break point of this aberration resides on a chromosome with higher number, or if on the same chromosome, is closer to the q-terminus, or if they share the chromosomal break point, this one has a type of higher value.

Parameters

  • obj: the Aberration to be compared with this Aberration.

Exceptions

Implements

Remarks

  • Aberrations are ordered according to the place of their occurence on the chromosome. If there is more than one chromosome envolved, the first one is used. Hence, comparison is in the first step delegated to the band class. If two different aberrations took place at the same position, they are ordered according to the eAberrationType enumeration (i.e. alphabetically).

Public Sub correctDerivativeAberration()

If a derivative chromosome has been affected by many rearangements, some of those rearrangements may no more contribute to the present band composition of the derivative chromosome. Such rearrangements are removed from the description.

Return Value

  • None.

Parameters

  • None.

Remarks

  • If the aberration is not a derivation or isoderivation ("der..." or "ider..."), the function does not do anything.
  • If a break point of an aberration can still be found, that aberration is supposed to still contribute to the chromosome, even when that aberration can no more contribute to the band composition; e.g. when in the der(5) of t(5;7)(q21;q22) an addition is intoduced at 5q21, the aberration is written as "der(5)t(5;7)(q21;q22)add(5)(q21)" instead of "add(5)(q21)". Hence, an additional manual correction could be useful in such cases where previous break points are afflicted again.

Examples

  • The derivative chromosome "der(5)add(5)(q23)t(5;7)(q21;q22)" is corrected to "der(5)t(5;7)(q21;q22)" because the break point for the addition "add(5)(q23)" is no more present.
  • The derivative chromosome "der(5)add(5)(q23)add(5)(q21)" is corrected to "add(5)(q21)".

Internal processing

  • The function checks for every aberration denoted in the (iso-)derivative chromosome if at least one of the break points of that aberration is present in the chromosome. If no such break point was found, the aberration can no more contribute to the derivative chromosome and is removed from the internal collection of sub-aberrations mcAberrations.
  • Finally, if at least one aberration was removed, or if no more than exactly one aberration is present, the derivative chromosome is re-written and the aberration is re-initialised with the new textual description (including a call to the init function).

Public Function getAberrationDescription As String

Gets a description of the aberration proper, without multiplicators, gain/loss indication or question marks referring to the aberration proper.

Property Value

  • a textual description of the aberration proper.

Examples

  • With aberration "+8", AberrationDescription is "8".
  • With aberration "?t(9;22)", AberrationDescription is "t(9;22)".
  • With aberration "+der(9)t(9;22)x2", AberrationDescription is "der(9)t(9;22)".

Public Function getAberrationType As QualitativeAberration.eAberrationType

Gets a value describing the type of the (structural) aberration.

Property Value

  • a value describing the type of the aberration.

Remarks

  • The values are defined in the enumeration QualitativeAberration.eAberrationType.
  • The detailed description of aberration types is used. I.e.this function differentiates between terminal and non-terminal deletions, translocations involving two or three chromosomes etc.

Public Function getAlteredChromosomes(Optional ByVal IgnoreMultiplicator As Boolean = False) As Chromosomes

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

Return Value

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

Parameters

  • IgnoreMultiplicator: Indicates if chromosomes are to be added one time only independent from the multiplicator of the aberration (true) or as often as also influenced by the multiplicator (false; default behavior).

Remarks

  • The Chromosome objects get linked to this aberration by setting the "CausingAberration" property of the Chromosome.
  • The Replaces property of the chromosome is set depending on the NumericChange property of the aberration.

Examples

  • The aberration "+3" yields a "normal" chromosome 3 with the Replaces property set to "Adds".
  • The aberration "-7" yields a "normal" chromosome 7 with the Replaces property set to "Removes".
  • The aberration "add(5)(q21)" yields the derivative chromosome "der(5)add(5)(q21)" with the Replaces property set to "Replaces".
  • The aberration "t(5;7)(q21;q22)" yields the derivative chromosomes "der(5)t(5;7)(q21;q22)" and "der(7)t(5;7)(q21;q22)" with the Replaces property set to "Replaces".

Known Problems

  • The ISCN has a bug regarding the replacement of normal chromosomes by derivative chromosomes (see also the page on problems of the ISCN). Some of the problems arising from the bug could be circumvented with some extra code (e.g. for idic and whole arm translocations). But other aberrations involving a centromeric region mean to much effort to be circumvented, e.g. duplication of a centromere "dup(10)(p13q21.3) = der(10;10)(10pter->10q21.3::10p13->10qter)" where the latter band composition could also arise from a "dic(10;10)(p13;q21.3)", but the dup has to replace one chromosome only while the dic must replace two chromosomes.
    Whole arm translocations of three or more way translocations would need extreme effort to be dealt with; since they are extremely rare, that effort was not taken: Such whole arm translocations are not calculated correctly.
    Further more, underlining is not an appropriate style to distinguish between sister chromosomes.
    These are bugs of the ISCN, not of the ISCNAnalyser.

Internal processing

  • For the calculation of the chromosomes, many different cases and sub-cases depending on the AberrationType must be differentiated. 
    Derivative chromosomes are "erected" with the Chromosome.erect function. 
    If the mulitplicator of the aberration is greater than 1 and has to be considered, clones of the chromosomes are added to the collection again as often as requested. Note that clones must be used in order to set the ExternalID property of the chromosomes later.
  • If it is a derivation or isoderivation, we can take the chromosome already calculated during analysis.
  • For whole chromosome changes, a "normal" chromosome is set up and its Replaces property adjusted.
  • If the aberration gievs raise to one derivative chromsome only (see also causesOneDerivative function), a derivative chromosome for that aberration is set up.
    • Since an isochromosome has two centromeres of the same number, two normal chromosomes would be replaced (see known problems). Here, the isochromosome must be added, and the respective normal chromosome lost once ("idic(5)(q15)" = "der(5;5)(5pter->5q15::5q15->5pter", hence the returned chromosomes are "+der(5;5)idic(5)(q15)" and "-5". This is not necessary for a "+idic...".
  • A translocation between two chromosomes must be differentiated for whole arm translocation or normal translocation (for three or more way translocations, whole arm translocations are extremely rare and no effort is taken for dealing with them correctly).
    • For whole arm translocations, two chromsomes of the style "der(A,B)([pq]10;[pq]10)" are created as additional chromosomes, and the respective "normal" chromosomes are lost. E.g. "t(2;3)(p10;q10)" adds "der(2;3)(p10;q10),der(2;3)(q10;p10)" and looses "-2,-3"
    • For other aberrations, simply both derivatives are calculated. Since a translocation cannot be gained or lost, no such further differentiation is necessary. E.g. "t(9;22)(q34.12;q11.23)" yields "der(9)t(9;22)(q34.12;q11.23)" and "der(22)t(22;9)(q34.12;q11.23)". Note that chromosomes and bands are changed for the second chromosome in order to deal with translocations between sister chromosomes correctly.
  • With interchromsomal insertions, the acceptor chromosome is set up as the "der()ins()", while the donor chromosome is set up as a "del" (from the point of view of the donor chromosome, it is a deletion, as can be seen when the acceptor chromosome gets lost). E.g. "ins(3;2)(p21;q22q31)" yields "der(3)ins(3;2)(p21;q22q31), del(2)(q22q31)".
  • Translocations between three or more chromosomes are translated into translations of two chromosomes for each of the derivative chromosomes derived from them. E.g. "t(9;22;11)(q34.1;q11.2; q13.3)" yields "der(9)t(9;11)(q34.1;q13.3),der(11)t(11;22)(q13.3;q11.2),der(22;9)(q11.2;q34.1)".

Public Function getBand1() as Band

Returns the first band speicfied in the aberration description.

Return Value

  • a band object representing the first band of the aberration description.

Remarks

  • it is the first band named in the textual description of the aberration without regard to the proper order of bands in an aberration.

Examples

  • With the Philadelphia translocation "t(9;22)(q34;q11)", getBand1 returns "9q34".
  • If the Philadelphia description was written the other way round "t(22;9)(q11;q34)", getBand1 returns "22q11".

Public Function getBand2() as Band

Returns the second band speicfied in the aberration description.

Return Value

  • a band object representing the second band of the aberration description.
  • Nothing, if no second band was given.

Remarks

  • it is the second band named in the textual description of the aberration without regard to the proper order of bands in an aberration.

Examples

  • With the Philadelphia translocation "t(9;22)(q34;q11)", getBand2 returns "22q11".
  • If the Philadelphia description was written the other way round "t(22;9)(q11;q34)", getBand2 returns "9q34".

Public Function getBand3() as Band

Returns the third band speicfied in the aberration description.

Return Value

  • a band object representing the third band of the aberration description.
  • Nothing, if no third band was given.

Remarks

  • it is the third band named in the textual description of the aberration without regard to the proper order of bands in an aberration.

Examples

  • With the translocation "t(9;22;11)(q34;q11;p14)", getBand3 returns "11p14".

Public Function getBreakPoints() As Bands

Returns a Bands object containing all chromosomal break points inferred by this aberration.

Return Value

  • a Bands object containing all chromosomal break points inferred by this aberration.

Remarks

  • The Bands object may be "empty", e.g. when the aberration describes the gain of a non-aberrant chromosome.

Examples

  • The Philadelphia translocation "t(9;22)(q34;q11)" gives raise to Bands object "9q34,22q11" showing the break points of both derivative chromosomes caused by this aberration.
  • Also the derivative chromosome "der(22)t(9;22)(q34;q11)" gives raise to a Bands object with Bands "9q34, 22q11", because this derivative chromosome contains both break points.

Public Function getChromosome1 as string

Returns the number of the first chromosome speicfied in the aberration description.

Return Value

  • the number of the first chromosome of the aberration description.

Remarks

  • it is the first chromosome named in the textual description of the aberration without regard to the proper order of chromosomes in an aberration.

Examples

  • With the Philadelphia translocation "t(9;22)(q34;q11)", getChromosome1 returns "9".
  • If the Philadelphia description was written the other way round "t(22;9)(q11;q34)", getChromosome1 returns "22".

Public Function getChromosome2 as string

Returns the number of the second chromosome speicfied in the aberration description.

Return Value

  • the number of the second chromosome of the aberration description.
  • an empty string, if no second chromosome was given.

Remarks

  • it is the second chromosome named in the textual description of the aberration without regard to the proper order of chromosomes in an aberration.

Examples

  • With the Philadelphia translocation "t(9;22)(q34;q11)", getChromosome2 returns "22".
  • If the Philadelphia description was written the other way round "t(22;9)(q11;q34)", getChromosome2 returns "9".

Public Function getChromosome3 as string

Returns the number of the third chromosome specified in the aberration description.

Return Value

  • the number of the third chromosome of the aberration description.
  • an empty string, if no second chromosome was given.

Remarks

  • it is the third chromosome named in the textual description of the aberration without regard to the proper order of chromosomes in an aberration.

Examples

  • With the translocation "t(9;22;11)(q34;q11;p14)", getChromosome3 returns "11".

Public Function getDerivateChromosome() As Chromosome

If the aberration describes a derivative chromosome ("der" or "ider"), this function returns the resepctive chromosome.

Return Value

  • A chromosome object, if the aberration describes a derivative chromosome.
  • Nothing, otherwise.

Remarks

  • This function can be used to calculate the "detailed form" of a derivative chromosome from its "short description".

Examples

  • To calculate the detailed form of the Philadelphia chromosome "der(22)t(9;22)(q34;q11)", do:

  • Dim myAberration As Aberration = New Aberration("der(22)t(9;22)(q34;q11)")
    Dim myChromosome As Chromosome = myAberration.getDerivateChromosome
    myChromosome.toString will then return "der(22)(22pter->22q11::9q34->9qter)"

Public Function getErrorDescription As String

If an error was encountered during the analysis of the aberration, a meaningful description of the problem is written into this property.

Property Value

  • A textual description of a problem with the aberration, if an error was encountered during analysis.
  • An empty string, otherwise.

Remarks

  • There is some linkage to the "isValidAberration" property: if the later one is false, getErrorDescription returns an empty string.

Examples

  • The defective description "t(9;22)q34;q11)" gives raise to the error description "Invalid aberration description t(9;22)q34;q11): there must be as many left brackets as right brackets.".

Public Function getFusions as Fusions

Returns the fusions (also known as "junctions") associated with this aberration.

Property Value

  • a Fusions object containing the fusions associated with this aberration.
  • an empty fusions object, if no fusions are inferred.

Remarks

  • Fusions are also known as "junctions".
  • This functionality is still in development.

Examples

  • The Philadelphia translocation "t(9;22)(q34;q11)" gives raise to the fusions "(+)(9)(9q34)::(22)(22q11)(+), (+)(22)(22q11)::(9)(9q34)(+)".

Public Function getMultiplicator As Integer

Gets the multiplicator value for the aberration. If there is a range for the multiplicator, this function returns the lower value.

Property Value

  • the (minimum) multiplicator value for the aberration.

Remarks

  • If there is a range for the multiplicator, this function returns the lower value.

Examples

  • With the aberration "+der(22)t(9;22)(q34;q11)x2~3", getMultiplicator is 2.

Public Function getMultiplicatorMax As Integer

Gets the multiplicator value for the aberration. If there is a range for the multiplicator, this function returns the greater value.

Property Value

  • the (maximum) multiplicator value for the aberration.

Remarks

  • If there is a range for the multiplicator, this function returns the greater value.

Examples

  • With the aberration "+der(22)t(9;22)(q34;q11)x2~3", getMultiplicatorMaxis 3.

Public Function getNumericChange As QuantitativeAberration.QuantitativeAberrationType

Returns a value indicating the type of numeric change of this element (gain,loss,none).

Property Value

Public Function getQualitativeAberrations() As QualitativeAberrations

Returns a QualitativeAberrations object containing the qualitative (= structural) aberrations inferred by this aberration.

Return Value

Remarks

  • If an aberration does not mean a qualitative change (e.g. "+8"), the object may be empty.

Examples

  • To get the qualitative aberrations referring to a "t(9;22)(q34;q11)", do:

  • Dim myAberration As Aberration = New Aberration("t(9;22)(q34;q11)")
    Dim myQualitatives As QualitativeAberrations = myAberration.getQualitativeAberrations
    myQualitatives.toString will then return "t(9)(q34),t(22)(q11)".

Public Function getQuantitativeAberrations() As QuantitativeAberrations

Returns a QuantitativeAberrations object containing the quantitative (= numeric) aberrations inferred by this aberration.

Return Value

Remarks

  • If an aberration is balanced, there is no numeric change and hence the returned object may be emtpy.

Examples

  • To get the qualitative aberrations referring to a "der(22)t(9;22)(q34;q11)", do:

  • Dim myAberration As Aberration = New Aberration("der(22)t(9;22)(q34;q11)")
    Dim myQuantitatives As QuantitativeAberrations = myAberration.getQuantitativeAberrations
    myQuantitatives.toString will then return "+(9)(q34qter),-(22)(q11qter)"

Public Function isConstitutional As Boolean

Gets a value indicating whether the aberration was described a constitutional one.

Property Value

  • true, if the aberration is constitutional.
  • false, otherwise.

Remarks

  • No distinction is made when handling constitutional or non-constitutional aberrations.

Examples

  • With a constitutional trisomy 21, i.e. "+21c", returns true.

Public Function isExpanded As Boolean

Describes whether the break points of the aberration are available and thus the aberration description is complete.

Property Value

  • true, if the aberration description is complete.
  • false, otherwise.

Remarks

  • If break points are missing for an aberration which is dealt with in a Karyotype object, methods of this Karyotype object may try to find the break points from other aberrations of the same karyotype.
  • If an aberration is not expanded, no qualitative or quantitative aberrations, break points etc, can be calculated.

Examples

  • The aberration "t(9;22)" is valid, but not expanded.

Public Function isValidAberration As Boolean

Indicates if an aberration is valid.

Property Value

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

Remarks

  • Any expanded aberration is also valid, but a valid aberration need not be expanded.
  • Only when an aberration is expanded, qualitative or quantitative aberrations, break points etc, can be correctly calculated.

Examples

  • The aberration "t(9;22)" is valid, but not expanded.

Public Shadows Function toString() As String

Returns a textual description of the aberration using the ISCN.

Return Value

  • a textual description of the aberration using the ISCN.

Remarks

  • This function makes use of the original description, which is quite lenient
  • The calculation is passed through to "toString("S")"

Public Shadows Function toString(format as String) As String

Returns a textual description of the aberration using the ISCN.

Return Value

  • a textual description of the aberration using the ISCN.

Parameter

  • format: a short description of the format.

  • The following values are defined:
    • "S": standard (lenient) description. Makes use of the original description.
    • "E": exact description. All items are recalculated with strict adherence to the ISCN manual.
    • "M": data mining option. A short description containing the original aberration descriptions after removal of uncertainties and an indication of gain/loss.

Remarks

  • If the format is unknown, "S" formatting will be used by default.
  • This function allows the removal of small errors from a formula.

Example

  • The input "t(9;22?)(q.34?1;q112)" will be transformed by "toString("E")" to "t(9;?22)(q34.?1;q11.2)"

Interaction with other classes

Classes using Aberration

The Aberration class is the central class for the analysis of a karyotype, but Aberration is not a constituent of Karyotype.

An Aberrations object may contain zero, one or many Aberration objects.

Classes used by Aberration

The aberration class deals with most other classes of the CyDAS project. Bands, Chromosome, QualitativeAberrations, QuantitativeAberrations, CKAS, Fusions and sometimes even Aberrations are constituents of an Aberration object.

Transient use is common for Band, Fragment, QualitativeAberration, and QuantitativeAberration objects.