⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_seqport.cpp

📁 ncbi源码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
        CRef<CSeq_data> in_seq1(new CSeq_data);        CRef<CSeq_data> in_seq2(new CSeq_data);        CSeqportUtil::GetCopy(in_seq, in_seq1, uBeginIdx, uLength);        CSeqportUtil::GetCopy(in_seq, in_seq2, 0, 0);        TSeqPos uLen = CSeqportUtil::Append(out_seq,                                      *in_seq1.GetPointer(),                                      uBeginIdx, uLength,                                      *in_seq2.GetPointer(),                                       uBeginIdx2, uLength2);            cout << endl << "Append Results" << endl;        cout << "uSeqLen = " << uSeqLen << endl;        cout << "(uBeginIdx1, uLength1) = (" << uBeginIdx             << ", " << uLength << ")" << endl;        cout << "(uBeginIdx2, uLength2) = (" << uBeginIdx2             << ", " << uLength2 << ")" << endl;        cout << "Return length = " << uLen << endl;          //Print the Append out_seq        cout << "Append output sequence is: " << endl;        DisplaySeq(*out_seq, MAX_DISPLAY);                //Reset out_seq to free memory        out_seq->Reset();    }    STD_CATCH("");}void CSeqportTestApp::InPlaceReverseComplementTest(const CSeq_data&     in_seq,              CSeq_data*           out_seq,              TSeqPos              uBeginIdx,              TSeqPos              uLength){    TSeqPos uSeqLen=0;    try{        CSeqportUtil::GetCopy(in_seq, out_seq, 0, 0);        TSeqPos uLen            = CSeqportUtil::ReverseComplement(out_seq, uBeginIdx, uLength);        cout << endl << "In-place reverse complement results" << endl;        cout << "uSeqLen = " << uSeqLen << endl;        cout << "(uBeginIdx, uLength) = (" << uBeginIdx             << ", " << uLength << ")" << endl;        cout << "Return length = " << uLen << endl;          //Print the In-place reverse-complement sequence        cout << "In-place reverse-complement sequence is: " << endl;        DisplaySeq(*out_seq, MAX_DISPLAY);                //Reset out_seq to free memory        out_seq->Reset();    }    STD_CATCH("");}void CSeqportTestApp::InCopyReverseComplementTest(const CSeq_data&     in_seq,              CSeq_data*           out_seq,              TSeqPos              uBeginIdx,              TSeqPos              uLength){    TSeqPos uSeqLen=0;    try{        TSeqPos uLen = CSeqportUtil::ReverseComplement            (in_seq, out_seq, uBeginIdx, uLength);            cout << endl << "Reverse-complement Results" << endl;        cout << "uSeqLen = " << uSeqLen << endl;        cout << "(uBeginIdx, uLength) = (" << uBeginIdx             << ", " << uLength << ")" << endl;        cout << "Return length = " << uLen << endl;          //Print the reverse-complement sequence        cout << "Reverse-complement sequence is: " << endl;        DisplaySeq(*out_seq, MAX_DISPLAY);                //Reset out_seq to free memory        out_seq->Reset();    }    STD_CATCH("");}void CSeqportTestApp::InPlaceReverseTest(const CSeq_data&     in_seq,              CSeq_data*           out_seq,              TSeqPos              uBeginIdx,              TSeqPos              uLength){    TSeqPos uSeqLen=0;    try{        CSeqportUtil::GetCopy(in_seq, out_seq, 0, 0);        TSeqPos uLen =             CSeqportUtil::Reverse(out_seq, uBeginIdx, uLength);            cout << endl << "In-place Reverse Results" << endl;        cout << "uSeqLen = " << uSeqLen << endl;        cout << "(uBeginIdx, uLength) = (" << uBeginIdx             << ", " << uLength << ")" << endl;        cout << "Return length = " << uLen << endl;          //Print the In-place reverse sequence        cout << "In-place reverse sequence is: " << endl;        DisplaySeq(*out_seq, MAX_DISPLAY);                //Reset out_seq to free memory        out_seq->Reset();    }    STD_CATCH("");}void CSeqportTestApp::InCopyReverseTest(const CSeq_data&     in_seq,              CSeq_data*           out_seq,              TSeqPos              uBeginIdx,              TSeqPos              uLength){    TSeqPos uSeqLen=0;    try{        TSeqPos uLen = CSeqportUtil::Reverse            (in_seq, out_seq, uBeginIdx, uLength);            cout << endl << "Reverse Results" << endl;        cout << "uSeqLen = " << uSeqLen << endl;        cout << "(uBeginIdx, uLength) = (" << uBeginIdx <<            ", " << uLength << ")" << endl;        cout << "Return length = " << uLen << endl;          //Print the reverse sequence        cout << "Reverse sequence is: " << endl;        DisplaySeq(*out_seq, MAX_DISPLAY);                //Reset out_seq to free memory        out_seq->Reset();    }    STD_CATCH("");}void CSeqportTestApp::InPlaceComplementTest(const CSeq_data&     in_seq,              CSeq_data*           out_seq,              TSeqPos              uBeginIdx,              TSeqPos              uLength){    TSeqPos uSeqLen=0;    try{        CSeqportUtil::GetCopy(in_seq, out_seq, 0, 0);        TSeqPos uLen = CSeqportUtil::Complement            (out_seq, uBeginIdx, uLength);            cout << endl << "In-place Complement Results" << endl;        cout << "uSeqLen = " << uSeqLen << endl;        cout << "(uBeginIdx, uLength) = (" << uBeginIdx <<            ", " << uLength << ")" << endl;        cout << "Return length = " << uLen << endl;          //Print the In-place complement sequence        cout << "In-place complement sequence is: " << endl;        DisplaySeq(*out_seq, MAX_DISPLAY);                //Reset out_seq to free memory        out_seq->Reset();    }    STD_CATCH("");} void CSeqportTestApp::InCopyComplementTest(const CSeq_data&     in_seq,              CSeq_data*           out_seq,              TSeqPos              uBeginIdx,              TSeqPos              uLength){    TSeqPos uSeqLen=0;    try{        TSeqPos uLen = CSeqportUtil::Complement            (in_seq, out_seq, uBeginIdx, uLength);            cout << endl << "Complement Results" << endl;        cout << "uSeqLen = " << uSeqLen << endl;        cout << "(uBeginIdx, uLength) = (" << uBeginIdx <<            ", " << uLength << ")" << endl;        cout << "Return length = " << uLen << endl;          //Print the complement sequence        cout << "Complement sequence is: " << endl;        DisplaySeq(*out_seq, MAX_DISPLAY);                //Reset out_seq to free memory        out_seq->Reset();    }    STD_CATCH("");      }void CSeqportTestApp::FastValidateTest(const CSeq_data&     in_seq,              TSeqPos              uBeginIdx,              TSeqPos              uLength){    TSeqPos uSeqLen=0;    try{        bool isValid;            isValid =             CSeqportUtil::FastValidate(in_seq, uBeginIdx, uLength);            cout << endl << "Fast Validation Results" << endl;        cout << "uSeqLen = " << uSeqLen << endl;        cout << "(uBeginIdx, uLength) = (" << uBeginIdx             << ", " << uLength << ")" <<            endl;        if(isValid)            cout << "in_seq is VALID" << endl;        else            cout << "in_seq is NOT VALID" << endl;    }    STD_CATCH("");    }void CSeqportTestApp::ValidateTest(const CSeq_data&     in_seq,              TSeqPos              uBeginIdx,              TSeqPos              uLength){    TSeqPos uSeqLen=0;    try{        vector<TSeqPos> badIdx;                CSeqportUtil::Validate(in_seq, &badIdx, uBeginIdx, uLength);                cout << endl << "Validation Results" << endl;        cout << "uSeqLen = " << uSeqLen << endl;        cout << "(uBeginIdx, uLength) = (" << uBeginIdx <<            ", " << uLength << ")" << endl;        if(badIdx.size() <= 50 && badIdx.size() > 0)            {                cout << "Bad indices are:" << endl;                vector<TSeqPos>::iterator itor;                for(itor = badIdx.begin(); itor != badIdx.end(); ++itor)                    cout << *itor << " ";                cout << endl;            }        else            {                cout << "The number of bad indices are: " << badIdx.size()                     << endl;            }        badIdx.clear();    }    STD_CATCH("");}void CSeqportTestApp::GetCopyTest(const CSeq_data&     in_seq,              CSeq_data*           out_seq,              TSeqPos              uBeginIdx,              TSeqPos              uLength){    TSeqPos uSeqLen=0;    try{              TSeqPos uLen = CSeqportUtil::GetCopy            (in_seq, out_seq, uBeginIdx, uLength);          cout << endl << "Copy Results" << endl;        cout << "uSeqLen = " << uSeqLen  << endl;        cout << "Return length = " << uLen << endl;          //Print the out sequence        cout << "(uBeginIdx, uLength) = (" << uBeginIdx <<            ", " << uLength << ")" << endl;        cout << "out_seq is: " << endl;        DisplaySeq(*out_seq, MAX_DISPLAY);                out_seq->Reset();    }    STD_CATCH("");}void CSeqportTestApp::KeepTest(const CSeq_data&     in_seq,              CSeq_data*           out_seq,              TSeqPos              uBeginIdx,              TSeqPos              uLength){    try{        CSeqportUtil::GetCopy(in_seq, out_seq, 0, 0);          TSeqPos uLen            = CSeqportUtil::Keep(out_seq, uBeginIdx, uLength);          cout << endl << "Keep Results" << endl;        cout << "uLength = " << uLength  << endl;        cout << "Return length = " << uLen << endl;          //Print the out sequence        cout << "(uBeginIdx, uLength) = (" << uBeginIdx <<            ", " << uLength << ")" << endl;        cout << "out_seq is: " << endl;        DisplaySeq(*out_seq, MAX_DISPLAY);        out_seq->Reset();    }    STD_CATCH("");}void CSeqportTestApp::PackTest(const CSeq_data&     in_seq,              CSeq_data*           out_seq,              TSeqPos              uBeginIdx,              TSeqPos              uLength){    try{        CSeqportUtil::GetCopy(in_seq, out_seq, 0, 0);          TSeqPos uLen = CSeqportUtil::Pack(out_seq, uLength);          cout << endl << "Pack Results" << endl;        cout << "uLength = " << uLength  << endl;        cout << "Return length = " << uLen << endl;          //Print the out sequence        cout << "(uBeginIdx, uLength) = (" << uBeginIdx <<            ", " << uLength << ")" << endl;        switch(out_seq->Which()){        case CSeq_data::e_Iupacna:            cout << "out_seq is Iupacna" << endl;            break;        case CSeq_data::e_Ncbi4na:            cout << "out_seq is Ncbi4na" << endl;            break;        case CSeq_data::e_Ncbi2na:            cout << "out_seq is Ncbi2na" << endl;            break;        case CSeq_data::e_Ncbieaa:            cout << "out_seq is Ncbieaa" << endl;            break;        case CSeq_data::e_Ncbistdaa:            cout << "out_seq is Ncbistdaa" << endl;            break;        case CSeq_data::e_Iupacaa:            cout << "out_seq is Iupacaa" << endl;            break;        default:            cout << "out_seq type is not supported." << endl;            break;        }        cout << "out_seq is: " << endl;        DisplaySeq(*out_seq, MAX_DISPLAY);                out_seq->Reset();    }    STD_CATCH("");}void CSeqportTestApp::Exit() {    return;}void CSeqportTestApp::DisplaySeq(const CSeq_data& seq, TSeqPos uSize){    //Print the sequence    switch (seq.Which()) {    case CSeq_data::e_Ncbi2na:        {            const vector<char>& v = seq.GetNcbi2na().Get();            if (v.size() <= 12) {                ITERATE (vector<char>, i, v) {                    cout << std::hex << (unsigned short)(unsigned char) *i                         << " " << endl;                }            }            cout << "seq size = " << v.size() << endl;            break;        }    case CSeq_data::e_Ncbi4na:        {            const vector<char>& v = seq.GetNcbi4na().Get();            if (v.size() <= 24) {                ITERATE (vector<char>, i, v) {                    cout << std::hex << (unsigned short)(unsigned char) *i                         << " " << endl;                }            }            cout << "seq size = " << v.size() << endl;            break;        }    case CSeq_data::e_Iupacna:        if(seq.GetIupacna().Get().size() <= uSize)            cout << seq.GetIupacna().Get() << endl;        cout << "seq size = " << seq.GetIupacna().Get().size() << endl;        break;    case CSeq_data::e_Ncbieaa:        if(seq.GetNcbieaa().Get().size() <= uSize)            cout << seq.GetNcbieaa().Get() << endl;;        cout << "seq size = " << seq.GetNcbieaa().Get().size() << endl;        break;    case CSeq_data::e_Ncbistdaa:        {            const vector<char>& v = seq.GetNcbistdaa().Get();            if (v.size() <= uSize) {                ITERATE (vector<char>, i, v) {                    cout << std::hex << (unsigned short)(unsigned char) *i                         << " " << endl;                }            }            cout << "seq size = " << v.size() << endl;            break;        }    case CSeq_data::e_Iupacaa:        if(seq.GetIupacaa().Get().size() <= uSize)            cout << seq.GetIupacaa().Get() << endl;        cout << "seq size = " << seq.GetIupacaa().Get().size() << endl;        break;    default:         cout << "Display of requested sequence type not supported" << endl;    }}int main(int argc, const char* argv[]){    CSeqportTestApp theApp;    return theApp.AppMain(argc, argv, 0, eDS_Default, 0, "seqport_test");} /* * --------------------------------------------------------------------------- * $Log: test_seqport.cpp,v $ * Revision 1000.3  2004/06/01 19:33:33  gouriano * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.13 * * Revision 1.13  2004/05/19 17:25:27  gorelenk * Added include of PCH - ncbi_pch.hpp * * Revision 1.12  2004/01/30 17:21:24  shomrat * Removed TranslateTest due to deprecated translation code * * Revision 1.11  2003/11/06 16:13:59  shomrat * changed call to Pack due to change in its signature * * Revision 1.10  2003/04/15 19:48:06  vasilche * Fixed uninitialized variable. * * Revision 1.9  2003/03/11 15:53:25  kuznets * iterate -> ITERATE * * Revision 1.8  2002/07/01 16:15:08  clausen * Fixed defined but not used warnings * * Revision 1.7  2002/05/14 17:42:32  ucko * Fix type of from_to. * * Revision 1.6  2002/05/14 15:17:15  clausen * Reorganized code and added tests for new CSeqportUtil methods * * Revision 1.5  2002/05/03 21:28:15  ucko * Introduce T(Signed)SeqPos. * * Revision 1.4  2002/01/10 20:34:15  clausen * Added tests for GetIupacaa3, GetCode, and GetIndex * * Revision 1.3  2001/12/07 18:52:05  grichenk * Updated "#include"-s and forward declarations to work with the * new datatool version. * * Revision 1.2  2001/11/13 12:14:29  clausen * Changed call to CGencode::Translate to reflect new type for code breaks * * Revision 1.1  2001/08/24 00:44:05  vakatov * Initial revision * * =========================================================================== */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -