CFileSorter(
TMapFunctionToVecOfTests* out_pMapFunctionToVecOfTests) : m_pMapFunctionToVecOfTests(out_pMapFunctionToVecOfTests) { }
89 voidoperator()(
const CDirEntry& dir_entry) {
90 if( ! dir_entry.
IsFile() ) {
95 static const char* arrAllowedExtensions[] = {
98 boolbHasAllowedExtension =
false;
100ii <
sizeof(arrAllowedExtensions)/
sizeof(arrAllowedExtensions[0]);
104bHasAllowedExtension =
true;
107 if( ! bHasAllowedExtension ) {
114vector<string> tokens;
117 if( tokens.size() != 4u ) {
118 throwstd::runtime_error(
"initialization failed trying to tokenize this file: "+
file.GetName());
121 const string& sFunction = tokens[0];
122 const string& sTestName = tokens[1];
123 const string& sStage = tokens[2];
124 const string& sSuffix = tokens[3];
125 if( sSuffix !=
"asn") {
126cout <<
"Skipping file with unknown suffix: "<<
file.GetName() << endl;
130 const boolbInsertSuccessful =
131(*m_pMapFunctionToVecOfTests)[sFunction][sTestName].insert(
135 if( ! bInsertSuccessful ) {
136 throwstd::runtime_error(
"initialization failed: duplicate file name: "+
file.GetName() );
149ifstream in_file(sFilename.c_str());
150BOOST_REQUIRE(in_file.good());
156 bools_AreSeqEntriesEqualAndPrintIfNot(
160 const boolbEqual = entry1.
Equals(entry2);
163cerr <<
"These entries should be equal but they aren't: "<< endl;
175 static constvector<string> kEmptyStringVec;
178CFileSorter file_sorter(&s_mapFunctionToVecOfTests);
180 CDirtest_cases_dir(
"./entry_edit_test_cases");
182kEmptyStringVec, kEmptyStringVec,
187cout <<
"List of tests found and their associated files: "<< endl;
189s_mapFunctionToVecOfTests )
191cout <<
"FUNC: "<< func_to_vec_of_tests_it->first << endl;
193func_to_vec_of_tests_it->second )
195cout <<
"\tTEST NAME: "<< test_name_to_files_it->first << endl;
197cout <<
"\t\tSTAGE: "<< test_file_it->first <<
" (file path: "<< test_file_it->second.GetPath() <<
")"<< endl;
208BOOST_CHECK_EQUAL(
"No descriptors",
"Expected descriptors");
211 intnum_user_descriptors_found = 0;
213 if((*it)->IsUser()) {
216BOOST_CHECK_EQUAL(usr.
GetData()[0]->GetLabel().GetStr(),
"LocalId");
218num_user_descriptors_found++;;
221BOOST_CHECK_EQUAL(num_user_descriptors_found, 1);
231 id->Assign(collide);
232(*it)->SetSeq().SetId().push_back(
id);
264BOOST_CHECK_EQUAL(entry1->
GetSeq().
GetId().front()->GetLocal().GetStr(),
"good");
265BOOST_CHECK_EQUAL(entry2->
GetSeq().
GetId().front()->GetLocal().GetStr(),
"good_1");
274BOOST_CHECK_EQUAL(entry1->
GetSeq().
GetId().front()->GetLocal().GetStr(),
"good");
275BOOST_CHECK_EQUAL(entry2->
GetSeq().
GetId().front()->GetLocal().GetStr(),
"good_1");
276BOOST_CHECK_EQUAL(entry3->
GetSeq().
GetId().front()->GetLocal().GetStr(),
"good_2");
288 shortcount_users = 0;
293BOOST_CHECK(count_users == 0);
297 id->SetDdbj().SetAccession(
"X");
301 id->SetEmbl().SetAccession(
"X");
305 id->SetGenbank().SetAccession(
"X");
309 id->SetOther().SetAccession(
"X");
313 id->SetGeneral().SetDb(
"Y");
314 id->SetGeneral().SetTag().SetStr(
"X");
322BOOST_CHECK_EQUAL(ds.
IsLiteral(),
true);
332 stringseq_str =
"";
333 ITERATE(vector<string>, it, segs) {
336 size_torig_len = seq_str.length();
341 id->Assign(*(entry->
GetSeq().
GetId().front()));
347f1->
SetData().SetImp().SetKey(
"misc_feature");
348f1->
SetLocation().SetInt().SetId().Assign(*
id);
351annot->
SetData().SetFtable().push_back(f1);
356brk->
SetLoc().SetInt().SetId().Assign(*
id);
357brk->
SetLoc().SetInt().SetFrom(54);
358brk->
SetLoc().SetInt().SetTo(56);
359f2->
SetData().SetCdregion().SetCode_break().push_back(brk);
360f2->
SetLocation().SetInt().SetId().Assign(*
id);
363annot->
SetData().SetFtable().push_back(f2);
370interval.
SetId().Assign(*
id);
375 ITERATE(vector<string>, it, segs) {
376 if(
NStr::Find(*it,
"N") == string::npos) {
378l1->
SetInt().SetFrom(pos);
379l1->
SetInt().SetTo(pos + it->length() - 1);
380l1->
SetInt().SetId().Assign(*
id);
398CSeq_ext::TDelta::Tdata::const_iterator ds_it = inst.
GetExt().
GetDelta().
Get().begin();
416segs.push_back(
"AAAAAAAAAAAAAAAAAAAAAAAA");
417segs.push_back(
"NNNNNNNNNNNNNNN");
418segs.push_back(
"TTTTTTTT");
419segs.push_back(
"NNNNN");
420segs.push_back(
"TTTTTTTTTT");
424 ITERATE(vector<string>, it, segs) {
425 if(
NStr::Find(*it,
"N") != string::npos) {
426is_gap.push_back(
true);
427 if((*it).length() == 5) {
430lens.push_back((*it).length());
433is_gap.push_back(
false);
434lens.push_back((*it).length());
448BOOST_CHECK_EQUAL(inst.
GetLength(), orig_len - 5 + 100);
449CSeq_ext::TDelta::Tdata::const_iterator ds_it = inst.
GetExt().
GetDelta().
Get().begin();
450vector<bool>::iterator is_gap_it = is_gap.begin();
451vector<size_t>::iterator len_it = lens.begin();
462 if((*it)->GetLiteral().GetSeq_data().IsGap()) {
469 if((*it)->GetLiteral().GetSeq_data().IsGap()) {
470 const CSeq_gap& gap = (*it)->GetLiteral().GetSeq_data().GetGap();
479 if((*it)->GetLiteral().GetSeq_data().IsGap()) {
480 const CSeq_gap& gap = (*it)->GetLiteral().GetSeq_data().GetGap();
489 if((*it)->GetLiteral().GetSeq_data().IsGap()) {
490 const CSeq_gap& gap = (*it)->GetLiteral().GetSeq_data().GetGap();
514BOOST_CHECK_EQUAL(interval.
GetFrom(), 149);
515BOOST_CHECK_EQUAL(interval.
GetTo(), 151);
519BOOST_CHECK_EQUAL(interval.
GetFrom(), 6);
520BOOST_CHECK_EQUAL(interval.
GetTo(), 8);
541 if( localid.
IsStr() ) {
543 returnlocalid.
GetStr() == sLocalid;
562 if( id->
IsGi() ) {
564 return id->
GetGi() == gi;
573cout <<
"Testing FUNCTION: TrimSeqData"<< endl;
577BOOST_CHECK( ! mapOfTests.empty() );
580 const string& sTestName = (test_it->first);
581cout <<
"Running TEST: "<< sTestName << endl;
585BOOST_REQUIRE( test_stage_map.size() == 2u );
588 const CFile& input_entry_file = test_stage_map[
"input_entry"];
589 const CFile& output_expected_file = test_stage_map[
"output_expected"];
599 for( ; bioseq_ci; ++bioseq_ci ) {
607cuts.push_back(cut1);
608cuts.push_back(cut2);
629BOOST_CHECK( s_AreSeqEntriesEqualAndPrintIfNot(
641cout <<
"Testing FUNCTION: TrimSeqGraph"<< endl;
645BOOST_CHECK( ! mapOfTests.empty() );
648 const string& sTestName = (test_it->first);
649cout <<
"Running TEST: "<< sTestName << endl;
653BOOST_REQUIRE( test_stage_map.size() == 2u );
656 const CFile& input_entry_file = test_stage_map[
"input_entry"];
657 const CFile& output_expected_file = test_stage_map[
"output_expected"];
667 for( ; bioseq_ci; ++bioseq_ci ) {
675cuts.push_back(cut1);
684 for(; graph_ci; ++graph_ci) {
721cuts.push_back(cut1);
730 for(; graph_ci; ++graph_ci) {
764BOOST_CHECK( s_AreSeqEntriesEqualAndPrintIfNot(
776cout <<
"Testing FUNCTION: TrimSeqAlign"<< endl;
780BOOST_CHECK( ! mapOfTests.empty() );
783 const string& sTestName = (test_it->first);
784cout <<
"Running TEST: "<< sTestName << endl;
788BOOST_REQUIRE( test_stage_map.size() == 2u );
791 const CFile& input_entry_file = test_stage_map[
"input_entry"];
792 const CFile& output_expected_file = test_stage_map[
"output_expected"];
802 for( ; bioseq_ci; ++bioseq_ci ) {
810cuts.push_back(cut1);
819 for(; align_ci; ++align_ci) {
862cuts.push_back(cut1);
871 for(; align_ci; ++align_ci) {
914cuts.push_back(cut1);
923 for(; align_ci; ++align_ci) {
963BOOST_CHECK( s_AreSeqEntriesEqualAndPrintIfNot(
976pCds->SetData().SetCdregion();
978 auto& loc = pCds->SetLocation();
980pId->SetLocal().SetStr(
"scaffold_id");
982loc.SetMix().AddInterval(*pId, 8964, 9089, strand);
983loc.SetMix().AddInterval(*pId, 8520, 8760, strand);
984loc.SetMix().AddInterval(*pId, 7605, 7633, strand);
989 boolisDeleted =
false;
990 boolisTrimmed =
false;
991 boolisPartialStart =
false;
992 boolisPartialStop =
false;
994 edit::TrimSeqFeat(pCds, cuts, isDeleted, isTrimmed, isPartialStart, isPartialStop);
996BOOST_CHECK(! isPartialStart);
997BOOST_CHECK(isPartialStop);
998BOOST_CHECK(! isDeleted);
999BOOST_CHECK(isTrimmed);
1001 const auto& loc = pCds->GetLocation();
1011cout <<
"Testing FUNCTION: TrimSeqFeat - cdregion feature was completely deleted"<< endl;
1015BOOST_CHECK( ! mapOfTests.empty() );
1018 const string& sTestName = (test_it->first);
1019cout <<
"Running TEST: "<< sTestName << endl;
1023BOOST_REQUIRE( test_stage_map.size() == 2u );
1026 const CFile& input_entry_file = test_stage_map[
"input_entry"];
1027 const CFile& output_expected_file = test_stage_map[
"output_expected"];
1037 for( ; bioseq_ci; ++bioseq_ci ) {
1045cuts.push_back(cut1);
1054 for(; feat_ci; ++feat_ci) {
1060 boolbFeatureDeleted =
false;
1063 boolbFeatureTrimmed =
false;
1066 boolisPartialStart =
false;
1067 boolisPartialStop =
false;
1068BOOST_CHECK_NO_THROW(
edit::TrimSeqFeat(copy_feat, sorted_cuts, bFeatureDeleted, bFeatureTrimmed, isPartialStart, isPartialStop));
1070 if(bFeatureDeleted) {
1077 if(bFeatureTrimmed) {
1085feat_eh.
Replace(*copy_feat);
1102BOOST_CHECK( s_AreSeqEntriesEqualAndPrintIfNot(
1235cout <<
"Testing FUNCTION: TrimSequenceAndAnnotation"<< endl;
1239BOOST_CHECK( ! mapOfTests.empty() );
1242 const string& sTestName = (test_it->first);
1243cout <<
"Running TEST: "<< sTestName << endl;
1247BOOST_REQUIRE( test_stage_map.size() == 2u );
1250 const CFile& input_entry_file = test_stage_map[
"input_entry"];
1251 const CFile& output_expected_file = test_stage_map[
"output_expected"];
1261 for( ; bioseq_ci; ++bioseq_ci ) {
1275cuts.push_back(cut1);
1276cuts.push_back(cut2);
1277cuts.push_back(cut3);
1278cuts.push_back(cut4);
1279cuts.push_back(cut5);
1280cuts.push_back(cut6);
1294cuts.push_back(cut1);
1295cuts.push_back(cut2);
1296cuts.push_back(cut3);
1297cuts.push_back(cut4);
1312cuts.push_back(cut1);
1313cuts.push_back(cut2);
1314cuts.push_back(cut3);
1315cuts.push_back(cut4);
1316cuts.push_back(cut5);
1327cuts.push_back(cut1);
1338cuts.push_back(cut1);
1349cuts.push_back(cut1);
1360cuts.push_back(cut1);
1371cuts.push_back(cut1);
1382cuts.push_back(cut1);
1389BOOST_CHECK( s_AreSeqEntriesEqualAndPrintIfNot(
1400cout <<
"Testing FUNCTION: TrimSequenceAndAnnotation with invalid input"<< endl;
1402 TMapTestNameToTestFiles& mapOfTests = s_mapFunctionToVecOfTests[
"trim_sequence_and_annotation_invalid_input"];
1404BOOST_CHECK( ! mapOfTests.empty() );
1407 const string& sTestName = (test_it->first);
1408cout <<
"Running TEST: "<< sTestName << endl;
1412BOOST_REQUIRE( test_stage_map.size() == 1u );
1415 const CFile& input_entry_file = test_stage_map[
"input_entry"];
1423 for( ; bioseq_ci; ++bioseq_ci ) {
1512submit->
SetData().SetEntrys().push_back(wrapped);
1516BOOST_CHECK_EQUAL(entry->
IsSeq(),
true);
1520submit->
SetData().SetEntrys().front()->Assign(*entry);
1525submit->
SetData().SetEntrys().front()->Assign(*wrapped);
1528BOOST_CHECK_EQUAL(entry->
IsSet(),
true);
1531submit->
SetData().SetEntrys().front()->Assign(*entry);
1550BOOST_CHECK_EQUAL(
edit::GetTargetedLocusNameConsensus(
"ultra-conserved element locus SR-01",
"ultra-conserved element locus SR-02"),
"ultra-conserved element locus");
1574gene->
SetData().SetGene().SetLocus(
"XYZ");
1583 rna->SetData().SetRna().SetRnaProductName(
"18S ribosomal RNA", remainder);
1587imp->
SetData().SetImp().SetKey(
"misc_feature");
1597imp->
SetData().SetImp().SetKey(
"mobile_element");
1600imp->
SetQual().back()->SetVal(
"transposon");
1617BOOST_CHECK_EQUAL(seh.
GetDescr().
Get().size(), 2);
1620BOOST_CHECK_EQUAL((*it)->GetSeq().GetDescr().Get().size(), 4);
1626BOOST_CHECK_EQUAL(seh.
IsSetDescr(),
false);
1629BOOST_CHECK_EQUAL((*it)->GetSeq().GetDescr().Get().size(), 6);
1635BOOST_CHECK_EQUAL(seh.
GetDescr().
Get().size(), 3);
1638BOOST_CHECK_EQUAL((*it)->GetSeq().GetDescr().Get().size(), 3);
@ eExtreme_Positional
numerical value
@ eExtreme_Biological
5' and 3'
CLocalRange< TOffset > TRange
define for the fundamental building block of sequence ranges
TSeqPos GetLength(void) const
@Gb_qual.hpp User-defined methods of the data storage class.
ESubtype GetSubtype(void) const
void ReassignConflictingIds(void)
CSeq_feat_EditHandle â.
namespace ncbi::objects::
Seq-loc iterator class â iterates all intervals from a seq-loc in the correct order.
void RemoveUnverifiedFeature()
void AddUnverifiedOrganism()
void AddUnverifiedContaminant()
void RemoveUnverifiedOrganism()
void AddUnverifiedMisassembled()
EObjectType GetObjectType() const
void AddUnverifiedFeature()
static DLIST_TYPE *DLIST_NAME() last(DLIST_LIST_TYPE *list)
static const char * expected[]
#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.
void FindFilesInDir(const CDir &dir, const vector< string > &masks, const vector< string > &masks_subdir, TFindFunc &find_func, TFindFiles flags=fFF_Default)
Find files in the specified directory.
bool IsFile(EFollowLinks follow=eFollowLinks) const
Check whether a directory entry is a file.
string GetName(void) const
Get the base entry name with extension (if any).
const string & GetPath(void) const
Get entry path.
@ fFF_Recursive
descend into sub-dirs
@ fFF_Default
default behavior
virtual void Assign(const CSerialObject &source, ESerialRecursionMode how=eRecursive)
Set object to copy of another one.
#define MSerial_AsnText
I/O stream manipulators â.
virtual bool Equals(const CSerialObject &object, ESerialRecursionMode how=eRecursive) const
Check if both objects contain the same values.
CConstRef< CSeq_id > GetSeqIdOrNull(void) const
TRange GetRange(void) const
Get the range.
static CRef< CObjectManager > GetInstance(void)
Return the existing object manager or create one.
CSeq_entry_Handle AddTopLevelSeqEntry(CSeq_entry &top_entry, TPriority pri=kPriority_Default, EExist action=eExist_Default)
Add seq_entry, default priority is higher than for defaults or loaders Add object to the score with p...
void AddDefaults(TPriority pri=kPriority_Default)
Add default data loaders from object manager.
void RemoveTopLevelSeqEntry(const CTSE_Handle &entry)
Revoke TSE previously added using AddTopLevelSeqEntry() or AddBioseq().
vector< CSeq_id_Handle > TId
const TDescr & GetDescr(void) const
const CSeqFeatData & GetData(void) const
void Replace(const CSeq_align &new_obj) const
Replace the Seq-align with new Seq-align object.
void SetInst(TInst &v) const
CBioseq_EditHandle GetEditHandle(void) const
Get 'edit' version of handle.
bool IsSetDescr(void) const
CConstRef< CSeq_entry > GetCompleteSeq_entry(void) const
Complete and get const reference to the seq-entry.
void Replace(const CSeq_feat &new_feat) const
Replace the feature with new Seq-feat object.
const TId & GetId(void) const
void Replace(const CSeq_graph &new_obj) const
Replace the Seq-graph with new Seq-graph object.
const TInst & GetInst(void) const
const string & GetTitle(void) const
bool IsSetTitle(void) const
const CSeq_align & GetOriginalSeq_align(void) const
Get original alignment.
const CSeq_loc & GetLocation(void) const
const CSeq_feat & GetOriginalFeature(void) const
Get original feature with unmapped location/product.
const CSeq_graph & GetOriginalGraph(void) const
Get original graph with unmapped location/product.
vector< CSeqdesc::E_Choice > TDescChoices
CSeq_align_Handle GetSeq_align_Handle(void) const
Get original alignment handle.
CSeq_graph_Handle GetSeq_graph_Handle(void) const
Get original graph handle.
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.
#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.
static int CompareNocase(const CTempString s1, SIZE_TYPE pos, SIZE_TYPE n, const char *s2)
Case-insensitive compare of a substring with another string.
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 bool EndsWith(const CTempString str, const CTempString end, ECase use_case=eCase)
Check if a string ends with a specified suffix value.
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.
TTo GetTo(void) const
Get the To member data.
TFrom GetFrom(void) const
Get the From member data.
bool IsStr(void) const
Check if variant Str is selected.
const TTag & GetTag(void) const
Get the Tag member data.
const TDb & GetDb(void) const
Get the Db member data.
const TStr & GetStr(void) const
Get the variant data.
const TData & GetData(void) const
Get the Data member data.
const TAnticodon & GetAnticodon(void) const
Get the Anticodon member data.
const TExt & GetExt(void) const
Get the Ext member data.
const TTRNA & GetTRNA(void) const
Get the variant data.
bool CanGetDim(void) const
Check if it is safe to call GetDim method.
const TDenseg & GetDenseg(void) const
Get the variant data.
E_Choice Which(void) const
Which variant is currently selected.
bool CanGetNumseg(void) const
Check if it is safe to call GetNumseg method.
bool CanGetIds(void) const
Check if it is safe to call GetIds method.
bool CanGetSegs(void) const
Check if it is safe to call GetSegs method.
bool CanGetStarts(void) const
Check if it is safe to call GetStarts method.
const TSegs & GetSegs(void) const
Get the Segs member data.
bool CanGetLens(void) const
Check if it is safe to call GetLens method.
void SetLocation(TLocation &value)
Assign a value to Location data member.
bool IsCdregion(void) const
Check if variant Cdregion is selected.
void SetComment(const TComment &value)
Assign a value to Comment data member.
void SetData(TData &value)
Assign a value to Data data member.
const TCdregion & GetCdregion(void) const
Get the variant data.
void SetLoc(TLoc &value)
Assign a value to Loc data member.
const TRna & GetRna(void) const
Get the variant data.
TQual & SetQual(void)
Assign a value to Qual data member.
const TCode_break & GetCode_break(void) const
Get the Code_break member data.
void SetTo(TTo value)
Assign a value to To data member.
ENa_strand
strand of nucleic acid
void SetId(TId &value)
Assign a value to Id data member.
TFrom GetFrom(void) const
Get the From member data.
bool IsGeneral(void) const
Check if variant General is selected.
E_Choice Which(void) const
Which variant is currently selected.
E_Choice Which(void) const
Which variant is currently selected.
void SetFrom(TFrom value)
Assign a value to From data member.
TGi GetGi(void) const
Get the variant data.
const TLocal & GetLocal(void) const
Get the variant data.
bool IsLocal(void) const
Check if variant Local is selected.
const TGeneral & GetGeneral(void) const
Get the variant data.
bool IsGi(void) const
Check if variant Gi is selected.
TTo GetTo(void) const
Get the To member data.
const TInt & GetInt(void) const
Get the variant data.
@ e_General
for other databases
const TSeq & GetSeq(void) const
Get the variant data.
const TDescr & GetDescr(void) const
Get the Descr member data.
TSet & SetSet(void)
Select the variant.
const TSet & GetSet(void) const
Get the variant data.
bool IsSeq(void) const
Check if variant Seq is selected.
bool IsSet(void) const
Check if variant Set is selected.
const TSeq_set & GetSeq_set(void) const
Get the Seq_set member data.
void SetClass(TClass value)
Assign a value to Class data member.
void SetDescr(TDescr &value)
Assign a value to Descr data member.
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.
@ eClass_phy_set
phylogenetic study
bool IsSetLinkage(void) const
Check if a value has been assigned to Linkage data member.
TRepr GetRepr(void) const
Get the Repr member data.
void SetData(TData &value)
Assign a value to Data data member.
list< CRef< CSeqdesc > > Tdata
TLinkage GetLinkage(void) const
Get the Linkage member data.
const TInst & GetInst(void) const
Get the Inst member data.
void SetExt(TExt &value)
Assign a value to Ext data member.
TType GetType(void) const
Get the Type member data.
const TLiteral & GetLiteral(void) const
Get the variant data.
TAnnot & SetAnnot(void)
Assign a value to Annot data member.
const TId & GetId(void) const
Get the Id member data.
const Tdata & Get(void) const
Get the member data.
TLength GetLength(void) const
Get the Length member data.
TLength GetLength(void) const
Get the Length member data.
const TLinkage_evidence & GetLinkage_evidence(void) const
Get the Linkage_evidence member data.
TComment & SetComment(void)
Select the variant.
void SetInst(TInst &value)
Assign a value to Inst data member.
const TExt & GetExt(void) const
Get the Ext member data.
bool IsSetDescr(void) const
descriptors Check if a value has been assigned to Descr data member.
void SetDescr(TDescr &value)
Assign a value to Descr data member.
const TDelta & GetDelta(void) const
Get the variant data.
TUser & SetUser(void)
Select the variant.
const Tdata & Get(void) const
Get the member data.
bool IsLiteral(void) const
Check if variant Literal is selected.
bool IsSetSeq_data(void) const
may have the data Check if a value has been assigned to Seq_data data member.
void SetLength(TLength value)
Assign a value to Length data member.
list< CRef< CDelta_seq > > Tdata
bool IsGap(void) const
Check if variant Gap is selected.
void SetSeq_data(TSeq_data &value)
Assign a value to Seq_data data member.
const TDescr & GetDescr(void) const
Get the Descr member data.
const TSeq_data & GetSeq_data(void) const
Get the Seq_data member data.
bool IsSetLinkage_evidence(void) const
Check if a value has been assigned to Linkage_evidence data member.
@ eRepr_delta
sequence made by changes (delta) to others
@ eMol_na
just a nucleic acid
void SetSub(TSub &value)
Assign a value to Sub data member.
const TEntrys & GetEntrys(void) const
Get the variant data.
const TData & GetData(void) const
Get the Data member data.
void SetData(TData &value)
Assign a value to Data data member.
double value_type
The numeric datatype used by the parser.
Portable class to work with a spawned process via pipes.
Defines the CNcbiApplication and CAppException classes for creating NCBI applications.
Defines classes: CDirEntry, CFile, CDir, CSymLink, CMemoryFile, CFileUtil, CFileLock,...
void TrimSeqAlign(CBioseq_Handle bsh, CRef< CSeq_align > align, const TCuts &sorted_cuts)
Trim Seq-align annotation.
void SetLinkageType(CSeq_ext &ext, CSeq_gap::TType linkage_type)
SetLinkageType A function to set the linkage_type for gaps in a delta sequence.
void TrimSequenceAndAnnotation(CBioseq_Handle bsh, const TCuts &cuts, EInternalTrimType internal_cut_conversion=eTrimToClosestEnd)
Trim sequence data and all associated annotation.
void TrimSeqData(CBioseq_Handle bsh, CRef< CSeq_inst > inst, const TCuts &sorted_cuts)
Trim sequence data.
TLocAdjustmentVector NormalizeUnknownLengthGaps(CSeq_inst &inst, TSeqPos unknown_length=100)
NormalizeUnknownLengthGaps A function to adjust the length of unknown-length gaps to a specific lengt...
CRef< CSeqdesc > FindUnverified(const CBioseq &seq)
void TrimSeqGraph(CBioseq_Handle bsh, CRef< CSeq_graph > graph, const TCuts &sorted_cuts)
Trim Seq-graph annotation.
bool IsUnverifiedMisassembled(const CBioseq &seq)
string GetTargetedLocusName(const CSeq_feat &feat)
void AddLocalIdUserObjects(CSeq_entry &entry)
Creates a User-object descriptor on every sequence that has a local ID Contains the original local ID...
CRef< CSeq_entry > SeqEntryFromSeqSubmit(const CSeq_submit &submit)
Create a Seq-entry from a Seq-submit.
void BioseqSetDescriptorPropagateDown(const CBioseq_set_Handle &bioseq_set_h, const vector< CSeqdesc::E_Choice > &choices_to_delete=vector< CSeqdesc::E_Choice >())
Moves descriptors down to children of the given bioseq-set.
bool HasRepairedIDs(const CSeq_entry &entry)
Detects whether colliding IDs were fixed by comparing sequence IDs to the contents of the OriginalID ...
void RemoveUserObjectType(CSeq_entry &entry, CUser_object::EObjectType type)
Removes User-object descriptors of a certain type from the seq-entry.
bool IsUnverifiedOrganism(const CBioseq &seq)
void SetLinkageTypeLinkedRepeat(CSeq_ext &ext, CLinkage_evidence::TType evidence_type)
void DeleteProteinAndRenormalizeNucProtSet(const CSeq_feat_Handle &feat_h)
Secondary function needed after trimming Seq-feat.
void ConvertRawToDeltaByNs(CSeq_inst &inst, size_t min_unknown, int max_unknown, size_t min_known, int max_known, bool is_assembly_gap=false, int gap_type=CSeq_gap::eType_unknown, int linkage=-1, int linkage_evidence=-1)
ConvertRawToDeltaByNs A function to convert a raw sequence to a delta sequence, using runs of Ns to d...
string GetTargetedLocusNameConsensus(const string &tls1, const string &tls2)
void TrimSeqFeat(CRef< CSeq_feat > feat, const TCuts &sorted_cuts, bool &bFeatureDeleted, bool &bFeatureTrimmed, bool &partial_start, bool &partial_stop)
Trim Seq-feat annotation.
void GetSortedCuts(CBioseq_Handle bsh, const TCuts &cuts, TCuts &sorted_cuts, EInternalTrimType internal_cut_conversion=eTrimToClosestEnd)
1) Merge abutting and overlapping cuts.
bool IsUnverifiedContaminant(const CBioseq &seq)
bool IsUnverifiedFeature(const CBioseq &seq)
string GenerateTargetedLocusName(CBioseq_Handle seq)
void BioseqSetDescriptorPropagateUp(CBioseq_set_Handle set)
Moves descriptors up from children of the given bioseq-set if each child has an identical copy of the...
#define FOR_EACH_SEQDESC_ON_SEQENTRY(Itr, Var)
FOR_EACH_SEQDESC_ON_SEQENTRY EDIT_EACH_SEQDESC_ON_SEQENTRY.
Utility stuff for more convenient using of Boost.Test library.
void s_IntervalsMatchGaps(const CSeq_loc &loc, const CSeq_inst &inst)
void s_CheckSeg(const CDelta_seq &ds, bool expect_gap, size_t expect_length)
void CheckTargetedLocusEntry(CRef< CSeq_entry > entry, const string &expected)
BOOST_AUTO_TEST_CASE(FixCollidingIds)
CRef< CSeq_entry > MakeEntryForDeltaConversion(vector< string > segs)
std::map< string, TMapTestNameToTestFiles > TMapFunctionToVecOfTests
void TestCollidingAccessionFixes(const CSeq_id &collide, const string &last)
std::map< string, CFile > TMapTestFiles
void CheckLocalId(const CBioseq &seq, const string &expected)
static bool s_FindGi(const CBioseq_Handle &bsh, const TGi &gi)
std::map< string, TMapTestFiles > TMapTestNameToTestFiles
static bool s_FindLocalId(const CBioseq_Handle &bsh, const string &sLocalid)
CRef< objects::CSeq_feat > MakeGeneForFeature(CRef< objects::CSeq_feat > feat)
CRef< objects::CAuthor > BuildGoodAuthor()
void SetDrosophila_melanogaster(CRef< objects::CSeq_entry > entry)
CRef< objects::CSeq_feat > GetCDSFromGoodNucProtSet(CRef< objects::CSeq_entry > entry)
void SetSebaea_microphylla(CRef< objects::CSeq_entry > entry)
CRef< objects::CSeq_annot > AddFeat(CRef< objects::CSeq_feat > feat, CRef< objects::CSeq_entry > entry)
CRef< objects::CSeq_entry > BuildGoodSeq(void)
CRef< objects::CSeq_feat > AddMiscFeature(CRef< objects::CSeq_entry > entry)
CRef< objects::CSeq_entry > BuildGoodEcoSet()
CRef< objects::CSeq_feat > GetProtFeatFromGoodNucProtSet(CRef< objects::CSeq_entry > entry)
CRef< objects::CSeq_entry > BuildGoodNucProtSet(void)
CRef< objects::CSeq_entry > GetNucleotideSequenceFromGoodNucProtSet(CRef< objects::CSeq_entry > entry)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4