54 #if defined(VERBOSE_DEBUG)
55 ofstream
out(fname.c_str());
57 throw runtime_error(
"Failed to open" + fname);
66 if ( !(*s)->CanGetId() ) {
71 const string score_type = (*s)->GetId().GetStr();
72 if (score_type ==
"score") {
73 retval.
score = (*s)->GetValue().GetInt();
74 }
else if (score_type ==
"e_value") {
75 retval.
evalue = (*s)->GetValue().GetReal();
76 }
else if (score_type ==
"bit_score") {
77 retval.
bit_score = (*s)->GetValue().GetReal();
78 }
else if (score_type ==
"num_ident") {
79 retval.
num_ident = (*s)->GetValue().GetInt();
86 string fname(
"densegconvert.asn");
90 throw runtime_error(
"Invalid number of dimensions");
96 copy(denseg.GetStarts().begin(),
97 denseg.GetStarts().end(),
98 back_inserter(retval.
starts));
100 copy(denseg.GetLens().begin(),
101 denseg.GetLens().end(),
102 back_inserter(retval.
lengths));
107 _ASSERT(ids.size() == (
size_t)denseg.GetDim());
110 if (query_id->
IsGi()) {
115 if (subj_id->
IsGi()) {
123 string fname(
"seqalignconvert.asn");
127 throw runtime_error(
"Seq-align is not of partial type");
130 throw runtime_error(
"Invalid number of dimensions");
137 switch (segs.
Which()) {
146 throw runtime_error(
"Std-seg support is not implemented");
150 throw runtime_error(
"Unsupported alignment data type");
155 std::vector<SeqAlign>& retval)
157 string fname(
"blastseqalignconvert.asn");
162 retval.push_back(neutral_seqalign);
166 std::vector<SeqAlign>& retval)
168 if ( !ss.CanGet() ) {
169 throw runtime_error(
"Empty Seq-align-set");
User-defined methods of the data storage class.
std::ofstream out("events_result.xml")
main entry point for tests
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define MSerial_AsnText
I/O stream manipulators –.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_SCOPE(ns)
Define a new scope.
const TDenseg & GetDenseg(void) const
Get the variant data.
E_Choice Which(void) const
Which variant is currently selected.
vector< CRef< CScore > > TScore
vector< CRef< CSeq_id > > TIds
bool IsStd(void) const
Check if variant Std is selected.
list< CRef< CSeq_align > > Tdata
bool IsDenseg(void) const
Check if variant Denseg is selected.
@ eType_partial
mapping pieces together
TGi GetGi(void) const
Get the variant data.
bool IsGi(void) const
Check if variant Gi is selected.
Magic spell ;-) needed for some weird compilers... very empiric.
void copy(Njn::Matrix< S > *matrix_, const Njn::Matrix< T > &matrix0_)
void DensegConvert(const objects::CDense_seg &denseg, SeqAlign &retval)
void s_PrintTextAsnObject(const string fname, const T &obj)
void SetScores(const CSeq_align::TScore &scores, SeqAlign &retval)
void SeqAlignConvert(const objects::CSeq_align &sa, SeqAlign &retval)
void BlastSeqAlignSetConvert(const objects::CSeq_align &sa, std::vector< SeqAlign > &retval)
void SeqAlignSetConvert(const objects::CSeq_align_set &ss, std::vector< SeqAlign > &retval)
Converts a Seq-align-set into a neutral seqalign for use with the CSeqAlignCmp class.
Neutral sequence alignment (for representing an HSP in BLAST)
std::vector< TSeqPos > lengths
Lengths of aligned segments.
double bit_score
HSP bit score.
int num_ident
Number of identical residues.
CAlignedGis sequence_gis
Gis of the aligned sequences.
std::vector< int > starts
Query/Subject starting offsets.
int query_strand
Strand of the query sequence.
int subject_strand
Strand of the subject sequence.