a b/third_party/nucleus/protos/fastq.proto
1
// Copyright 2018 Google LLC.
2
//
3
// Redistribution and use in source and binary forms, with or without
4
// modification, are permitted provided that the following conditions
5
// are met:
6
//
7
// 1. Redistributions of source code must retain the above copyright notice,
8
//    this list of conditions and the following disclaimer.
9
//
10
// 2. Redistributions in binary form must reproduce the above copyright
11
//    notice, this list of conditions and the following disclaimer in the
12
//    documentation and/or other materials provided with the distribution.
13
//
14
// 3. Neither the name of the copyright holder nor the names of its
15
//    contributors may be used to endorse or promote products derived from this
16
//    software without specific prior written permission.
17
//
18
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
22
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
// POSSIBILITY OF SUCH DAMAGE.
29
syntax = "proto3";
30
31
package nucleus.genomics.v1;
32
33
// This message represents a single FASTQ record.
34
message FastqRecord {
35
  // The first line of a FASTQ record begins with '@' and is followed by a
36
  // sequence identifier (up to the first whitespace character) and then an
37
  // optional description. This line is parsed into its constituent id and
38
  // description.
39
  // The sequence identifier.
40
  string id = 1;
41
42
  // Optional. The description provided in the header line.
43
  string description = 2;
44
45
  // The raw sequence letters.
46
  string sequence = 3;
47
48
  // The quality values for the sequence. Its length must be the same as the
49
  // sequence length, and is encoded in ASCII. The meaning of each base quality
50
  // may vary: it is usually a Phred-scaled score
51
  // (-10 * log_10(Pr{call is incorrect})) but differs for some older versions
52
  // of FASTQs.
53
  string quality = 4;
54
}
55
56
message FastqReaderOptions {
57
  reserved 1;
58
59
  // If true, simply drop invalid records. Otherwise, raise an error on invalid
60
  // records.
61
  bool skip_invalid_records = 2;
62
}
63
64
// Options for writing FASTQ files.
65
// Currently this is a placeholder message but could be used to support
66
// different choices on output like whether the pad line should include the
67
// header or not.
68
message FastqWriterOptions {
69
}