66 #define NCBI_USE_ERRCODE_X Objtools_Rd_Phrap
90 "ReadPhrap: failed to read " + err_msg,
99 const string kOldNameCompFlag =
".comp";
101 name.size() - kOldNameCompFlag.size();
255 char next =
in.eof() ?
' ' :
in.peek();
258 "ReadPhrap: invalid data length for " +
m_Name +
".",
281 while (unpadded <= pad->
first -
pad->second) {
285 return unpadded +
pad->second;
304 return padded -
pad->second;
354 desc->
SetComment(
"Complemented flag ignored");
360 descr->
Set().push_back(desc);
372 feat->
SetData().SetImp().SetKey(
"gap_set");
385 TSeqPos pos = pad_it->first - pad_it->second;
398 annot->
SetData().SetFtable().push_back(feat);
466 m_HiQualRange(
TRange::GetEmpty()),
500 if (start > 0 && stop > 0) {
508 if (start > 0 && stop > 0) {
518 "ReadPhrap: DS redifinition for " +
GetName() +
".",
525 bool in_time =
false;
526 ITERATE(list<string>, it, values) {
527 if (*it ==
"CHROMAT_FILE:") {
530 else if (*it ==
"PHD_FILE:") {
533 else if (*it ==
"CHEM:") {
536 else if (*it ==
"DYE:") {
539 else if (*it ==
"TEMPLATE:") {
542 else if (*it ==
"DIRECTION:") {
545 else if (*it ==
"TIME:") {
573 if (
in.get() !=
'}') {
575 "ReadPhrap: '}' expected after RT tag",
604 "ReadPhrap: invalid number of RT tags for " +
GetName() +
".",
626 loc.
SetInt().SetFuzz_from().
627 SetP_m(
tag.m_End - unpadded_end);
628 loc.
SetInt().SetFuzz_to().
629 SetP_m(
tag.m_Start - unpadded_start);
633 loc.
SetInt().SetFrom(unpadded_start);
636 loc.
SetInt().SetFuzz_from().
637 SetP_m(
tag.m_Start - unpadded_start);
638 loc.
SetInt().SetFuzz_to().
639 SetP_m(
tag.m_End - unpadded_end);
642 annot->
SetData().SetFtable().push_back(feat);
660 feat->
SetData().SetImp().SetKey(
"high_quality_segment");
670 loc.
SetInt().SetFuzz_from().
672 loc.
SetInt().SetFuzz_to().
677 loc.
SetInt().SetFrom(start);
680 loc.
SetInt().SetFuzz_from().
682 loc.
SetInt().SetFuzz_to().
686 annot->
SetData().SetFtable().push_back(feat);
690 feat->
SetData().SetImp().SetKey(
"aligned_segment");
705 loc.
SetInt().SetFrom(start);
712 annot->
SetData().SetFtable().push_back(feat);
745 descr->
Set().push_back(desc);
750 descr->
Set().push_back(desc);
755 descr->
Set().push_back(desc);
760 descr->
Set().push_back(desc);
765 descr->
Set().push_back(desc);
770 descr->
Set().push_back(desc);
775 descr->
Set().push_back(desc);
778 if ( descr && !descr->
Get().empty() ) {
930 bool complemented =
false;
934 in >> name >> c >> start;
936 complemented = (c ==
'C');
940 in >> name >> start >> stop;
951 "ReadPhrap: invalid sequence type (" +
GetName() +
").",
960 read->AddReadLoc(start, complemented);
967 if ( read->second->IsCircular() ) {
998 list<string>::const_iterator
f = fields.begin();
1001 if (
f == fields.end()) {
1003 "ReadPhrap: incomplete CT tag for " +
GetName() +
".",
1008 if (
f == fields.end()) {
1010 "ReadPhrap: incomplete CT tag for " +
GetName() +
".",
1015 if (
f == fields.end()) {
1017 "ReadPhrap: incomplete CT tag for " +
GetName() +
".",
1021 if (
ct.m_Start > 0) {
1025 if (
f == fields.end()) {
1027 "ReadPhrap: incomplete CT tag for " +
GetName() +
".",
1035 if (
f == fields.end()) {
1037 "ReadPhrap: incomplete CT tag for " +
GetName() +
".",
1042 ct.m_NoTrans = (
f != fields.end() && *
f ==
"NoTrans");
1046 if (
ct.m_Type ==
"oligo") {
1048 in >>
ct.m_Oligo.m_Name
1049 >>
ct.m_Oligo.m_Data
1050 >>
ct.m_Oligo.m_MeltTemp
1054 ct.m_Oligo.m_Complemented = (c ==
'C');
1055 if (
ct.m_Oligo.m_Data.size() !=
ct.m_End -
ct.m_Start + 1) {
1057 "ReadPhrap: invalid oligo data length.",
1063 ct.m_Comments.push_back(c);
1088 graph->
SetGraph().SetByte().SetMin(0);
1089 graph->
SetGraph().SetByte().SetMax(max_val);
1090 graph->
SetGraph().SetByte().SetAxis(0);
1092 annot->
SetData().SetGraph().push_back(graph);
1093 bioseq.
SetAnnot().push_back(annot);
1121 TSeqPos pad = pad_it->first - pad_it->second;
1122 if (
pad <= ustart) {
1130 if (
len > aln_len) {
1133 if (pstart +
len > global_stop) {
1134 len = global_stop - pstart;
1136 rg.Set(pstart, pstart +
len - 1);
1138 info.m_Start = ustart;
1140 aln_starts.
insert(rg.GetFrom());
1141 aln_starts.
insert(rg.GetToOpen());
1144 if ( (aln_len -=
len) == 0) {
1150 if (
len > 0 && pstart < global_stop) {
1151 if (pstart +
len > global_stop) {
1152 len = global_stop - pstart;
1154 rg.Set(pstart, pstart +
len - 1);
1156 info.m_Start = ustart;
1157 aln_starts.
insert(rg.GetFrom());
1158 aln_starts.
insert(rg.GetToOpen());
1181 dseg.
SetIds().push_back((*row)->GetId());
1184 size_t data_size = 0;
1187 starts.resize(dim*aln_starts.
size(), -1);
1202 size_t row_count = 0;
1203 for ( ; rg_it; ++rg_it) {
1207 size_t idx = data_size +
info.m_SeqIndex;
1212 info.m_Start + aln_rg.GetFrom() - *seg_end;
1216 starts[idx] =
info.m_Start + *seg_start - aln_rg.GetFrom();
1220 if (row_count < 2) {
1224 for (
size_t row = 0; row < size_t(dim); row++) {
1225 strands[data_size + row] = (rows[row]->IsComplemented()) ?
1228 dseg.
SetLens().push_back(*seg_end - *seg_start);
1232 starts.resize(data_size);
1233 strands.resize(data_size);
1270 *
this, 0, 0, aln_map, aln_starts) ) {
1279 read, dim, start, aln_map, aln_starts)) {
1290 annot->
SetData().SetAlign().push_back(align);
1291 bioseq_set.
SetAnnot().push_back(annot);
1314 *
this, 0, 0, aln_map, aln_starts);
1316 read, dim, start, aln_map, aln_starts) ) {
1326 annot->
SetData().SetAlign().push_back(align);
1328 bioseq_set.
SetAnnot().push_back(annot);
1347 *
this, 0, 0, aln_map, aln_starts) ) {
1356 read, dim, start, aln_map, aln_starts)) {
1367 annot->
SetData().SetAlign().push_back(align);
1369 bioseq_set.
SetAnnot().push_back(annot);
1385 "ReadPhrap: referenced read " + bs_set->first +
" not found.",
1400 TSeqPos start = bs->m_Start - rd_start;
1401 TSeqPos stop = bs->m_End - rd_start;
1402 start = read->GetUnpaddedPos(start);
1403 stop = read->GetUnpaddedPos(stop);
1407 bs_feat->
SetData().SetImp().SetKey(
"base_segment");
1409 loc.
SetInt().SetId(*read->GetId());
1410 if ( read->IsComplemented() ) {
1411 loc.
SetInt().SetFrom(read->GetUnpaddedLength() - stop - 1);
1412 loc.
SetInt().SetTo(read->GetUnpaddedLength() - start - 1);
1416 loc.
SetInt().SetFrom(start);
1417 loc.
SetInt().SetTo(stop);
1425 prod.
SetInt().SetFrom(start);
1426 prod.
SetInt().SetTo(stop);
1427 annot->
SetData().SetFtable().push_back(bs_feat);
1443 read->second->GetAlignedFrom();
1444 while (rd_start < 0) {
1448 loc_feat->
SetData().SetImp().SetKey(
"read_start");
1450 TSeqPos aln_rd_start = read->second->GetUnpaddedPos(
1451 read->second->GetAlignedFrom());
1452 TSeqPos aln_rd_stop = read->second->GetUnpaddedPos(
1453 read->second->GetAlignedTo());
1454 loc.
SetInt().SetId(*read->second->GetId());
1455 loc.
SetInt().SetFrom(aln_rd_start);
1456 loc.
SetInt().SetTo(aln_rd_stop - 1);
1457 if ( read->second->IsComplemented() ) {
1461 loc.
SetInt().SetFuzz_from().
1462 SetP_m(read->second->GetAlignedFrom() - aln_rd_start);
1463 loc.
SetInt().SetFuzz_to().
1464 SetP_m(read->second->GetAlignedTo() - aln_rd_stop);
1468 read->second->GetAlignedTo() - read->second->GetAlignedFrom();
1493 prod.
SetInt().SetFuzz_from().
1494 SetP_m(rd_start - prod.
SetInt().GetFrom());
1495 prod.
SetInt().SetFuzz_to().
1496 SetP_m(rd_stop - prod.
SetInt().GetTo());
1499 annot->
SetData().SetFtable().push_back(loc_feat);
1516 title =
"created " +
tag.m_Date +
" by " +
tag.m_Program;
1517 if (
tag.m_NoTrans ) {
1518 title +=
" (NoTrans)";
1522 comment += (comment.empty() ?
"" :
" | ") + *c;
1524 if ( !comment.empty() ) {
1528 if ( !
tag.m_Oligo.m_Name.empty() ) {
1529 feat->
SetData().SetImp().SetDescr(
1530 tag.m_Oligo.m_Name +
" " +
1531 tag.m_Oligo.m_Data +
" " +
1532 tag.m_Oligo.m_MeltTemp +
" " +
1533 (
tag.m_Oligo.m_Complemented ?
"C" :
"U"));
1540 loc.
SetInt().SetFuzz_from().
1541 SetP_m(
tag.m_Start - loc.
SetInt().GetFrom());
1542 loc.
SetInt().SetFuzz_to().
1543 SetP_m(
tag.m_End - loc.
SetInt().GetTo());
1545 annot->
SetData().SetFtable().push_back(feat);
1558 bioseq.
SetAnnot().push_back(annot);
1572 if ( descr && !descr->
Get().empty() ) {
1587 cont_entry->
SetSeq(*bioseq);
1597 bioseq_set.
SetSeq_set().push_back(cont_entry);
1639 "ReadPhrap: unexpected tag.",
1747 const string& data);
1783 m_LastTag(ePhrap_not_set),
1795 "ReadPhrap: input stream no longer valid",
1804 "ReadPhrap: invalid data, AS tag expected.",
1815 "ReadPhrap: unrecognized extra-data, EOF expected.",
1879 if (str_tag ==
"AS") {
1882 else if (str_tag ==
"DNA") {
1885 else if (str_tag ==
"Sequence") {
1888 else if (str_tag ==
"BaseQuality") {
1897 "ReadPhrap: Can not autodetect ACE format version.",
1929 "ReadPhrap: duplicate AS tag.",
1981 "ReadPhrap: unknown tag.",
1993 if (str_tag ==
"DNA") {
1996 else if (str_tag ==
"Sequence") {
1999 else if (str_tag ==
"BaseQuality") {
2002 else if (str_tag ==
"Assembled_from") {
2005 else if (str_tag ==
"Assembled_from*") {
2008 else if (str_tag ==
"Base_segment") {
2011 else if (str_tag ==
"Base_segment*") {
2014 else if (str_tag ==
"Clipping") {
2017 else if (str_tag ==
"Clipping*") {
2022 "ReadPhrap: unknown tag.",
2038 "Referenced contig or read not found: " << name <<
".");
2041 return &*seq->second;
2050 "ReadPhrap: '{' expected after " +
tag +
" tag.",
2071 "ReadPhrap: '{' expected after WA tag.",
2093 string content = data;
2096 content += c +
"\n";
2110 "ReadPhrap: invalid data, contig tag expected.",
2117 m_Seqs[contig->GetName()] = contig;
2121 contig->ReadBaseQualities(
m_Stream);
2182 m_Seqs[read->GetName()] = read;
2205 "ReadPhrap: sequence type redifinition for " +
2206 seq.
GetName() +
" - was 'read'.",
2224 "ReadPhrap: sequence type redifinition for " +
2225 seq.
GetName() +
" - was 'contig'.",
2235 "ReadPhrap: sequence type redifinition for " +
2236 seq.
GetName() +
" - was 'contig'.",
2259 if ( !seq || seq->GetName() != seq_name ) {
2260 TSequences::iterator seq_it = seqs.find(seq_name);
2261 if (seq_it != seqs.end()) {
2262 seq = seq_it->second;
2266 seqs[seq_name] = seq;
2284 "ReadPhrap: unexpected tag.",
2340 "ReadPhrap: unexpected tag.",
2343 if ( read && contig ) {
2345 "ReadPhrap: sequence type redifinition.",
2363 ITERATE(vector<string>, c,
tag->m_Comments) {
2364 comment +=
" | " + *c;
2368 tag->m_Program +
" " +
2371 descr->
Set().push_back(desc);
2380 return reader.
Read();
User-defined methods of the data storage class.
User-defined methods of the data storage class.
User-defined methods of the data storage class.
EPhrapTag x_GetOldTag(void)
map< string, CRef< CPhrap_Seq > > TSeqs
vector< CRef< CPhrap_Contig > > TContigs
void x_ReadOldFormatData(void)
CRef< CSeq_entry > m_Entry
CRef< CPhrap_Contig > x_AddContig(CPhrap_Sequence &seq)
void x_SkipTag(const string &tag, const string &data)
EPhrapTag x_GetNewTag(void)
CRef< CPhrap_Read > x_AddRead(CPhrap_Sequence &seq)
vector< SAssmTag > TAssmTags
void x_ConvertContig(void)
TPhrapReaderFlags m_Flags
void x_CreateDesc(CBioseq_set &bioseq) const
void x_ReadTag(const string &tag)
void x_ReadOldSequence(CPhrap_Sequence &seq)
CPhrapReader(CNcbiIstream &in, TPhrapReaderFlags flags)
CPhrap_Seq * x_FindSeq(const string &name)
void x_UngetTag(EPhrapTag tag)
CRef< CSeq_entry > Read(void)
@ ePhrap_Base_segment_Pad
@ ePhrap_Assembled_from_Pad
void x_DetectFormatVersion(void)
CRef< CSeq_align > x_CreateSeq_align(TAlignMap &aln_map, TAlignStarts &aln_starts, TAlignRows &rows) const
vector< SContigTag > TContigTags
const TBaseQuals & GetBaseQualities(void) const
CPhrap_Read::TReads TReads
vector< SBaseSeg > TBaseSegs
void x_CreateGraph(CBioseq &bioseq) const
void x_CreateDesc(CBioseq &bioseq) const
map< string, TBaseSegs > TBaseSegMap
map< string, CRef< CPhrap_Seq > > TSeqs
void ReadReadLocation(CNcbiIstream &in, TSeqs &seqs)
bool IsCircular(void) const
void x_AddBaseSegFeats(CRef< CSeq_annot > &annot) const
vector< CConstRef< CPhrap_Seq > > TAlignRows
void x_CreateAlignAll(CBioseq_set &bioseq_set) const
CRef< CSeq_entry > CreateContig(int level) const
void x_CreateAlign(CBioseq_set &bioseq_set) const
void x_CreateAlignPairs(CBioseq_set &bioseq_set) const
bool x_AddAlignRanges(TSeqPos global_start, TSeqPos global_stop, const CPhrap_Seq &seq, size_t seq_idx, TSignedSeqPos offset, TAlignMap &aln_map, TAlignStarts &aln_starts) const
void ReadBaseSegment(CNcbiIstream &in)
set< TSeqPos > TAlignStarts
void x_AddTagFeats(CRef< CSeq_annot > &annot) const
void x_AddReadLocFeats(CRef< CSeq_annot > &annot) const
void Read(CNcbiIstream &in)
void ReadBaseQualities(CNcbiIstream &in)
void x_CreateFeat(CBioseq &bioseq) const
virtual void ReadTag(CNcbiIstream &in, char tag)
CPhrap_Contig(TPhrapReaderFlags flags)
void x_CreateAlignOptimized(CBioseq_set &bioseq_set) const
CRangeMultimap< SAlignInfo, TSeqPos > TAlignMap
void x_AddTagFeats(CRef< CSeq_annot > &annot) const
void x_CreateFeat(CBioseq &bioseq) const
CPhrap_Read(const string &name, TPhrapReaderFlags flags)
map< string, CRef< CPhrap_Read > > TReads
void x_AddQualityFeat(CRef< CSeq_annot > &annot) const
bool IsCircular(void) const
void x_CreateDesc(CBioseq &bioseq) const
void ReadQuality(CNcbiIstream &in)
CRange< TSignedSeqPos > TRange
CRef< CSeq_entry > CreateRead(void) const
void AddReadLoc(TSignedSeqPos start, bool complemented)
void ReadDS(CNcbiIstream &in)
virtual void ReadTag(CNcbiIstream &in, char tag)
virtual ~CPhrap_Read(void)
vector< SReadTag > TReadTags
void Read(CNcbiIstream &in)
TStart GetStart(void) const
void CreateComplementedDescr(CRef< CSeq_descr > &descr) const
void Read(CNcbiIstream &in)
CRef< CBioseq > CreateBioseq(void) const
void SetAligned(TSeqPos from, TSeqPos to)
void x_FillSeqData(CSeq_data &data) const
const TPadMap & GetPadMap(void) const
const string & GetName(void) const
void ReadData(CNcbiIstream &in)
TPhrapReaderFlags m_Flags
void CreatePadsFeat(CRef< CSeq_annot > &annot) const
TPhrapReaderFlags GetFlags(void) const
TSeqPos GetUnpaddedLength(void) const
bool IsComplemented(void) const
TSeqPos GetAlignedTo(void) const
TSeqPos GetAlignedFrom(void) const
void CopyFrom(CPhrap_Seq &seq)
map< TSeqPos, TSeqPos > TPadMap
friend class CPhrap_Sequence
CRef< CSeq_id > GetId(void) const
TSeqPos GetPaddedLength(void) const
TSeqPos GetPaddedPos(TSeqPos unpadded) const
bool FlagSet(EPhrapReaderFlags value) const
CPhrap_Seq(TPhrapReaderFlags flags)
virtual void ReadTag(CNcbiIstream &in, char tag)=0
virtual ~CPhrap_Seq(void)
const string & GetData(void) const
TSeqPos GetUnpaddedPos(TSeqPos padded, TSeqPos *link=0) const
void SetComplemented(bool value)
CRef< CPhrap_Contig > GetContig(void)
virtual void ReadTag(CNcbiIstream &in, char tag)
void SetRead(CPhrap_Read &read)
bool IsContig(void) const
CRef< CPhrap_Read > GetRead(void)
@Seq_descr.hpp User-defined methods of the data storage class.
namespace ncbi::objects::
static TSeqPos ReverseComplement(CSeq_data *in_seq, TSeqPos uBeginIdx=0, TSeqPos uLength=0)
static TSeqPos Pack(CSeq_data *in_seq, TSeqPos uLength=ncbi::numeric_limits< TSeqPos >::max())
container_type::const_iterator const_iterator
container_type::iterator iterator
const_iterator end() const
const_iterator lower_bound(const key_type &key) const
const_iterator find(const key_type &key) const
iterator_bool insert(const value_type &val)
const_iterator begin() const
const_iterator end() const
parent_type::const_iterator const_iterator
static DLIST_TYPE *DLIST_NAME() first(DLIST_LIST_TYPE *list)
static DLIST_TYPE *DLIST_NAME() next(DLIST_LIST_TYPE *list, DLIST_TYPE *item)
unsigned int TSeqPos
Type for sequence locations and lengths.
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
int TSignedSeqPos
Type for signed sequence position.
const TSeqPos kInvalidSeqPos
Define special value for invalid sequence position.
#define ERR_POST_X(err_subcode, message)
Error posting with default error code and given error subcode.
void Warning(CExceptionArgs_Base &args)
#define NCBI_THROW2(exception_class, err_code, message, extra)
Throw exception with extra parameter.
void SetPacked_int(TPacked_int &v)
CRef< C > Ref(C *object)
Helper functions to get CRef<> and CConstRef<> objects.
TObjectType * GetPointer(void) THROWS_NONE
Get pointer,.
void Reset(void)
Reset reference object.
TParent::value_type value_type
iterator insert(const value_type &value)
const_iterator begin(void) const
TThisType & Set(position_type from, position_type to)
TParent::range_type range_type
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define BEGIN_SCOPE(ns)
Define a new scope.
IO_PREFIX::istream CNcbiIstream
Portable alias for istream.
static int StringToInt(const CTempString str, TStringToNumFlags flags=0, int base=10)
Convert string to int.
static list< string > & Split(const CTempString str, const CTempString delim, list< string > &arr, TSplitFlags flags=0, vector< SIZE_TYPE > *token_pos=NULL)
Split a string using specified delimiters.
static SIZE_TYPE Find(const CTempString str, const CTempString pattern, ECase use_case=eCase, EDirection direction=eForwardSearch, SIZE_TYPE occurrence=0)
Find the pattern in the string.
static string & ToUpper(string &str)
Convert string to upper case – string& version.
static string TruncateSpaces(const string &str, ETrunc where=eTrunc_Both)
Truncate spaces in a string.
@ fSplit_MergeDelimiters
Merge adjacent delimiters.
TTo GetTo(void) const
Get the To member data.
TFrom GetFrom(void) const
Get the From member data.
TStr & SetStr(void)
Select the variant.
TStr & SetStr(void)
Select the variant.
TLens & SetLens(void)
Assign a value to Lens data member.
void SetSegs(TSegs &value)
Assign a value to Segs data member.
vector< ENa_strand > TStrands
void SetDim(TDim value)
Assign a value to Dim data member.
vector< TSignedSeqPos > TStarts
void SetDim(TDim value)
Assign a value to Dim data member.
void SetType(TType value)
Assign a value to Type data member.
TStarts & SetStarts(void)
Assign a value to Starts data member.
TStrands & SetStrands(void)
Assign a value to Strands data member.
void SetNumseg(TNumseg value)
Assign a value to Numseg data member.
TIds & SetIds(void)
Assign a value to Ids data member.
@ eType_partial
mapping pieces together
void SetLocation(TLocation &value)
Assign a value to Location data member.
void SetComment(const TComment &value)
Assign a value to Comment data member.
void SetProduct(TProduct &value)
Assign a value to Product data member.
void SetTitle(const TTitle &value)
Assign a value to Title data member.
void SetData(TData &value)
Assign a value to Data data member.
TFrom GetFrom(void) const
Get the From member data.
void SetId(TId &value)
Assign a value to Id data member.
TPoints & SetPoints(void)
Assign a value to Points data member.
void SetFuzz_to(TFuzz_to &value)
Assign a value to Fuzz_to data member.
void SetFuzz_from(TFuzz_from &value)
Assign a value to Fuzz_from data member.
TLocal & SetLocal(void)
Select the variant.
TTo GetTo(void) const
Get the To member data.
void SetTitle(const TTitle &value)
Assign a value to Title data member.
void SetNumval(TNumval value)
Assign a value to Numval data member.
void SetGraph(TGraph &value)
Assign a value to Graph data member.
void SetLoc(TLoc &value)
Assign a value to Loc data member.
TSet & SetSet(void)
Select the variant.
TAnnot & SetAnnot(void)
Assign a value to Annot data member.
void SetLevel(TLevel value)
Assign a value to Level data member.
bool IsSet(void) const
Check if variant Set is selected.
void SetClass(TClass value)
Assign a value to Class data member.
void SetDescr(TDescr &value)
Assign a value to Descr data member.
TSeq & SetSeq(void)
Select the variant.
TSeq_set & SetSeq_set(void)
Assign a value to Seq_set data member.
@ eClass_conset
constructed sequence + parts
void SetData(TData &value)
Assign a value to Data data member.
TId & SetId(void)
Assign a value to Id data member.
TAnnot & SetAnnot(void)
Assign a value to Annot data member.
const Tdata & Get(void) const
Get the member data.
TIupacna & SetIupacna(void)
Select the variant.
TComment & SetComment(void)
Select the variant.
void SetInst(TInst &value)
Assign a value to Inst data member.
void SetDescr(TDescr &value)
Assign a value to Descr data member.
Tdata & Set(void)
Assign a value to data member.
void SetLength(TLength value)
Assign a value to Length data member.
void SetSeq_data(TSeq_data &value)
Assign a value to Seq_data data member.
TCreate_date & SetCreate_date(void)
Select the variant.
void SetMol(TMol value)
Assign a value to Mol data member.
@ eRepr_consen
consensus sequence or pattern
@ eRepr_raw
continuous sequence
std::istream & in(std::istream &in_, double &x_)
double f(double x_, const double &y_)
const TSeqPos kMaxSegLength
string ReadLine(CNcbiIstream &in)
void CheckStreamState(CNcbiIstream &in, string err_msg)
CRef< CSeq_entry > ReadPhrap(CNcbiIstream &in, TPhrapReaderFlags flags)
bool IsOldComplementedName(const string &name)
@ fPhrap_AlignAll
global all-in-one alignment
@ fPhrap_FeatBaseSegs
add features with base segments
@ fPhrap_AlignPairs
separate alignment for each trace
@ fPhrap_NoComplement
ignore "complemented" flags of traces.
@ fPhrap_FeatGaps
add features with list of gaps
@ fPhrap_NewVersion
force new ACE format
@ fPhrap_Descr
add descriptors (DS, WA)
@ fPhrap_PadsToFuzz
Add int-fuzz.p-m to indicate padded coordinates offset.
@ fPhrap_FeatReadLocs
add padded read starts
@ fPhrap_FeatQuality
add quality/alignment features
@ fPhrap_AlignOptimized
split global alignment into parts
@ fPhrap_OldVersion
force old ACE format
@ fPhrap_FeatTags
convert CT and RT tags to features
@ fPhrap_PackSeqData
use best coding to pack sequence data
@ fPhrap_Align
mask for alignment flags, not a value
vector< string > m_Comments
vector< string > m_Comments