# Class UcscRecord
Represent the information for one UCSC gene annotation record.

Implements | FormattedFileRecordConcept
All Impl'd | AssignableConcept, CopyConstructibleConcept, DefaultConstructibleConcept, FormattedFileRecordConcept
Defined in | <seqan/ucsc_io.h>
Signature | `class UcscRecord;`

## Member Function Overview

### Member Functions Inherited From AssignableConcept

- `operator=`

## Interface Function Overview

- `void clear(record);`
  Clear UcscRecord.

### Interface Functions Inherited From AssignableConcept

- `assign`
- `set`
- `move`

## Member Variable Overview

- `uint32_t UcscRecord::annotationBeginPos`
  Start of the annotation (`0`-based, defaults to `-1`).
- `CharString UcscRecord::annotationEndPos`
  End position of the annotation, defaults to `-1`.
- `int32_t UcscRecord::cdsBegin`
  Start of the coding region (`0`-based position, defaults to `-1`).
- `int32_t UcscRecord::cdsEnd`
  End of the coding region, defaults to `-1`.
- `CharString UcscRecord::contigName`
  Name of the contig of the genomic location.
- `CharString UcscRecord::exonBegin`
  Start of the exon (`0`-based position, defaults to `-1`).
- `CharString UcscRecord::exonEnds`
  End of the exon, defaults to `-1`.
- `CharString UcscRecord::proteinName`
  Name of the coded protein.
- `CharString UcscRecord::transName`
  Name of the transcript.

## Detailed Description

The UCSC genome browser server allows the download of a set of the known genes and isoforms used in the browser. These files can be downloaded from the UCSC FTP's `goldenPath` folder, e.g. the one for hg19.

To load the annotations, you need to download both the `knownGenes.txt.gz` and the `knownIsoforms.txt.gz` files from the UCSC `goldenPath` database. These files can then be read record by record into a `UcscRecord`. This record type is capable of representing records from either file type.

## Interface Functions Detail

### `void clear(record);`

Clear UcscRecord.

#### Parameters

`record` | The UcscRecord to clear.

Clears all strings and resets it to default initialization state.

#### Data Races

Thread safety unknown!

## Member Variables Detail

### `uint32_t UcscRecord::annotationBeginPos`

Start of the annotation (`0`-based, defaults to `-1`).

### `CharString UcscRecord::annotationEndPos`

End position of the annotation, defaults to `-1`.

### `int32_t UcscRecord::cdsBegin`

Start of the coding region (`0`-based position, defaults to `-1`).

### `int32_t UcscRecord::cdsEnd`

End of the coding region, defaults to `-1`.

### `CharString UcscRecord::contigName`

Name of the contig of the genomic location.

### `CharString UcscRecord::exonBegin`

Start of the exon (`0`-based position, defaults to `-1`).

### `CharString UcscRecord::exonEnds`

End of the exon, defaults to `-1`.

### `CharString UcscRecord::proteinName`

Name of the coded protein.

### `CharString UcscRecord::transName`

Name of the transcript.

#### Dox Sources

    /*!
     * @class UcscRecord
     *
     * @implements FormattedFileRecordConcept
     *
     * @headerfile <seqan/ucsc_io.h>
     *
     * @brief Represent the information for one UCSC gene annotation record.
     *
     * @signature class UcscRecord;
     *
     * The UCSC genome browser server allows the download of a set of the known
     * genes and isoforms used in the browser. These files can be downloaded from
     * the UCSC FTP's <tt>goldenPath</tt> folder, e.g. the one for <a
     * href="http://hgdownload.cse.ucsc.edu/goldenpath/hg19/">hg19</a>.
     *
     * To load the annotations, you need to download both the
     * <tt>knownGenes.txt.gz</tt> and the <tt>knownIsoforms.txt.gz</tt> files from
     * the UCSC <tt>goldenPath</tt> database. These files can then be read record by
     * record into a <tt>UcscRecord</tt>. This record type is capable of
     * representing records from either file type.
     *
     * @var CharString UcscRecord::transName;
     *
     * @brief Name of the transcript.
     *
     * @var CharString UcscRecord::contigName;
     *
     * @brief Name of the contig of the genomic location.
     *
     * @var int32_t UcscRecord::cdsBegin;
     *
     * @brief Start of the coding region (<tt>0</tt>-based position, defaults to
     *        <tt>-1</tt>).
     *
     * @var int32_t UcscRecord::cdsEnd;
     *
     * @brief End of the coding region, defaults to <tt>-1</tt>.
     *
     * @var CharString UcscRecord::exonBegin;
     *
     * @brief Start of the exon (<tt>0</tt>-based position, defaults to
     *        <tt>-1</tt>).
     *
     * @var CharString UcscRecord::exonEnds;
     *
     * @brief End of the exon, defaults to <tt>-1</tt>.
     *
     * @var CharString UcscRecord::proteinName;
     *
     * @brief Name of the coded protein.
     *
     * @var uint32_t UcscRecord::annotationBeginPos;
     *
     * @brief Start of the annotation (<tt>0</tt>-based, defaults to <tt>-1</tt>).
     *
     * @var CharString UcscRecord::annotationEndPos;
     *
     * @brief End position of the annotation, defaults to <tt>-1</tt>.
     *
     * @fn UcscRecord#clear
     *
     * @brief Clear UcscRecord.
     *
     * @signature void clear(record);
     *
     * @param record The UcscRecord to clear.
     *
     * Clears all strings and resets it to default initialization state.
     */