76 CBioseq_set::TSeq_set::iterator q, qe = bss.SetSeq_set().end();
77 for (q=bss.SetSeq_set().begin(); q!=qe; ++q) {
78 if (q->GetObject().IsSeq()) {
88 seqlist.push_back(sequence);
98 if (seqEntry.
IsSeq()) {
100 seqlist.push_back(sequence);
108 SeqEntryList::iterator s, se = seqEntries.end();
109 for (s=seqEntries.begin(); s!=se; ++s)
115 #define FIRSTOF2(byte) (((byte) & 0xF0) >> 4)
116 #define SECONDOF2(byte) ((byte) & 0x0F)
121 str->resize(vec.size() * 2);
123 str->resize(vec.size() * 2 - 1);
127 for (
i=0;
i<vec.size(); ++
i) {
133 for (
i=0;
i<
str->size(); ++
i) {
134 switch (
str->at(
i)) {
135 case 1:
str->at(
i) =
'A';
break;
136 case 2:
str->at(
i) =
'C';
break;
137 case 4:
str->at(
i) =
'G';
break;
138 case 8: isDNA ?
str->at(
i) =
'T' :
str->at(
i) =
'U';
break;
145 #define FIRSTOF4(byte) (((byte) & 0xC0) >> 6)
146 #define SECONDOF4(byte) (((byte) & 0x30) >> 4)
147 #define THIRDOF4(byte) (((byte) & 0x0C) >> 2)
148 #define FOURTHOF4(byte) ((byte) & 0x03)
152 str->resize(vec.size() * 4);
156 for (
i=0;
i<vec.size(); ++
i) {
164 for (
i=0;
i<
str->size(); ++
i) {
165 switch (
str->at(
i)) {
166 case 0:
str->at(
i) =
'A';
break;
167 case 1:
str->at(
i) =
'C';
break;
168 case 2:
str->at(
i) =
'G';
break;
169 case 3: isDNA ?
str->at(
i) =
'T' :
str->at(
i) =
'U';
break;
176 static const char *stdaaMap =
"-ABCDEFGHIKLMNPQRSTVWXYZU*OJ";
178 str->resize(vec.size());
179 for (
unsigned int i=0;
i<vec.size(); ++
i)
180 str->at(
i) = stdaaMap[(
unsigned int) vec[
i]];
184 m_bioseqASN(&bioseq), m_isProtein(
false)
187 if (bioseq.IsSetDescr()) {
188 string defline, taxid;
189 CSeq_descr::Tdata::const_iterator d, de = bioseq.GetDescr().Get().end();
190 for (d=bioseq.GetDescr().Get().begin(); d!=de; ++d) {
193 if ((*d)->IsTitle()) {
194 defline = (*d)->GetTitle();
195 }
else if (defline.size() == 0 && (*d)->IsPdb() && (*d)->GetPdb().GetCompound().size() > 0) {
196 defline = (*d)->GetPdb().GetCompound().front();
200 if ((*d)->IsSource()) {
201 if ((*d)->GetSource().GetOrg().IsSetTaxname())
202 taxid = (*d)->GetSource().GetOrg().GetTaxname();
203 else if ((*d)->GetSource().GetOrg().IsSetCommon())
204 taxid = (*d)->GetSource().GetOrg().GetCommon();
207 if (taxid.size() > 0)
209 if (defline.size() > 0) {
210 if (taxid.size() > 0)
220 if (bioseq.GetInst().GetSeq_data().IsNcbieaa()) {
223 }
else if (bioseq.GetInst().GetSeq_data().IsIupacaa()) {
226 }
else if (bioseq.GetInst().GetSeq_data().IsNcbistdaa()) {
232 else if (bioseq.GetInst().GetSeq_data().IsIupacna()) {
241 }
else if (bioseq.GetInst().GetSeq_data().IsNcbi4na()) {
244 }
else if (bioseq.GetInst().GetSeq_data().IsNcbi8na()) {
247 }
else if (bioseq.GetInst().GetSeq_data().IsNcbi2na()) {
250 if (bioseq.GetInst().IsSetLength() && bioseq.GetInst().GetLength() <
m_sequenceString.length())
255 THROW_MESSAGE(
"Sequence::Sequence(): confused by sequence format");
258 if (bioseq.GetInst().IsSetLength() && bioseq.GetInst().GetLength() !=
m_sequenceString.length())
259 THROW_MESSAGE(
"Sequence::Sequence() - sequence string length mismatch");
266 THROW_MESSAGE(
"Sequence::Sequence(): confused by sequence representation");
273 #define RETURN_FIRST_SEQID_THAT_(is) \
274 for (i=m_bioseqASN->GetId().begin(); i!=ie; ++i) \
280 CBioseq::TId::const_iterator
i, ie =
m_bioseqASN->GetId().end();
292 CBioseq::TId::const_iterator
i, ie =
m_bioseqASN->GetId().end();
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
std::list< ncbi::CRef< ncbi::objects::CSeq_entry > > SeqEntryList
std::list< ncbi::CRef< Sequence > > SequenceList
SequenceSet(SeqEntryList &seqEntries)
void UnpackSeqEntry(const objects::CSeq_entry &seqEntry)
std::string m_sequenceString
std::string m_description
const ncbi::objects::CSeq_id & GetPreferredIdentifier(void) const
Sequence(ncbi::objects::CBioseq &bioseq)
ncbi::CRef< ncbi::objects::CBioseq > m_bioseqASN
bool MatchesSeqId(const ncbi::objects::CSeq_id &seqID) const
std::string IdentifierString(void) const
Include a standard set of the NCBI C++ Toolkit most basic headers.
bool Match(const CSeq_id &sid2) const
Match() - TRUE if SeqIds are equivalent.
static string GetStringDescr(const CBioseq &bioseq, EStringFormat fmt)
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_SCOPE(ns)
Define a new scope.
TSet & SetSet(void)
Select the variant.
bool IsSeq(void) const
Check if variant Seq is selected.
TSeq & SetSeq(void)
Select the variant.
@ eRepr_raw
continuous sequence
@ eMol_na
just a nucleic acid
unsigned int
A callback function used to compare two keys in a database.
The NCBI C++/STL use hints.
NCBI C++ stream class wrappers for triggering between "new" and "old" C++ stream libraries.
static const char * str(char *buf, int n)
#define THROW_MESSAGE(str)
static void StringFromStdaa(const vector< char > &vec, string *str)
static void StringFrom4na(const vector< char > &vec, string *str, bool isDNA)
static void UnpackSeqSet(CBioseq_set &bss, SequenceSet::SequenceList &seqlist)
#define RETURN_FIRST_SEQID_THAT_(is)
static void StringFrom2na(const vector< char > &vec, string *str, bool isDNA)
static void UnpackSeqEntry(CSeq_entry &seqEntry, SequenceSet::SequenceList &seqlist)