NCBI C++ ToolKit
|
#include <corelib/ncbistd.hpp>
#include <objects/seqfeat/Seq_feat.hpp>
#include <objects/seq/Seq_gap.hpp>
#include <objects/seq/Linkage_evidence.hpp>
#include <objects/general/User_object.hpp>
#include <objects/submit/Seq_submit.hpp>
Go to the source code of this file.
Go to the SVN repository for this file.
Typedefs | |
typedef vector< CSeq_entry_Handle > | TVecOfSeqEntryHandles |
typedef pair< TSeqPos, int > | TLocAdjustment |
typedef vector< TLocAdjustment > | TLocAdjustmentVector |
typedef CRange< TSeqPos > | TRange |
A list of trim coordinates. More... | |
typedef vector< TRange > | TCuts |
Enumerations | |
enum | EInternalTrimType { eTrimToClosestEnd = 0 , eTrimTo5PrimeEnd , eTrimTo3PrimeEnd , eDoNotTrimInternal } |
Any internal cut listed in TCuts will be converted to a terminal cut using one of these options. More... | |
Functions | |
void | AddSeqEntryToSeqEntry (const CSeq_entry_Handle &to, const CSeq_entry_Handle &add) |
Attach one Seq-entry to another. More... | |
void | AddBioseqToBioseq (const CBioseq_Handle &to, const CBioseq_Handle &add) |
Attach one Bioseq to another. More... | |
void | AddBioseqToBioseqSet (const CBioseq_set_Handle &bsst, const CBioseq_Handle &seq) |
Add a Bioseq to a Bioseq-set. More... | |
CRef< CSeq_entry > | SeqEntryFromSeqSubmit (const CSeq_submit &submit) |
Create a Seq-entry from a Seq-submit. More... | |
NCBI_XOBJEDIT_EXPORT void | SegregateSetsByBioseqList (const CSeq_entry_Handle &target, const CScope::TBioseqHandles &bioseq_handles) |
Split a Seq-entry, where the second part holds the given bioseqs. More... | |
void | DivvyUpAlignments (const TVecOfSeqEntryHandles &vecOfSeqEntryHandles) |
Call this if the alignments directly under these seq-entries are all jumbled up between each other. More... | |
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. More... | |
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 descriptor. More... | |
void | AddLocalIdUserObjects (CSeq_entry &entry) |
Creates a User-object descriptor on every sequence that has a local ID Contains the original local ID. More... | |
bool | HasRepairedIDs (const CSeq_entry &entry) |
Detects whether colliding IDs were fixed by comparing sequence IDs to the contents of the OriginalID User-object descriptor. More... | |
void | RemoveUserObjectType (CSeq_entry &entry, CUser_object::EObjectType type) |
Removes User-object descriptors of a certain type from the seq-entry. More... | |
void | HandleCollidingIds (CSeq_entry &entry) |
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 determine the gap location. More... | |
void | ConvertRawToDeltaByNs (CBioseq_Handle bsh, 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) |
TLocAdjustmentVector | NormalizeUnknownLengthGaps (CSeq_inst &inst, TSeqPos unknown_length=100) |
NormalizeUnknownLengthGaps A function to adjust the length of unknown-length gaps to a specific length (100 by default). More... | |
void | SetLinkageType (CSeq_ext &ext, CSeq_gap::TType linkage_type) |
SetLinkageType A function to set the linkage_type for gaps in a delta sequence. More... | |
void | SetLinkageTypeScaffold (CSeq_ext &ext, CLinkage_evidence::TType evidence_type) |
SetLinkageTypeScaffold A special case of SetLinkageType. More... | |
void | SetLinkageTypeLinkedRepeat (CSeq_ext &ext, CLinkage_evidence::TType evidence_type) |
void | AddLinkageEvidence (CSeq_ext &ext, CLinkage_evidence::TType evidence_type) |
AddLinkageEvidence A function to add linkage evidence for gaps in a delta sequence. More... | |
void | ResetLinkageEvidence (CSeq_ext &ext, CLinkage_evidence::TType evidence_type) |
void | SortSeqDescr (CSeq_entry &entry) |
void | SortSeqDescr (CSeq_descr &entry) |
void | TrimSequenceAndAnnotation (CBioseq_Handle bsh, const TCuts &cuts, EInternalTrimType internal_cut_conversion=eTrimToClosestEnd) |
Trim sequence data and all associated annotation. More... | |
void | GetSortedCuts (CBioseq_Handle bsh, const TCuts &cuts, TCuts &sorted_cuts, EInternalTrimType internal_cut_conversion=eTrimToClosestEnd) |
1) Merge abutting and overlapping cuts. More... | |
void | TrimSeqData (CBioseq_Handle bsh, CRef< CSeq_inst > inst, const TCuts &sorted_cuts) |
Trim sequence data. More... | |
void | TrimSeqGraph (CBioseq_Handle bsh, CRef< CSeq_graph > graph, const TCuts &sorted_cuts) |
Trim Seq-graph annotation. More... | |
void | TrimSeqAlign (CBioseq_Handle bsh, CRef< CSeq_align > align, const TCuts &sorted_cuts) |
Trim Seq-align annotation. More... | |
void | TrimSeqFeat (CRef< CSeq_feat > feat, const TCuts &sorted_cuts, bool &bFeatureDeleted, bool &bFeatureTrimmed, bool &partial_start, bool &partial_stop) |
Trim Seq-feat annotation. More... | |
void | DeleteProteinAndRenormalizeNucProtSet (const CSeq_feat_Handle &feat_h) |
Secondary function needed after trimming Seq-feat. More... | |
NCBI_XOBJEDIT_EXPORT void | AdjustCdregionFrame (TSeqPos original_nuc_len, CRef< CSeq_feat > cds, const TCuts &sorted_cuts) |
Secondary function needed after trimming Seq-feat. More... | |
CRef< CBioseq > | SetNewProteinSequence (CScope &new_scope, CRef< CSeq_feat > cds, CRef< CSeq_inst > new_inst) |
Secondary function needed after trimming Seq-feat. More... | |
void | RetranslateCdregion (CBioseq_Handle nuc_bsh, bool partial_start, bool partial_stop, CRef< CSeq_inst > trimmed_nuc_inst, CRef< CSeq_feat > cds, const TCuts &sorted_cuts) |
Secondary function needed after trimming Seq-feat. More... | |
CRef< CSeqdesc > | FindUnverified (const CBioseq &seq) |
bool | IsUnverifiedOrganism (const CBioseq &seq) |
bool | IsUnverifiedFeature (const CBioseq &seq) |
bool | IsUnverifiedMisassembled (const CBioseq &seq) |
bool | IsUnverifiedContaminant (const CBioseq &seq) |
string | GetTargetedLocusName (const CSeq_feat &feat) |
string | GenerateTargetedLocusName (CBioseq_Handle seq) |
void | SetTargetedLocusName (CBioseq_Handle seq, const string &tls) |
string | GetTargetedLocusNameConsensus (const string &tls1, const string &tls2) |
Definition at line 221 of file seq_entry_edit.hpp.
typedef pair<TSeqPos, int> TLocAdjustment |
Definition at line 185 of file seq_entry_edit.hpp.
typedef vector<TLocAdjustment> TLocAdjustmentVector |
Definition at line 186 of file seq_entry_edit.hpp.
A list of trim coordinates.
Definition at line 220 of file seq_entry_edit.hpp.
typedef vector<CSeq_entry_Handle> TVecOfSeqEntryHandles |
Definition at line 114 of file seq_entry_edit.hpp.
enum EInternalTrimType |
Any internal cut listed in TCuts will be converted to a terminal cut using one of these options.
The default is eTrimToClosestEnd.
Enumerator | |
---|---|
eTrimToClosestEnd | |
eTrimTo5PrimeEnd | |
eTrimTo3PrimeEnd | |
eDoNotTrimInternal |
Definition at line 225 of file seq_entry_edit.hpp.
void AddBioseqToBioseq | ( | const CBioseq_Handle & | to, |
const CBioseq_Handle & | add | ||
) |
Attach one Bioseq to another.
This function will add one Bioseq to another if: 1. 'to' is a nucleotide and 'add' is a protein. The result is a nuc-prot set contating both elements. 2. both Bioseqs have the same molecular type. The result is a segmented bioseq of which the two bioseqs serve as parts. 3. 'to' is a segmented bioseq and 'add' has the same molecular type as 'to'. 'add' will be added as a new part of 'to'.
to | Bioseq to change |
add | Bioseq to add |
Definition at line 414 of file seq_entry_edit.cpp.
References CBioseq_Handle::GetEditHandle(), CBioseq_Handle::GetInst_Mol(), CSeq_inst::IsAa(), CSeq_inst::IsNa(), s_AddBioseqToBioseq(), and s_AddProtToNuc().
Referenced by AddSeqEntryToSeqEntry(), and s_AddBioseqToNucProtSet().
void AddBioseqToBioseqSet | ( | const CBioseq_set_Handle & | bsst, |
const CBioseq_Handle & | seq | ||
) |
Add a Bioseq to a Bioseq-set.
This function will add the Bioseq to the set if: 1. The set is of class 'parts' and the Bioseq has the same molecular type as the other parts. 2.
bsst | Bioseq to change |
seq | Bioseq to add |
Definition at line 469 of file seq_entry_edit.cpp.
References CBioseq_set_Base::eClass_conset, CBioseq_set_Base::eClass_eco_set, CBioseq_set_Base::eClass_equiv, CBioseq_set_Base::eClass_gen_prod_set, CBioseq_set_Base::eClass_genbank, CBioseq_set_Base::eClass_gi, CBioseq_set_Base::eClass_gibb, CBioseq_set_Base::eClass_mut_set, CBioseq_set_Base::eClass_nuc_prot, CBioseq_set_Base::eClass_other, CBioseq_set_Base::eClass_parts, CBioseq_set_Base::eClass_pdb_entry, CBioseq_set_Base::eClass_phy_set, CBioseq_set_Base::eClass_pir, CBioseq_set_Base::eClass_pop_set, CBioseq_set_Base::eClass_pub_set, CBioseq_set_Base::eClass_segset, CBioseq_set_Base::eClass_swissprot, CBioseq_set_Base::eClass_wgs_set, CBioseq_set_Handle::GetClass(), CBioseq_Handle::GetEditHandle(), CBioseq_EditHandle::MoveTo(), s_AddBioseqToNucProtSet(), s_AddBioseqToPartsSet(), and s_AddBioseqToSegset().
Referenced by AddSeqEntryToSeqEntry().
void AddLinkageEvidence | ( | CSeq_ext & | ext, |
CLinkage_evidence::TType | evidence_type | ||
) |
AddLinkageEvidence A function to add linkage evidence for gaps in a delta sequence.
Note that this function will automatically set the linkage to eLinkage_linked.
ext | The Seq_ext to adjust |
evidence_type | The evidence type to use. |
Definition at line 2040 of file seq_entry_edit.cpp.
References CSeq_gap::AddLinkageEvidence(), NON_CONST_ITERATE, CDelta_ext_Base::Set(), and CSeq_ext_Base::SetDelta().
void AddLocalIdUserObjects | ( | CSeq_entry & | entry | ) |
Creates a User-object descriptor on every sequence that has a local ID Contains the original local ID.
Definition at line 1583 of file seq_entry_edit.cpp.
References CUser_object::eObjectType_OriginalId, CSeq_descr_Base::Get(), CBioseq_Base::GetDescr(), CBioseq_Base::GetId(), CSeq_entry_Base::GetSeq(), CSeq_entry_Base::GetSet(), CSeq_entry_Base::IsSeq(), CSeq_entry_Base::IsSet(), CUser_object_Base::IsSetData(), CBioseq_Base::IsSetDescr(), CBioseq_set_Base::IsSetSeq_set(), ITERATE, MakeOriginalIdField(), NON_CONST_ITERATE, CUser_object_Base::SetData(), CBioseq_Base::SetDescr(), CUser_object::SetObjectType(), CSeq_entry_Base::SetSeq(), CBioseq_set_Base::SetSeq_set(), CSeq_entry_Base::SetSet(), and CSeqdesc_Base::SetUser().
Referenced by BOOST_AUTO_TEST_CASE(), HandleCollidingIds(), and TestCollidingAccessionFixes().
void AddSeqEntryToSeqEntry | ( | const CSeq_entry_Handle & | to, |
const CSeq_entry_Handle & | add | ||
) |
Attach one Seq-entry to another.
to | Seq-entry to change |
add | Seq-entry to add |
Definition at line 344 of file seq_entry_edit.cpp.
References AddBioseqToBioseq(), AddBioseqToBioseqSet(), CSeq_entry_Handle::GetSeq(), CSeq_entry_Handle::GetSet(), CSeq_entry_Handle::IsSeq(), and CSeq_entry_Handle::IsSet().
NCBI_XOBJEDIT_EXPORT void AdjustCdregionFrame | ( | TSeqPos | original_nuc_len, |
CRef< CSeq_feat > | cds, | ||
const TCuts & | sorted_cuts | ||
) |
Secondary function needed after trimming Seq-feat.
If TrimSeqFeat()'s bFeatureTrimmed returns true, then adjust cdregion frame.
Definition at line 3220 of file seq_entry_edit.cpp.
References CSeq_feat_Base::CanGetData(), CSeq_feat_Base::CanGetLocation(), eExtreme_Biological, eNa_strand_minus, eNa_strand_unknown, CSeqFeatData::eSubtype_cdregion, CSeqFeatData_Base::GetCdregion(), CSeq_feat_Base::GetData(), CRange_Base::GetFrom(), CSeq_feat_Base::GetLocation(), CSeq_loc::GetStrand(), CSeqFeatData::GetSubtype(), CRange_Base::GetTo(), CSeqFeatData_Base::IsCdregion(), CSeq_loc::IsPartialStart(), and CSeq_feat_Base::SetData().
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.
Each child gets a copy of all the descriptors. It does NOT check for duplicate Seqdescs.
bioseq_set_h | This is the bioseq_set whose descriptors we're moving. |
choices_to_delete | If non-empty, it indicates the types of CSeqdescs to delete instead of propagating. |
Definition at line 1447 of file seq_entry_edit.cpp.
References CSeq_entry_EditHandle::AddDescr(), CSeqdesc_Base::e_not_set, CSeq_entry_CI::eNonRecursive, CBioseq_set_Handle::GetEditHandle(), CSeq_entry_Handle::GetEditHandle(), CBioseq_set_Handle::GetParentEntry(), CBioseq_set_EditHandle::ResetDescr(), SerialClone(), CSeq_descr_Base::Set(), and CSeqdesc_Base::Which().
Referenced by BOOST_AUTO_TEST_CASE(), and s_PromoteSingletonSetsInSet().
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 descriptor.
It does NOT check for duplicate Seqdescs. Will not move molinfo, title, or source descriptors.
bioseq_set_h | This is the bioseq_set whose descriptors we're moving. |
Definition at line 1368 of file seq_entry_edit.cpp.
References CBioseq_set_EditHandle::AddSeqdesc(), CSerialObject::Assign(), first(), CSeq_descr_Base::Get(), CBioseq_set_Base::GetSeq_set(), CSeq_descr_Base::IsSet(), ITERATE, CBioseq_EditHandle::RemoveSeqdesc(), CBioseq_set_EditHandle::RemoveSeqdesc(), CSeq_descr_Base::Reset(), CSeq_descr_Base::Set(), CBioseq_EditHandle::SetDescr(), and CBioseq_set_EditHandle::SetDescr().
Referenced by BOOST_AUTO_TEST_CASE().
void ConvertRawToDeltaByNs | ( | CBioseq_Handle | bsh, |
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 |
||
) |
Definition at line 1944 of file seq_entry_edit.cpp.
References CSerialObject::Assign(), ConvertRawToDeltaByNs(), f(), FeatureAdjustForInsert(), FeatureAdjustForTrim(), CBioseq_Handle::GetEditHandle(), CBioseq_Handle::GetInst(), NormalizeUnknownLengthGaps(), CSeq_feat_EditHandle::Remove(), CSeq_feat_EditHandle::Replace(), and CBioseq_EditHandle::SetInst().
void ConvertRawToDeltaByNs | ( | CSeq_inst & | inst, |
size_t | min_unknown, | ||
int | max_unknown, | ||
size_t | min_known, | ||
int | max_known, | ||
bool | is_assembly_gap, | ||
int | gap_type, | ||
int | linkage, | ||
int | linkage_evidence | ||
) |
ConvertRawToDeltaByNs A function to convert a raw sequence to a delta sequence, using runs of Ns to determine the gap location.
The size of the run of Ns determines whether a gap should be created and whether the gap should be of type known or unknown. Note that if the ranges overlap, unknown gaps will be preferred (allowing the user to create known length gaps for 20-forever, but unknown length gaps for 100, for example). Use a negative number for a maximum to indicate that there is no upper limit.
inst | The Seq-inst to adjust |
min_unknown | The minimum number of Ns to be converted to a gap of unknown length |
max_unknown | The maximum number of Ns to be converted to a gap of unknown length |
min_known | The minimum number of Ns to be converted to a gap of known length |
max_known | The maximum number of Ns to be converted to a gap of known length |
Definition at line 1804 of file seq_entry_edit.cpp.
References CSeqConvert::Convert(), CSeq_data_Base::e_Iupacna, CSeqUtil::e_Iupacna, CSeq_data_Base::e_Ncbi2na, CSeqUtil::e_Ncbi2na, CSeq_data_Base::e_Ncbi4na, CSeqUtil::e_Ncbi4na, CSeq_data_Base::e_Ncbi8na, CSeqUtil::e_Ncbi8na, CSeq_inst_Base::eRepr_delta, CSeq_inst_Base::eRepr_raw, CAliasBase< TPrim >::Get(), CSeq_data_Base::GetIupacna(), CSeq_inst_Base::GetLength(), CSeq_data_Base::GetNcbi2na(), CSeq_data_Base::GetNcbi4na(), CSeq_data_Base::GetNcbi8na(), CSeq_inst_Base::GetRepr(), CSeq_inst_Base::GetSeq_data(), CSeq_inst_Base::IsSetRepr(), CSeq_inst_Base::IsSetSeq_data(), ITERATE, CSeq_inst_Base::ResetSeq_data(), s_AddGap(), s_AddLiteral(), CSeq_inst_Base::SetRepr(), and CSeq_data_Base::Which().
Referenced by BOOST_AUTO_TEST_CASE(), ConvertRawToDeltaByNs(), ConvertRawToDeltaByNsCommand_impl(), and ConvertRawToDeltaByNsHugeFileCmd_impl().
void DeleteProteinAndRenormalizeNucProtSet | ( | const CSeq_feat_Handle & | feat_h | ) |
Secondary function needed after trimming Seq-feat.
If the trim completely covers the feature (boolean reference bFeatureDeleted from TrimSeqFeat() returns true), then delete protein sequence and re-normalize nuc-prot set.
Definition at line 3177 of file seq_entry_edit.cpp.
References CSeq_entry_EditHandle::ConvertSetToSeq(), CSeqFeatData_Base::e_Cdregion, CBioseq_set_Base::eClass_nuc_prot, CBioseq_set_Handle::GetBioseq_setCore(), CScope::GetBioseqHandle(), CBioseq_set_Handle::GetClass(), CSeq_feat_Handle::GetData(), CSeq_entry_Handle::GetEditHandle(), CBioseq_Handle::GetParentBioseq_set(), CBioseq_set_Handle::GetParentEntry(), CMappedFeat::GetProduct(), CSeq_feat_Handle::GetScope(), CBioseq_set_Base::GetSeq_set(), CBioseq_set_Handle::IsEmptySeq_set(), CBioseq_Handle::IsProtein(), CBioseq_Handle::IsRemoved(), CBioseq_set_Handle::IsSetClass(), CSeq_feat_Handle::IsSetData(), CSeq_feat_Handle::IsSetProduct(), CBioseq_EditHandle::Remove(), CSeq_feat_EditHandle::Remove(), and CSeqFeatData_Base::Which().
Referenced by BOOST_AUTO_TEST_CASE(), and TrimSequenceAndAnnotation().
void DivvyUpAlignments | ( | const TVecOfSeqEntryHandles & | vecOfSeqEntryHandles | ) |
Call this if the alignments directly under these seq-entries are all jumbled up between each other.
It will move each Seq-align into the proper location. In particular, it looks at all the seq-ids in each seq-align. If none of them belong to any member of vecOfSeqEntryHandles, then that Seq-align is copied to all members of vecOfSeqEntryHandles. If it belongs to only one member of vecOfSeqEntryHandles, then it goes there. If the align belongs to more than one, it's destroyed.
vecOfSeqEntryHandles | The Seq-entries we're considering for alignments. |
Definition at line 1304 of file seq_entry_edit.cpp.
References CSerialObject::Assign(), CSeq_entry_EditHandle::AttachAnnot(), CSeq_entry_CI::eRecursive, CSeq_annot_CI::eSearch_entry, CSeq_entry_Handle::GetEditHandle(), ITERATE, and s_DivvyUpAlignments_ProcessAnnot().
Referenced by SegregateSetsByBioseqList().
Definition at line 3446 of file seq_entry_edit.cpp.
References CUser_object::eObjectType_Unverified, CSeq_descr_Base::Get(), CBioseq_Base::GetDescr(), and CBioseq_Base::IsSetDescr().
Referenced by BOOST_AUTO_TEST_CASE().
string GenerateTargetedLocusName | ( | CBioseq_Handle | seq | ) |
Definition at line 3631 of file seq_entry_edit.cpp.
References CSeqFeatData_Base::e_Cdregion, CSeqFeatData_Base::e_Gene, CSeqFeatData_Base::e_Imp, CSeqFeatData_Base::e_Rna, f(), CBioseq_Handle::GetScope(), and GetTargetedLocusName().
Referenced by CheckTargetedLocusEntry(), and CTLSContigHandler::ProcessBioseq().
void GetSortedCuts | ( | CBioseq_Handle | bsh, |
const TCuts & | cuts, | ||
TCuts & | sorted_cuts, | ||
EInternalTrimType | internal_cut_conversion | ||
) |
1) Merge abutting and overlapping cuts.
2) Adjust any internal cuts to terminal cuts according to option. 3) Sort the cuts from greatest to least so that sequence data and annotation will be deleted from greatest loc to smallest loc. That way we don't have to adjust coordinate values after each cut.
1) Merge abutting and overlapping cuts.
2) Merge abutting and overlapping cuts. 3) Sort the cuts from greatest to least so that sequence data and annotation will be deleted from greatest loc to smallest loc. That way we don't have to adjust coordinate values after each cut.
Definition at line 2405 of file seq_entry_edit.cpp.
References CRangeCmp::eAscending, CRangeCmp::eDescending, eDoNotTrimInternal, CBioseq_Handle::GetBioseqLength(), CRange_Base::GetFrom(), CRange_Base::GetTo(), s_AdjustInternalCutLocations(), s_MergeCuts(), and ct::sort().
Referenced by BOOST_AUTO_TEST_CASE(), and TrimSequenceAndAnnotation().
Definition at line 3564 of file seq_entry_edit.cpp.
References CSeqFeatData_Base::e_Gene, CSeqFeatData_Base::e_Imp, CSeqFeatData_Base::e_Prot, CSeqFeatData_Base::e_Rna, NStr::EqualNocase(), CSeqFeatData::eSubtype_misc_feature, CSeqFeatData::eSubtype_mobile_element, NStr::Find(), CSeq_feat_Base::GetComment(), CSeq_feat_Base::GetData(), CSeqFeatData_Base::GetGene(), CSeqFeatData_Base::GetProt(), CSeq_feat_Base::GetQual(), CSeqFeatData_Base::GetRna(), CSeqFeatData::GetSubtype(), GetTargetedLocusName(), CSeq_feat_Base::IsSetComment(), CSeq_feat_Base::IsSetData(), CSeq_feat_Base::IsSetQual(), NStr::TruncateSpacesInPlace(), and CSeqFeatData_Base::Which().
Referenced by BOOST_AUTO_TEST_CASE().
Definition at line 3690 of file seq_entry_edit.cpp.
References NStr::EndsWith(), NStr::Equal(), NStr::fSplit_Tokenize, i, NStr::IsBlank(), ITERATE, kEmptyStr, NStr::Split(), and NStr::StartsWith().
Referenced by BOOST_AUTO_TEST_CASE(), and CTLSContigHandler::ProcessBioseq().
void HandleCollidingIds | ( | CSeq_entry & | entry | ) |
Definition at line 1738 of file seq_entry_edit.cpp.
References AddLocalIdUserObjects(), CUser_object::eObjectType_OriginalId, HasRepairedIDs(), CSeq_entry::ReassignConflictingIds(), and RemoveUserObjectType().
Referenced by CObjectLoadingTask::AddObjects().
bool HasRepairedIDs | ( | const CSeq_entry & | entry | ) |
Detects whether colliding IDs were fixed by comparing sequence IDs to the contents of the OriginalID User-object descriptor.
Definition at line 1683 of file seq_entry_edit.cpp.
References CUser_object::eObjectType_OriginalId, CSeq_descr_Base::Get(), CBioseq_Base::GetDescr(), CBioseq_Base::GetId(), CSeq_entry_Base::GetSeq(), CBioseq_set_Base::GetSeq_set(), CSeq_entry_Base::GetSet(), HasRepairedIDs(), CSeq_entry_Base::IsSeq(), CSeq_entry_Base::IsSet(), CBioseq_Base::IsSetDescr(), CBioseq_Base::IsSetId(), CBioseq_set_Base::IsSetSeq_set(), and ITERATE.
Referenced by BOOST_AUTO_TEST_CASE(), s_CollidedIds(), and TestCollidingAccessionFixes().
Definition at line 3501 of file seq_entry_edit.cpp.
References CSeq_descr_Base::Get(), CBioseq_Base::GetDescr(), and CBioseq_Base::IsSetDescr().
Referenced by BOOST_AUTO_TEST_CASE().
Definition at line 3474 of file seq_entry_edit.cpp.
References CSeq_descr_Base::Get(), CBioseq_Base::GetDescr(), and CBioseq_Base::IsSetDescr().
Referenced by BOOST_AUTO_TEST_CASE().
Definition at line 3487 of file seq_entry_edit.cpp.
References CSeq_descr_Base::Get(), CBioseq_Base::GetDescr(), and CBioseq_Base::IsSetDescr().
Referenced by BOOST_AUTO_TEST_CASE().
Definition at line 3460 of file seq_entry_edit.cpp.
References CSeq_descr_Base::Get(), CBioseq_Base::GetDescr(), and CBioseq_Base::IsSetDescr().
Referenced by BOOST_AUTO_TEST_CASE().
TLocAdjustmentVector NormalizeUnknownLengthGaps | ( | CSeq_inst & | inst, |
TSeqPos | unknown_length | ||
) |
NormalizeUnknownLengthGaps A function to adjust the length of unknown-length gaps to a specific length (100 by default).
inst | The Seq-inst to adjust |
Definition at line 1907 of file seq_entry_edit.cpp.
References CSeq_inst_Base::eRepr_delta, CSeq_inst_Base::GetLength(), CSeq_inst_Base::GetRepr(), CSeq_inst_Base::IsSetExt(), CSeq_inst_Base::IsSetRepr(), NON_CONST_ITERATE, CSeq_inst_Base::SetExt(), and CSeq_inst_Base::SetLength().
Referenced by CRawSeqToDeltaSeqByLoc::apply_impl(), BOOST_AUTO_TEST_CASE(), ConvertRawToDeltaByNs(), ConvertRawToDeltaByNsCommand_impl(), and ConvertRawToDeltaByNsHugeFileCmd_impl().
void RemoveUserObjectType | ( | CSeq_entry & | entry, |
CUser_object::EObjectType | type | ||
) |
Removes User-object descriptors of a certain type from the seq-entry.
Definition at line 1711 of file seq_entry_edit.cpp.
References EDIT_EACH_SEQDESC_ON_BIOSEQ, EDIT_EACH_SEQDESC_ON_SEQSET, ERASE_SEQDESC_ON_BIOSEQ, ERASE_SEQDESC_ON_SEQSET, CSeq_descr_Base::Get(), CBioseq_Base::GetDescr(), CSeq_entry_Base::GetSet(), CSeq_entry_Base::IsSeq(), CSeq_entry_Base::IsSet(), CBioseq_Base::IsSetDescr(), CBioseq_set_Base::IsSetSeq_set(), CBioseq_Base::ResetDescr(), CSeq_entry_Base::SetSeq(), CBioseq_set_Base::SetSeq_set(), and CSeq_entry_Base::SetSet().
Referenced by BOOST_AUTO_TEST_CASE(), and HandleCollidingIds().
void ResetLinkageEvidence | ( | CSeq_ext & | ext, |
CLinkage_evidence::TType | evidence_type | ||
) |
void RetranslateCdregion | ( | CBioseq_Handle | nuc_bsh, |
bool | isPartialStart, | ||
bool | isPartialStop, | ||
CRef< CSeq_inst > | trimmed_nuc_inst, | ||
CRef< CSeq_feat > | cds, | ||
const TCuts & | sorted_cuts | ||
) |
Secondary function needed after trimming Seq-feat.
If TrimSeqFeat()'s bFeatureTrimmed returns true, then retranslate cdregion.
Definition at line 3310 of file seq_entry_edit.cpp.
References CSerialObject::Assign(), CSeq_feat_Base::CanGetLocation(), CSeq_interval_Base::CanGetTo(), CSeqFeatData_Base::e_Cdregion, CSeqFeatData_Base::e_Prot, CMolInfo_Base::eBiomol_peptide, CMolInfo_Base::eCompleteness_complete, CMolInfo_Base::eCompleteness_no_ends, CMolInfo_Base::eCompleteness_no_left, CMolInfo_Base::eCompleteness_no_right, eExtreme_Biological, eNa_strand_unknown, CScope::GetBioseqHandle(), CSeq_feat_Base::GetData(), CBioseq_Handle::GetEditHandle(), CBioseq_Handle::GetInst(), CSeq_loc_Base::GetInt(), CBioseq::GetLength(), CSeq_feat_Base::GetLocation(), CMappedFeat::GetOriginalFeature(), CSeq_feat_Base::GetProduct(), CBioseq_Handle::GetScope(), CSeq_loc::GetStrand(), CSeq_loc_Base::IsInt(), CSeq_loc::IsPartialStart(), CSeq_loc::IsPartialStop(), CBioseq_Handle::IsProtein(), CSeq_feat_Base::IsSetData(), CSeq_feat_Base::IsSetProduct(), CSeq_feat_EditHandle::Replace(), CMolInfo_Base::SetBiomol(), CMolInfo_Base::SetCompleteness(), CBioseq_EditHandle::SetDescr(), CBioseq_EditHandle::SetInst(), CSeq_feat_Base::SetLocation(), CSeqdesc_Base::SetMolinfo(), SetNewProteinSequence(), SetPartial(), and CSeqFeatData_Base::Which().
Referenced by TrimSequenceAndAnnotation().
NCBI_XOBJEDIT_EXPORT void SegregateSetsByBioseqList | ( | const CSeq_entry_Handle & | target, |
const CScope::TBioseqHandles & | bioseq_handles | ||
) |
Split a Seq-entry, where the second part holds the given bioseqs.
There are various complex rules here that may not be obvious at first glance.
target | The Seq-entry to split |
bioseq_handles | The array of bioseqs that should end up in the second part of the target, with the rest in the first part. |
Definition at line 963 of file seq_entry_edit.cpp.
References DivvyUpAlignments(), CSeq_entry_CI::eNonRecursive, CSeq_entry_Handle::GetSet(), CSeq_entry_Handle::IsSet(), and s_MakeGroupsForUniqueValues().
CRef<CSeq_entry> SeqEntryFromSeqSubmit | ( | const CSeq_submit & | submit | ) |
Create a Seq-entry from a Seq-submit.
submit | Seq-submit to create Seq-entry from |
Definition at line 591 of file seq_entry_edit.cpp.
References AddSeqdescToBioseq(), AddSeqdescToSeqEntryRecursively(), CSerialObject::Assign(), CBioseq_set_Base::eClass_genbank, CSubmit_block_Base::GetCit(), CSeq_submit_Base::GetData(), CSeq_submit_Base::C_Data::GetEntrys(), CSeq_submit_Base::GetSub(), CSeq_submit::IsEntrys(), CSeq_entry_Base::IsSeq(), CSubmit_block_Base::IsSetCit(), CSeq_submit_Base::IsSetSub(), ITERATE, CBioseq_set_Base::SetClass(), CPubdesc_Base::SetPub(), CSeqdesc_Base::SetPub(), CSeq_entry_Base::SetSeq(), CBioseq_set_Base::SetSeq_set(), CSeq_entry_Base::SetSet(), and CPub_Base::SetSub().
Referenced by BOOST_AUTO_TEST_CASE(), CLocalFileRestorer::x_AttachNewObject(), CUpdateSeq_Input::x_ReadUpdateSeq_ASN(), and CUpdateMultipleSeq_Input::x_ReadUpdateSeqs_ASN().
void SetLinkageType | ( | CSeq_ext & | ext, |
CSeq_gap::TType | linkage_type | ||
) |
SetLinkageType A function to set the linkage_type for gaps in a delta sequence.
ext | The Seq_ext to adjust |
linkage_type | The linkage_type to use. |
Definition at line 1990 of file seq_entry_edit.cpp.
References CSeq_gap::ChangeType(), NON_CONST_ITERATE, CDelta_ext_Base::Set(), and CSeq_ext_Base::SetDelta().
Referenced by BOOST_AUTO_TEST_CASE().
void SetLinkageTypeLinkedRepeat | ( | CSeq_ext & | ext, |
CLinkage_evidence::TType | evidence_type | ||
) |
Definition at line 2021 of file seq_entry_edit.cpp.
References NON_CONST_ITERATE, CDelta_ext_Base::Set(), CSeq_ext_Base::SetDelta(), and CSeq_gap::SetLinkageTypeLinkedRepeat().
Referenced by BOOST_AUTO_TEST_CASE().
void SetLinkageTypeScaffold | ( | CSeq_ext & | ext, |
CLinkage_evidence::TType | evidence_type | ||
) |
SetLinkageTypeScaffold A special case of SetLinkageType.
When type is Scaffold, linkage must be linked and linkage evidence must be provided.
ext | The Seq_ext to adjust |
evidence_type | The linkage_type to use. |
Definition at line 2009 of file seq_entry_edit.cpp.
References NON_CONST_ITERATE, CDelta_ext_Base::Set(), CSeq_ext_Base::SetDelta(), and CSeq_gap::SetLinkageTypeScaffold().
CRef<CBioseq> SetNewProteinSequence | ( | CScope & | new_scope, |
CRef< CSeq_feat > | cds, | ||
CRef< CSeq_inst > | new_inst | ||
) |
Secondary function needed after trimming Seq-feat.
If TrimSeqFeat()'s bFeatureTrimmed returns true, then make new protein sequence.
Definition at line 3280 of file seq_entry_edit.cpp.
References CAliasBase< TPrim >::Get(), CBioseq_Base::GetInst(), CSeq_data_Base::GetIupacaa(), CSeq_inst_Base::GetLength(), CSeq_data_Base::GetNcbieaa(), CSeq_inst_Base::GetSeq_data(), CSeq_data_Base::IsIupacaa(), CSeq_data_Base::IsNcbieaa(), CSeq_inst_Base::IsSetSeq_data(), CSeq_inst_Base::SetLength(), CSeq_inst_Base::SetSeq_data(), and CSeqTranslator::TranslateToProtein().
Referenced by RetranslateCdregion().
void SetTargetedLocusName | ( | CBioseq_Handle | seq, |
const string & | tls | ||
) |
Definition at line 3659 of file seq_entry_edit.cpp.
References CSerialObject::Assign(), CUser_object::eObjectType_AutodefOptions, CBioseq_Handle::GetCompleteBioseq(), CAutoDefOptions::InitFromUserObject(), CBioseq_Base::IsSetDescr(), CAutoDefOptions::MakeUserObject(), NON_CONST_ITERATE, CBioseq_EditHandle::SetDescr(), CAutoDefOptions::SetTargetedLocusName(), and CSeqdesc_Base::SetUser().
Referenced by CTLSContigHandler::ProcessBioseq(), and CTLSMasterHandler::ProcessBioseq().
void SortSeqDescr | ( | CSeq_descr & | entry | ) |
Definition at line 3515 of file seq_entry_edit.cpp.
References CSeq_descr_Base::Set().
Referenced by SortSeqDescr().
void SortSeqDescr | ( | CSeq_entry & | entry | ) |
Definition at line 3520 of file seq_entry_edit.cpp.
References CSeq_entry_Base::IsSet(), CSeq_entry::IsSetDescr(), CSeq_entry::SetDescr(), CBioseq_set_Base::SetSeq_set(), CSeq_entry_Base::SetSet(), and SortSeqDescr().
Referenced by CTbl2AsnApp::ProcessOneEntry(), and CTbl2AsnApp::ProcessSingleEntry().
void TrimSeqAlign | ( | CBioseq_Handle | bsh, |
CRef< CSeq_align > | align, | ||
const TCuts & | sorted_cuts | ||
) |
Trim Seq-align annotation.
Definition at line 3037 of file seq_entry_edit.cpp.
References CDense_seg_Base::CanGetDim(), CSeq_align_Base::C_Segs::GetDenseg(), CDense_seg_Base::GetDim(), CRange_Base::GetFrom(), CDense_seg_Base::GetIds(), CDense_seg_Base::GetLens(), CDense_seg_Base::GetNumseg(), CSeq_align_Base::GetSegs(), CBioseq_Handle::GetSeqId(), CDense_seg_Base::GetStarts(), CRange_Base::GetTo(), row, s_CutDensegSegment(), and CSeq_align_Base::SetSegs().
Referenced by BOOST_AUTO_TEST_CASE(), and TrimSequenceAndAnnotation().
void TrimSeqData | ( | CBioseq_Handle | bsh, |
CRef< CSeq_inst > | inst, | ||
const TCuts & | sorted_cuts | ||
) |
Trim sequence data.
Definition at line 2502 of file seq_entry_edit.cpp.
References CScope::AddBioseq(), CSerialObject::Assign(), eNa_strand_plus, CSeq_inst_Base::eRepr_raw, CSeqMap::eSeqData, CSeqMap::fFindAny, CSeqMap::fIgnoreUnresolved, CBioseq_Handle::GetCompleteBioseq(), CSeq_inst_Base::GetLength(), CBioseq_Handle::GetScope(), CSeq_entry_Handle::GetScope(), CBioseq_Handle::GetSeqMap(), CBioseq_Handle::GetTopLevelEntry(), CSeqMap_CI::GetType(), CBioseq_Handle::IsNucleotide(), CScope::RemoveBioseq(), CSeq_inst_Base::ResetExt(), CSeq_inst_Base::ResetSeq_data(), CSeqMap::ResolvedRangeIterator(), CAutoInitRef< T >::Set(), CSeq_inst_Base::SetExt(), CSeq_inst_Base::SetLength(), CSeq_inst_Base::SetRepr(), CSeq_inst_Base::SetSeq_data(), and UpdateSeqLength().
Referenced by BOOST_AUTO_TEST_CASE(), and TrimSequenceAndAnnotation().
void TrimSeqFeat | ( | CRef< CSeq_feat > | feat, |
const TCuts & | sorted_cuts, | ||
bool & | bFeatureDeleted, | ||
bool & | bFeatureTrimmed, | ||
bool & | partial_start, | ||
bool & | partial_stop | ||
) |
Trim Seq-feat annotation.
Definition at line 3119 of file seq_entry_edit.cpp.
References CSeq_feat_Base::CanGetLocation(), CSeq_feat_Base::CanGetProduct(), eExtreme_Positional, eNa_strand_unknown, CRange_Base::GetFrom(), CSeq_feat_Base::GetLocation(), CSeq_feat_Base::GetProduct(), GetStart(), GetStop(), CSeq_loc::GetStrand(), CRange_Base::GetTo(), s_SeqLocDelete(), CSeq_feat_Base::SetLocation(), SetPartial(), and CSeq_feat_Base::SetProduct().
Referenced by BOOST_AUTO_TEST_CASE(), and TrimSequenceAndAnnotation().
void TrimSeqGraph | ( | CBioseq_Handle | bsh, |
CRef< CSeq_graph > | graph, | ||
const TCuts & | sorted_cuts | ||
) |
Trim Seq-graph annotation.
Definition at line 2820 of file seq_entry_edit.cpp.
References eExtreme_Positional, CSeq_graph_Base::C_Graph::GetByte(), CSeq_graph_Base::GetLoc(), CSeq_loc::GetStart(), CSeq_loc::GetStop(), CByte_graph_Base::GetValues(), CSeq_graph_Base::C_Graph::IsByte(), s_GetTrimCoordinates(), s_UpdateSeqGraphLoc(), CSeq_graph_Base::C_Graph::SetByte(), CSeq_graph_Base::SetGraph(), CSeq_graph_Base::SetNumval(), and CByte_graph_Base::SetValues().
Referenced by BOOST_AUTO_TEST_CASE(), and TrimSequenceAndAnnotation().
void TrimSequenceAndAnnotation | ( | CBioseq_Handle | bsh, |
const TCuts & | cuts, | ||
EInternalTrimType | internal_cut_conversion | ||
) |
Trim sequence data and all associated annotation.
Trim sequence data and all associated annotation.
Definition at line 2147 of file seq_entry_edit.cpp.
References CSerialObject::Assign(), CDense_seg_Base::CanGetDim(), CDense_seg_Base::CanGetIds(), CSeq_inst_Base::CanGetLength(), CDense_seg_Base::CanGetLens(), CDense_seg_Base::CanGetNumseg(), CSeq_align_Base::CanGetSegs(), CDense_seg_Base::CanGetStarts(), NStr::CompareNocase(), DeleteProteinAndRenormalizeNucProtSet(), CSeq_annot_Base::C_Data::e_Align, CSeqFeatData_Base::e_Cdregion, CSeq_align_Base::C_Segs::e_Denseg, CSeq_annot_Base::C_Data::e_Ftable, CSeq_annot_Base::C_Data::e_Graph, CSeq_feat_Base::GetData(), CSeq_align_Base::C_Segs::GetDenseg(), CBioseq_Handle::GetEditHandle(), CBioseq_Handle::GetInst(), CSeq_inst_Base::GetLength(), CMappedFeat::GetOriginalFeature(), CMappedGraph::GetOriginalGraph(), CAlign_CI::GetOriginalSeq_align(), CSeq_align_Base::GetSegs(), CAlign_CI::GetSeq_align_Handle(), CMappedGraph::GetSeq_graph_Handle(), GetSortedCuts(), CMappedGraph::GetTitle(), CSeq_feat_Base::IsSetData(), CSeq_feat_Base::IsSetProduct(), CMappedGraph::IsSetTitle(), CSeq_align_Handle::Replace(), CSeq_feat_EditHandle::Replace(), CSeq_graph_Handle::Replace(), RetranslateCdregion(), s_BasicValidation(), s_GetRetainedRange(), CSeq_feat_Base::SetData(), CBioseq_EditHandle::SetInst(), TrimSeqAlign(), TrimSeqData(), TrimSeqFeat(), TrimSeqGraph(), CSeq_align_Base::C_Segs::Which(), and CSeqFeatData_Base::Which().
Referenced by BOOST_AUTO_TEST_CASE().