# Spec SeqFileIn
Class for reading RAW, FASTA, FASTQ, EMBL and GENBANK files containing unaligned sequences.

Extends | FormattedFileIn
All Extended | FormattedFile, FormattedFileIn
Defined in | <seqan/seq_io.h>
Signature | `typedef FormattedFile<Fastq, Input> SeqFileIn;`

## Member Function Overview

### Member Functions Inherited From FormattedFile

- `getFileExtensions`
- `operatorTDependentContext`

## Interface Function Overview

- `void readRecord(meta, seq[, qual], fileIn);`
  Read one FormattedFileRecordConcept from a SeqFileIn object.
- `void readRecords(metas, seqs, quals, fileIn, numRecord);`
  Read many FormattedFileRecordConcept from a SeqFileIn object.

### Interface Functions Inherited From FormattedFile

- `atEnd`
- `close`
- `context`
- `format`
- `FormattedFile`
- `getFileExtensions`
- `guessFormat`
- `isOpen`
- `open`
- `setFormat`

### Interface Functions Inherited From FormattedFileIn

- `readHeader`
- `readRecord`

## Interface Metafunction Overview

### Interface Metafunctions Inherited From FormattedFile

- `FileFormat`
- `FormattedFileContext`

## Interface Functions Detail

### `void readRecord(meta, seq[, qual], fileIn);`

Read one FormattedFileRecordConcept from a SeqFileIn object.

#### Parameters

`meta` | The StringConcept object where to read the meta information into.
`seq` | The StringConcept object where to read the sequence information into.
`qual` | The StringConcept object where to read the quality information into.
`fileIn` | The SeqFileIn object to read from.

#### Thrown Exceptions

`IOError` | On low-level I/O errors.
`ParseError` | On high-level file format errors.

#### Data Races

If not stated otherwise, concurrent invocation is not guaranteed to be thread-safe.

### `void readRecords(metas, seqs, quals, fileIn, numRecord);`

Read many FormattedFileRecordConcept from a SeqFileIn object.

#### Data Races

If not stated otherwise, concurrent invocation is not guaranteed to be thread-safe.

#### See Also

- readRecord

#### Dox Sources

    /*!
     * @class SeqFileIn
     *
     * @extends FormattedFileIn
     *
     * @headerfile <seqan/seq_io.h>
     *
     * @brief Class for reading RAW, FASTA, FASTQ, EMBL and GENBANK files containing
     *        unaligned sequences.
     *
     * @signature typedef FormattedFile<Fastq, Input> SeqFileIn;
     *
     * @fn SeqFileIn#readRecord
     *
     * @brief Read one @link FormattedFileRecordConcept @endlink from a @link
     *        SeqFileIn @endlink object.
     *
     * @signature void readRecord(meta, seq[, qual], fileIn);
     *
     * @param[out] meta The @link StringConcept @endlink object where to read the
     *                  meta information into.
     * @param[out] seq The @link StringConcept @endlink object where to read the
     *                 sequence information into.
     * @param[out] qual The @link StringConcept @endlink object where to read the
     *                  quality information into.
     * @param[in,out] fileIn The @link SeqFileIn @endlink object to read from.
     *
     * @throw IOError On low-level I/O errors.
     * @throw ParseError On high-level file format errors.
     *
     * @fn SeqFileIn#readRecords
     *
     * @brief Read many @link FormattedFileRecordConcept @endlink from a @link
     *        SeqFileIn @endlink object.
     *
     * @signature void readRecords(metas, seqs, quals, fileIn, numRecord);
     *
     * @see SeqFileIn#readRecord
     */