57 const CScore& score = **it;
82 CSeq_align::TScore::iterator
i = new_align->
SetScore().begin();
83 for ( ;
i != new_align->
SetScore().end(); ) {
92 new_aligns.push_back(new_align);
113 list<CConstRef<CSeq_id> > unresolved_subjects;
114 const string& rid(RemoteBlast->GetRID());
115 const string& rid_title(RemoteBlast->GetTitle());
119 TAlign& an_align = results.
Set();
120 string sProjectItemBaseName(rid_title.empty() ?
"BLAST Results for: " + rid_title :
"BLAST Results, RID: " + rid);
122 bool is_db_search = RemoteBlast->IsDbSearch();
124 bool write_local_seq =
false;
138 bool report_total =
true;
140 TAlignSetMap align_set_map;
142 for ( TAlign::iterator it = an_align.begin(); it != an_align.end(); ++it) {
149 if (filter.
size() && filter.
find(target_id_str) == filter.
end()) {
159 curr_set->
Set().push_back(*it);
161 list< CRef<CSeq_align> > new_aligns;
165 if (new_aligns.size()) {
166 an_align.insert(it, new_aligns.begin(), new_aligns.end());
181 report_total =
false;
189 if(!is_db_search || !scope->GetBioseqHandle(target_id)) {
198 TAlignSetMap cleanup_align_set_map;
202 cleanup.SortInputsByScore(
true);
206 ITERATE(TAlignSetMap, aln_set_iter, align_set_map) {
208 cleanup.Cleanup(aln_set_iter->second->Get(), aligns_out_tmp,
211 if ( !aligns_out_tmp.empty() && aligns_out_tmp.size() != aln_set_iter->second->Get().size() ) {
213 aln_set->
Set() = aligns_out_tmp;
214 cleanup_align_set_map.insert(
222 string annot_base_name(sProjectItemBaseName +
", Query: " + aln_set_iter->first);
226 TAlignSetMap::iterator cleaned_iter = cleanup_align_set_map.find(aln_set_iter->first);
227 if (cleaned_iter != cleanup_align_set_map.end()) {
229 annot->
SetData().SetAlign() = cleaned_iter->second->Set();
230 annot->
SetNameDesc(
"Cleaned Alignments - " + annot_base_name);
240 annot->
SetData().SetAlign() = aln_set_iter->second->Set();
260 bool found_in_scope =
false;
261 for (
auto seq_id : ids) {
262 if (scope->GetBioseqHandle(*seq_id)) {
263 found_in_scope =
true;
267 if (found_in_scope)
continue;
279 if (unresolved_subjects.size()) {
288 blast::CBlastScopeSource bss(bdlc, objMgr);
289 bss.AddDataLoaders(blast_scope);
307 list<CRef<CBioseq> > subjects = RemoteBlast->GetSubjectSequences();
311 entry->
SetSeq(*bioseq_ref);
User-defined methods of the data storage class.
Declares CBlastScopeSource class to create properly configured CScope objects to invoke the BLAST dat...
class CAlignCleanup implements an alignment cleanup utility based on the C++ alignment manager.
list< CRef< CSeq_align > > TAligns
bool IsProtein() const
Returns true if the database is protein.
size_t GetNumQueries() const
Retrieve the number of queries in this object.
CDataLoadingAppJob - a base class for Jobs loading data into projects.
void AddProjectItem(objects::CProjectItem &item)
void AddTag(const string &tag)
void SetObject(CSerialObject &object)
wrapper for setting the object pointed to by this item
TSeqPos GetSeqStop(TDim row) const
const CSeq_id & GetSeq_id(TDim row) const
Get seq-id (the first one if segments have different ids).
TSeqPos GetSeqStart(TDim row) const
void SetNameDesc(const string &name)
void SetCreateDate(const CTime &dt)
void GetLabel(string *label, ELabelType type) const
Base class for all serializable objects.
const_iterator find(const key_type &key) const
const_iterator end() const
static void cleanup(void)
#define GI_FROM(T, value)
unsigned int TSeqPos
Type for sequence locations and lengths.
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define NON_CONST_ITERATE(Type, Var, Cont)
Non constant version of ITERATE macro.
static void AddProjectItemsFromRID(CRef< objects::CScope > scope, CSeq_align_set &results, bool isFindComp, CRef< blast::CRemoteBlast > RemoteBlast, const set< string > &filter, CDataLoadingAppJob &job, SRIDStatInfo &RIDStatInfo)
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
const string AsFastaString(void) const
void GetLabel(string *label, ELabelType type=eDefault, TLabelFlags flags=fLabel_Default) const
Append a label for this Seq-id to the supplied string.
TRange GetTotalRange(void) const
static CRef< CObjectManager > GetInstance(void)
Return the existing object manager or create one.
CConstRef< CBioseq > GetCompleteBioseq(void) const
Get the complete bioseq.
void Reset(void)
Reset reference object.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
@ eCurrent
Use current time. See also CCurrentTime.
static const char label[]
bool IsSeq_loc_list(void) const
Check if variant Seq_loc_list is selected.
const TName & GetName(void) const
Get the Name member data.
TBioseq_set & SetBioseq_set(void)
Select the variant.
bool IsBioseq_set(void) const
Check if variant Bioseq_set is selected.
const TSeq_loc_list & GetSeq_loc_list(void) const
Get the variant data.
TTo GetTo(void) const
Get the To member data.
TFrom GetFrom(void) const
Get the From member data.
void SetLabel(const TLabel &value)
Assign a value to Label data member.
bool IsStr(void) const
Check if variant Str is selected.
const TStr & GetStr(void) const
Get the variant data.
Tdata & Set(void)
Assign a value to data member.
TScore & SetScore(void)
Assign a value to Score data member.
E_Choice Which(void) const
Which variant is currently selected.
vector< CRef< CScore > > TScore
void SetSegs(TSegs &value)
Assign a value to Segs data member.
TInt GetInt(void) const
Get the variant data.
const TValue & GetValue(void) const
Get the Value member data.
bool IsSetScore(void) const
for whole alignment Check if a value has been assigned to Score data member.
const TScore & GetScore(void) const
Get the Score member data.
const TId & GetId(void) const
Get the Id member data.
const TSegs & GetSegs(void) const
Get the Segs member data.
E_Choice Which(void) const
Which variant is currently selected.
bool IsWhole(void) const
Check if variant Whole is selected.
const TSeq & GetSeq(void) const
Get the variant data.
bool IsSeq(void) const
Check if variant Seq is selected.
list< CRef< CSeq_entry > > TSeq_set
TSeq & SetSeq(void)
Select the variant.
TSeq_set & SetSeq_set(void)
Assign a value to Seq_set data member.
void SetData(TData &value)
Assign a value to Data data member.
const TId & GetId(void) const
Get the Id member data.
list< CRef< CSeq_align > > TAlign
bool IsSetId(void) const
equivalent identifiers Check if a value has been assigned to Id data member.
double value_type
The numeric datatype used by the parser.
static void sPrepareSeqAlign(CSeq_align &align, list< CRef< CSeq_align > > &new_aligns)
static const string kBLASTProjectItemTag