#include <subsetalgo.h>
Inheritance diagram for SubsetAlgo:
Public Member Functions | |
SubsetAlgo (TrapperDoc *pDoc_, std::set< db_recno_t > &recnoList, AlgoParam *param) | |
void | start () |
Definition at line 6 of file subsetalgo.h.
|
Definition at line 9 of file subsetalgo.h. 00009 : 00010 RWAlgo(pDoc_, recnoList, param) {}
|
|
Implements RWAlgo. Definition at line 14 of file subsetalgo.cc. References MAl_Readonly::get_base(), MAl_Readonly::get_len(), MAl_Readonly::get_name(), MAl_Readonly::get_num_seq(), MAl_Readonly::get_qual(), TrapperView::getDocument(), RWAlgo::getMAl(), Algo::my_param, TrapperDoc::title(), and ViewParam::view(). 00015 { 00016 if ( getMAl()->get_num_seq() == 0 ) { 00017 // cerr<<"Nothing to be done here! "<<endl; 00018 return; 00019 } 00020 00021 ViewParam* param = dynamic_cast<ViewParam*>(my_param); 00022 assert(param); 00023 00024 QString title = param->view()->getDocument()->title(); 00025 00026 QString currdir = QDir::currentDirPath(); 00027 QString contig = title.section( '/', -2 ); 00028 00029 QString header = contig + ".subset.seq"; 00030 QString default_file_name = currdir + '/' + header; 00031 00032 00033 QString filename = QFileDialog::getSaveFileName( default_file_name, 00034 0, 00035 0, 00036 "save seqs file dialog" 00037 "Choose a filename to save sequences under" ); 00038 00039 00040 if ( filename.isEmpty() ) return; 00041 00042 if ( QFile::exists( filename ) && 00043 QMessageBox::question( 00044 0, 00045 tr("Overwrite File? -- Trapper"), 00046 tr("A file called %1 already exists." 00047 "Do you want to overwrite it?") 00048 .arg( filename ), 00049 tr("&Yes"), tr("&No"), 00050 QString::null, 0, 1 ) ) { 00051 00052 return; 00053 } 00054 00055 default_file_name = filename + ".qual"; 00056 00057 QString filename_qual = QFileDialog::getSaveFileName( default_file_name, 00058 0, 00059 0, 00060 "save quals file dialog" 00061 "Choose a filename to save quality values under" ); 00062 00063 00064 if ( filename_qual.isEmpty() ) return; 00065 00066 if ( QFile::exists( filename_qual ) && 00067 QMessageBox::question( 00068 0, 00069 tr("Overwrite File? -- Trapper"), 00070 tr("A file called %1 already exists." 00071 "Do you want to overwrite it?") 00072 .arg( filename_qual ), 00073 tr("&Yes"), tr("&No"), 00074 QString::null, 0, 1 ) ) { 00075 00076 return; 00077 } 00078 00079 00080 ofstream outFile(filename); 00081 ofstream outFileQ(filename_qual); 00082 00083 00084 for( size_t i = 0; i < getMAl()->get_num_seq(); i++ ) { 00085 outFile<<'>'<<getMAl()->get_name(i)<<'\n'; 00086 outFileQ<<'>'<<getMAl()->get_name(i)<<'\n'; 00087 int cnt(0); 00088 int cntQ(0); 00089 for( size_t j = 0; j < getMAl()->get_len(i); j++ ) { 00090 char base = getMAl()->get_base(i, j); 00091 if ( base == '*' || base == '-' ) { 00092 continue; 00093 } 00094 int qual = getMAl()->get_qual(i, j); 00095 cnt++; 00096 cntQ++; 00097 outFile<<base; 00098 outFileQ<<qual<<' '; 00099 if ( cnt % 50 == 0 ) { 00100 outFile<<'\n'; 00101 } 00102 if ( cntQ % 15 == 0 ) { 00103 outFileQ<<'\n'; 00104 } 00105 00106 } 00107 if ( cnt % 50 != 0 ) { 00108 outFile<<'\n'; 00109 } 00110 if ( cntQ % 15 != 0 ) { 00111 outFileQ<<'\n'; 00112 } 00113 } 00114 00115 outFile.close(); 00116 outFileQ.close(); 00117 00118 00119 }
|