OpenStructure
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
stage
include
ost
seq
impl
sequence_impl.hh
Go to the documentation of this file.
1
//------------------------------------------------------------------------------
2
// This file is part of the OpenStructure project <www.openstructure.org>
3
//
4
// Copyright (C) 2008-2011 by the OpenStructure authors
5
//
6
// This library is free software; you can redistribute it and/or modify it under
7
// the terms of the GNU Lesser General Public License as published by the Free
8
// Software Foundation; either version 3.0 of the License, or (at your option)
9
// any later version.
10
// This library is distributed in the hope that it will be useful, but WITHOUT
11
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12
// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
13
// details.
14
//
15
// You should have received a copy of the GNU Lesser General Public License
16
// along with this library; if not, write to the Free Software Foundation, Inc.,
17
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
//------------------------------------------------------------------------------
19
#ifndef OST_SEQUENCE_HH
20
#define OST_SEQUENCE_HH
21
22
/*
23
Author: Marco Biasini
24
*/
25
#include <
ost/message.hh
>
26
#include <list>
27
28
#include <boost/shared_ptr.hpp>
29
#include <
ost/generic_property.hh
>
30
#include <
ost/config.hh
>
31
#if(OST_INFO_ENABLED)
32
#include <
ost/info/info_fw.hh
>
33
#endif
34
#include <
ost/mol/residue_prop.hh
>
35
#include <
ost/mol/entity_view.hh
>
36
#include <
ost/mol/residue_view.hh
>
37
38
#include <
ost/seq/module_config.hh
>
39
#include <
ost/seq/invalid_sequence.hh
>
40
namespace
ost {
namespace
seq {
namespace
impl {
41
43
class
SequenceImpl
;
44
46
typedef
boost::shared_ptr<SequenceImpl>
SequenceImplPtr
;
47
49
class
DLLEXPORT_OST_SEQ
SequenceImpl
:
public
GenericPropContainerImpl
{
50
public
:
52
static
SequenceImplPtr
FromString(
const
String
& seq_name,
53
const
String
& sequence_string,
54
const
String
& role=
"UNKNOWN"
);
55
59
int
GetResidueIndex(
int
pos)
const
;
60
63
int
GetPos(
int
residue_index)
const
;
64
66
int
GetFirstNonGap()
const
;
67
69
int
GetLastNonGap()
const
;
70
71
const
String
& GetName()
const
;
72
73
void
SetName(
const
String
& name);
74
75
void
Cut(
int
start,
int
n);
76
77
void
ShiftRegion(
int
start,
int
end
,
int
amount);
78
const
String
&
GetString
()
const
{
79
return
seq_string_;
80
}
82
void
SetString(
const
String
& seq);
83
85
void
Replace(
const
String
& str,
int
start,
int
end);
86
88
String
GetGaplessString()
const
;
89
93
int
GetOffset()
const
;
94
95
int
GetIndex(
const
String
& substr)
const
;
101
void
SetOffset(
int
offset);
102
104
int
GetLength()
const
;
109
SequenceImpl
(
const
String
& seq_name,
const
String
& sequence_string,
110
const
String
& role);
111
113
char
GetOneLetterCode(
int
position)
const
;
114
115
void
SetOneLetterCode(
int
position,
char
new_char);
121
mol::ResidueView
GetResidue(
int
position)
const
;
122
124
mol::EntityView
GetAttachedView()
const
;
125
129
void
AttachView(
const
mol::EntityView
& view);
130
134
SequenceImplPtr
Copy()
const
;
138
void
AttachView(
const
mol::EntityView
& view,
const
String
& chain_name);
139
141
bool
HasAttachedView()
const
;
142
143
void
Append(
char
olc);
144
145
char
& operator[](
size_t
index)
146
{
147
return
seq_string_[index];
148
}
149
char
operator[](
size_t
index)
const
150
{
151
return
seq_string_[index];
152
}
153
const
String
& GetRole()
const
154
{
155
return
seq_role_;
156
}
157
158
void
SetRole(
const
String
& role)
159
{
160
seq_role_=role;
161
}
162
private
:
163
169
void
ShiftsFromSequence();
170
171
172
int
GetPosNoBounds(
int
index)
const
;
173
174
static
bool
IsSequenceStringSane(
const
String
& seq_string);
175
176
typedef
struct
{
177
int
start;
178
int
shift;
179
}
Shift
;
180
String
seq_name_;
181
String
seq_string_;
182
String
seq_role_;
183
std::list<Shift> shifts_;
184
bool
editing_;
185
int
offset_;
186
mol::EntityView
attached_view_;
187
};
188
190
typedef
std::vector<SequenceImplPtr>
SequenceList
;
191
192
#if(OST_INFO_ENABLED)
193
194
SequenceImplPtr
DLLEXPORT_OST_SEQ
SequenceImplFromInfo(
const
info::InfoGroup
& group);
195
197
void
DLLEXPORT_OST_SEQ
SequenceImplToInfo(
const
SequenceImplPtr
& sequence,
198
info::InfoGroup
& group);
199
#endif
200
201
202
}}}
//ns
203
#endif
204
Generated on Mon Nov 5 2012 13:31:06 for OpenStructure by
1.8.1.1