static void UnpackSeqEntry(CSeq_entry& seqEntry, SequenceSet *parent, SequenceSet::SequenceList& seqlist) { if (seqEntry.IsSeq()) { const Sequence *sequence = new Sequence(parent, seqEntry.SetSeq()); if (!sequence || !sequence->identifier) FATALMSG("Can't create Sequence object, aborting..."); seqlist.push_back(sequence); } else { // Bioseq-set UnpackSeqSet(seqEntry.SetSet(), parent, seqlist); } }
void SequenceSet::UnpackSeqEntry(const CSeq_entry& seqEntry) { if (seqEntry.IsSeq()) { const Sequence *sequence = new Sequence(seqEntry.GetSeq()); if (!sequence || sequence->Status() != CAV_SUCCESS) { status = sequence->Status(); return; } sequences.push_back(sequence); } else { // Bioseq-set UnpackSeqSet(seqEntry.GetSet()); } }
void SequenceTable::addSequences(CSeq_entry& seqEntry) { if (seqEntry.IsSet()) { list< CRef< CSeq_entry > >& seqSet = seqEntry.SetSet().SetSeq_set(); list< CRef< CSeq_entry > >::iterator it = seqSet.begin(); for (; it != seqSet.end(); it++) addSequences(*(*it)); } else { CRef< CBioseq > bioseq(&(seqEntry.SetSeq())); addSequence(bioseq); } }
/**\internal **\brief Get a FASTA formatted id string (the first available) from the ** CSeq_entry structure. ** **\param entry sequence description structure **\return the first id string corresponding to entry **/ static const string GetIdString( const CSeq_entry & entry ) { CRef<CObjectManager> om(CObjectManager::GetInstance()); const CBioseq & seq = entry.GetSeq(); CRef<CScope> scope(new CScope(*om)); CSeq_entry_Handle seh = scope->AddTopLevelSeqEntry( const_cast< CSeq_entry & >( entry ) ); return CWinMaskSeqTitle::GetId( seh, seq ); /* list< CRef< CSeq_id > > idlist = seq.GetId(); if( idlist.empty() ) return "???"; else { CNcbiOstrstream os; (*idlist.begin())->WriteAsFasta( os ); return CNcbiOstrstreamToString(os); } */ }