: m_NumUpdated(0), m_NumSkipped(0), m_UpdEntry(0),
m_Scope(0)
96wxFileDialog openDlg(
NULL,
wxT(
"Open a file"), wxEmptyString, wxEmptyString, ext, wxFD_OPEN | wxFD_FILE_MUST_EXIST);
97 if(openDlg.ShowModal() != wxID_OK)
100wxString path = openDlg.GetPath();
126 "Failed to recognize the format of update sequence. Please try ASN.1 or Fasta.\n"+ e.
GetMsg());
140oi = objIstrm->ReadObject();
147 if(oi.
GetName() ==
"Seq-entry") {
153 else if(oi.
GetName() ==
"Seq-submit") {
182 for(
auto i= 0;
i< msg_listener->
Count(); ++
i) {
231 boolonly_proteins =
true;
234only_proteins =
false;
250 if(matches.
find(idh) == matches.
end())
257 for(
const auto& m : matches) {
281 if(update_pairs.
empty()) {
289 for(
auto&& it : update_pairs) {
299 if(!old_bsh || !upd_bsh) {
304toAppendIdent.emplace(old_idh, upd_idh);
308toAppendNonIdent.emplace(old_idh, upd_idh);
323 if(toAppendNonIdent.
empty() && toAppendIdent.
empty()) {
324 LOG_POST(
Info<<
"AppendSequenceInputs was unnecessarily called.");
330 returnnonidenticalsOk && identicalsOk;
348 if(updatepairs.
empty()) {
352 for(
auto&& it : updatepairs) {
359inputmap.
insert(make_pair(it.first, updInput));
369 returnnonidenticalsOk && identicalsOk;
374 if(updatepairs.
empty()) {
378 for(
auto&& it : updatepairs) {
387 catch(exception &) {
388 string msg(
"Blasting between ");
389 msg.append(it.first.AsString());
390 msg.append(
" and ");
391 msg.append(it.second.AsString());
392 msg.append(
" has failed. ");
396inputmap.
insert(make_pair(it.first, updInput));
405 returnnonident_it->second;
409 returnident_it->second;
static CRef< CScope > m_Scope
User-defined methods of the data storage class.
Base class for reading FASTA sequences.
static wxString GetDialogFilter(EFileType fileType)
CFormatHints & AddPreferredFormat(TFormat fmt)
Mark the format as preferred.
CFormatHints & DisableAllNonpreferred(void)
Disable all formats not marked as preferred.
Class implements different ad-hoc unreliable file format identifications.
CFormatHints & GetFormatHints(void)
Get format hints.
EFormat
The formats are checked in the same order as declared here.
@ eFasta
FASTA format sequence record, CFastaReader.
@ eUnknown
unknown format
EFormat GuessFormat(EMode)
Sequence update exception class.
static CSimpleClipboard & Instance()
Template class for iteration on objects of class C (non-medifiable version)
TSeqIDHVector m_UnmatchedUpdates
objects::CSeq_inst::EMol m_MolType
TOldToUpdateMap m_NonIdentPairs
bool x_ReadUpdateSeqs_Fasta(CNcbiIstream &istr, objects::ILineErrorListener *msg_listener)
objects::CSeq_entry_Handle m_OldSeh
vector< objects::CSeq_id_Handle > TSeqIDHVector
bool x_ReadFromStream(CNcbiIstream &istr, objects::ILineErrorListener *msg_listener)
TOldToUpdateMap m_IdenticalPairs
bool HaveIdenticalResidues(const objects::CSeq_id_Handle &idh1, const objects::CSeq_id_Handle &idh2)
CRef< CUpdateSeq_Input > GetUpdateInput(const objects::CSeq_id_Handle &idh) const
bool ReadUpdSeqs_FromClipboard(objects::ILineErrorListener *msg_listener)
~CUpdateMultipleSeq_Input()
CRef< objects::CSeq_entry > m_UpdEntry
bool PrepareMultipleSequenceInputsForUnitTest()
bool SetOldEntryAndScope(const objects::CSeq_entry_Handle &tse)
bool x_ReadUpdateSeqs_ASN(CNcbiIstream &istr)
void PrepareMultipleSequenceInputs()
bool x_CreateUpdateSeqInputForUnitTest(const TOldToUpdateMap &updatepairs, TIDToUpdInputMap &inputmap)
bool ReadUpdSeqs_FromFile(objects::ILineErrorListener *msg_listener)
CRef< objects::CScope > m_Scope
bool AppendOld_UpdateSeqPairs(const TOldToUpdateMap &update_pairs)
TIDToUpdInputMap m_IdenticalUpdates
bool SetUpdateEntry(CRef< objects::CSeq_entry > update)
TIDToUpdInputMap m_NonIdentUpdates
TSeqIDHVector m_WithoutUpdates
CUpdateMultipleSeq_Input(void)
bool x_MatchIdsAndAddUpdateToScope()
bool x_CreateUpdateSeqInput(const TOldToUpdateMap &updatepairs, TIDToUpdInputMap &inputmap)
Sets up the old and the update sequences, and generates the alignment between them.
void CalculateAlignmentForUnitTest(void)
Calculates the alignment between the old and the update sequence, sets m_Align member.
virtual size_t Count() const =0
virtual const ILineError & GetError(size_t) const =0
0-based error retrieval.
@ eProblem_InvalidResidue
@ eProblem_IgnoredResidue
@ eProblem_GeneralParsingError
virtual EProblem Problem(void) const =0
virtual const string & ErrorMessage() const
virtual EDiagSev GetSeverity(void) const
const_iterator end() const
iterator_bool insert(const value_type &val)
const_iterator find(const key_type &key) const
static void FindMatches(objects::CSeq_inst::EMol type, objects::CSeq_entry_Handle &oldSeq, objects::CSeq_entry &updEntry, TSeqIdHMap &matches, TSeqIdHVector &unmatched)
static bool HaveIdenticalResidues(const objects::CBioseq_Handle &bsh1, const objects::CBioseq_Handle &bsh2)
static objects::CSeq_id_Handle GetGoodSeqIdHandle(const objects::CBioseq_Handle &bsh)
Operators to edit gaps in sequences.
@ eNoOwnership
No ownership is assumed.
EDiagSev
Severity level for the posted diagnostics.
#define LOG_POST(message)
This macro is deprecated and it's strongly recomended to move in all projects (except tests) to macro...
@ eDiag_Error
Error message.
@ eDiag_Warning
Warning message.
@ eDiag_Fatal
Fatal error â guarantees exit(or abort)
@ eDiag_Critical
Critical error message.
void Error(CExceptionArgs_Base &args)
TErrCode GetErrCode(void) const
Get error code.
#define NCBI_THROW(exception_class, err_code, message)
Generic macro to throw an exception, given the exception class, error code and message string.
const string & GetMsg(void) const
Get message string.
void Info(CExceptionArgs_Base &args)
static const TObjectType * SafeCast(TTypeInfo type)
@ eSerial_AsnText
ASN.1 text.
CRef< CSeq_entry > ReadSet(int max_seqs=kMax_Int, ILineErrorListener *pMessageListener=nullptr)
Read multiple sequences (by default, as many as are available.)
long TFlags
binary OR of EFlags
@ fHyphensIgnoreAndWarn
When a hyphen is encountered in seq data, ignore it but warn.
@ fUniqueIDs
Forbid duplicate IDs.
@ fAddMods
Parse defline mods and add to SeqEntry.
@ fNoSplit
Don't split out ambiguous sequence regions.
CConstBeginInfo ConstBegin(const C &obj)
Get starting point of non-modifiable object hierarchy.
TObjectPtr GetObjectPtr(void) const
Get pointer to object.
static CObjectIStream * Open(ESerialDataFormat format, CNcbiIstream &inStream, bool deleteInStream)
Create serial object reader and attach it to an input stream.
const string & GetName(void) const
Get type name.
TObjectType * GetNCPointer(void) const THROWS_NONE
Get pointer,.
CRef< C > Ref(C *object)
Helper functions to get CRef<> and CConstRef<> objects.
void Reset(void)
Reset reference object.
bool IsNull(void) const THROWS_NONE
Check if pointer is null â same effect as Empty().
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
IO_PREFIX::istream CNcbiIstream
Portable alias for istream.
IO_PREFIX::ifstream CNcbiIfstream
Portable alias for ifstream.
@ eMol_na
just a nucleic acid
The blob sat and sat key Both must be positive integers</td > n< td > Non empty string The interpretation of the blob id depends on a processor Cassandra n processor expects the following format
CRef< CSeq_entry > SeqEntryFromSeqSubmit(const CSeq_submit &submit)
Create a Seq-entry from a Seq-submit.
static SLJIT_INLINE sljit_ins msg(sljit_gpr r, sljit_s32 d, sljit_gpr x, sljit_gpr b)
static const char * kNASeqCouldNotRead
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