NVBIO
Main Page
Modules
Classes
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
nvMicroAssembly
assembly_types.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
#pragma once
29
30
#include <
nvbio/basic/types.h
>
31
#include <
nvbio/basic/vector.h
>
32
#include <
nvbio/basic/packed_vector.h
>
33
#include <
nvbio/strings/string_set.h
>
34
#include <
nvbio/strings/infix.h
>
35
#include <
nvbio/io/sequence/sequence.h
>
36
#include <
nvbio/io/sequence/sequence_access.h
>
37
#include <
nvbio/basic/dna.h
>
38
39
using namespace
nvbio;
40
41
#define DNA_SYMBOL_BITS 2U
42
#define DNA_SYMBOL_MASK ((1u << DNA_SYMBOL_BITS) - 1u)
43
44
typedef
nvbio::vector<device_tag, uint8>
D_VectorU8
;
45
typedef
nvbio::vector<host_tag, uint8>
H_VectorU8
;
46
typedef
nvbio::vector<device_tag, uint16>
D_VectorU16
;
47
typedef
nvbio::vector<host_tag, uint16>
H_VectorU16
;
48
typedef
nvbio::vector<device_tag, uint32>
D_VectorU32
;
49
typedef
nvbio::vector<host_tag, uint32>
H_VectorU32
;
50
typedef
nvbio::vector<device_tag, uint64>
D_VectorU64
;
51
typedef
nvbio::vector<host_tag, uint64>
H_VectorU64
;
52
typedef
nvbio::vector<device_tag, int32>
D_VectorI32
;
53
typedef
nvbio::vector<host_tag, int32>
H_VectorI32
;
54
typedef
nvbio::vector<device_tag, ulonglong2>
D_VectorU64_2
;
55
typedef
nvbio::vector<host_tag, ulonglong2>
H_VectorU64_2
;
56
57
typedef
nvbio::PackedVector<host_tag, 2, false, uint64>
H_VectorDNA
;
58
typedef
nvbio::PackedVector<device_tag, 2, false, uint64>
D_VectorDNA
;
59
typedef
H_VectorDNA::stream_type
H_StreamDNA
;
60
typedef
H_VectorDNA::const_stream_type
H_ConstStreamDNA
;
61
typedef
D_VectorDNA::stream_type
D_StreamDNA
;
62
typedef
D_VectorDNA::const_stream_type
D_ConstStreamDNA
;
63
64
typedef
ConcatenatedStringSet<H_StreamDNA, uint64*>
H_SequenceSet
;
65
typedef
ConcatenatedStringSet<D_StreamDNA, uint64*>
D_SequenceSet
;
66
typedef
string_set_infix_coord_type
SequenceSetKmerCoord
;
67
typedef
nvbio::vector<host_tag, SequenceSetKmerCoord>
H_VectorSetKmerCoord
;
68
typedef
nvbio::vector<device_tag, SequenceSetKmerCoord>
D_VectorSetKmerCoord
;
69
70
typedef
nvbio::vector<host_tag, SequenceSetKmerCoord*>::iterator
H_KmerIterator
;
71
typedef
nvbio::vector<device_tag, SequenceSetKmerCoord*>::iterator
D_KmerIterator
;
72
73
typedef
nvbio::io::SequenceDataAccess<DNA>::sequence_string_set_type
RefSequenceSet
;
74
75
typedef
const
ulong2*
ranges_iterator
;
76
typedef
nvbio::SparseStringSet<H_VectorDNA, ranges_iterator>
H_RefRangesSet
;
77
typedef
nvbio::SparseStringSet<D_VectorDNA, ranges_iterator>
D_RefRangesSet
;
78
79
80
/* BAM IO */
81
typedef
nvbio::PackedVector<host_tag, 4, false, uint64>
H_VectorDNA16
;
82
typedef
nvbio::PackedVector<device_tag, 4, false, uint64>
D_VectorDNA16
;
83
struct
cigar_op
84
{
85
uint32
len:24, op:4;
86
87
enum
88
{
89
OP_M = 0,
90
OP_I = 1,
91
OP_D = 2,
92
OP_N = 3,
93
OP_S = 4,
94
OP_H = 5,
95
OP_P = 6,
96
OP_MATCH = 7,
97
OP_X = 8,
98
};
99
100
NVBIO_HOST_DEVICE
char
ascii_op
(
void
)
const
101
{
102
return
op == 0 ?
'M'
:
103
op == 1 ?
'I'
:
104
op == 2 ?
'D'
:
105
op == 3 ?
'N'
:
106
op == 4 ?
'S'
:
107
op == 5 ?
'H'
:
108
op == 6 ?
'P'
:
109
op == 7 ?
'='
:
110
'X'
;
111
}
112
};
113
114
typedef
nvbio::vector<device_tag, cigar_op>
D_VectorCigarOp
;
115
typedef
nvbio::vector<host_tag, cigar_op>
H_VectorCigarOp
;
116
Generated on Wed Feb 25 2015 08:33:07 for NVBIO by
1.8.4