📄 test_seqport.cpp
字号:
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 + -