NVBIO
Main Page
Modules
Classes
Examples
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
nvbio
basic
bnt.h
Go to the documentation of this file.
1
/*
2
* nvbio
3
* Copyright (c) 2011-2014, NVIDIA CORPORATION. All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions are met:
7
* * Redistributions of source code must retain the above copyright
8
* notice, this list of conditions and the following disclaimer.
9
* * Redistributions in binary form must reproduce the above copyright
10
* notice, this list of conditions and the following disclaimer in the
11
* documentation and/or other materials provided with the distribution.
12
* * Neither the name of the NVIDIA CORPORATION nor the
13
* names of its contributors may be used to endorse or promote products
14
* derived from this software without specific prior written permission.
15
*
16
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19
* DISCLAIMED. IN NO EVENT SHALL NVIDIA CORPORATION BE LIABLE FOR ANY
20
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
*/
27
28
//
29
// NOTE: the code below is a derivative of bntseq.h, originally distributed
30
// under the MIT License, Copyright (c) 2008 Genome Research Ltd (GRL).
31
//
32
33
#pragma once
34
35
#include <
nvbio/basic/types.h
>
36
#include <string>
37
#include <vector>
38
#include <cstdio>
39
40
namespace
nvbio {
41
42
struct
BNTAnnData
43
{
44
BNTAnnData
() :
offset
(0),
len
(0),
n_ambs
(0),
gi
(0) {}
45
46
int64
offset
;
47
int32
len
;
48
int32
n_ambs
;
49
uint32
gi
;
50
};
51
52
struct
BNTAnnInfo
53
{
54
std::string
name
;
55
std::string
anno
;
56
};
57
58
struct
BNTAmb
59
{
60
int64
offset
;
61
int32
len
;
62
char
amb
;
63
};
64
65
struct
BNTSeq
66
{
67
BNTSeq
() :
l_pac
(0),
n_seqs
(0),
seed
(0),
n_holes
(0) {}
68
69
int64
l_pac
;
70
int32
n_seqs
;
71
uint32
seed
;
72
int32
n_holes
;
73
std::vector<BNTAnnInfo>
anns_info
;
// n_seqs elements
74
std::vector<BNTAnnData>
anns_data
;
// n_seqs elements
75
std::vector<BNTAmb>
ambs
;
// n_holes elements
76
};
77
78
struct
BNTInfo
79
{
80
int64
l_pac
;
81
int32
n_seqs
;
82
uint32
seed
;
83
int32
n_holes
;
84
};
85
86
struct
BNTSeqLoader
87
{
88
virtual
void
set_info
(
const
BNTInfo
info) {}
89
virtual
void
read_ann
(
const
BNTAnnInfo
& info,
BNTAnnData
& data) {}
90
virtual
void
read_amb
(
const
BNTAmb
& amb) {}
91
};
92
93
struct
bns_fopen_failure
{};
94
struct
bns_files_mismatch
{};
95
96
void
save_bns
(
const
BNTSeq
& bns,
const
char
*prefix);
97
void
load_bns
(
BNTSeq
& bns,
const
char
*prefix);
98
99
void
load_bns_info
(
BNTInfo
& bns,
const
char
*prefix);
100
void
load_bns
(
BNTSeqLoader
* bns,
const
char
*prefix);
101
102
}
// namespace nvbio
Generated on Wed Feb 25 2015 08:32:54 for NVBIO by
1.8.4