void CLocateIgorDlg::OnBrowseButton() { CFileDialog aFileDlg(TRUE, "", m_IgorPath); int nResponse = aFileDlg.DoModal(); if(nResponse == IDOK) { m_IgorPath = _T(aFileDlg.m_ofn.lpstrFile); UpdateData(FALSE); } }
structpClampResultNode CEvlCorrection::ReadpClampResultFile() { FILE *fpAbfIn; CString sAbfFileName; CFileDialog aFileDlg( true, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, NULL, NULL ); char* pch="text form of pClamp9 result Files (*.atf)\0*.atf\0"; aFileDlg.m_ofn.lpstrFilter=pch; aFileDlg.m_ofn.lpstrTitle="Import a pClamp9 result file"; char cTemp,cTemp0; cTemp0='Z'; int nChar=0; int nLine=0; float fLine[26]; float fTemp=0.f; int nLineLength=26; structpClampResultNode aNode; aNode.nLineLength=26; aNode.vfData.clear(); aNode.nNumLines=0; int i; if(aFileDlg.DoModal()==IDOK) { m_sClampfitReultFileName=aFileDlg.GetPathName(); fpAbfIn=fopen(m_sClampfitReultFileName,"r"); while(!feof(fpAbfIn)) { nChar++; fscanf(fpAbfIn,"%c",&cTemp); if(cTemp=='A'&&cTemp0=='p') { for(i=0;i<nLineLength;i++) { fscanf(fpAbfIn,"%f",&fTemp); aNode.vfData.push_back(fTemp); } nLine++; } cTemp0=cTemp; } aNode.nNumLines=nLine; fclose(fpAbfIn); } return aNode; }
void CMAlign::OutputMAlign() { FILE* GCGFile; char* pch="Multiple Sequence Alignment GCG format (*.gcg or *.msf)\0*.gcg\0*.msf\0\0"; CFileDialog aFileDlg( false, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT|OFN_EXPLORER|OFN_ENABLESIZING, NULL, NULL ); aFileDlg.m_ofn.lpstrFilter=pch; int i,j; char sLine[5000]; // if(aFileDlg.DoModal()==IDOK) // { m_sMAlignFileName="Test.GCG"; // m_sMAlignFileName=aFileDlg.GetPathName(); GCGFile=fopen(m_sMAlignFileName,"w"); for(i=0;i<m_nNumOfSeq;i++) { strcpy(sLine,m_vectsSeqNames[i].c_str()); fprintf(GCGFile,"%s\n",sLine); } fprintf(GCGFile,"\n"); fprintf(GCGFile,"\n"); for(i=0;i<m_nNumOfSeq;i++) { strcpy(sLine,m_vectsSequence[i].c_str()); fprintf(GCGFile,"%s\n",sLine); fprintf(GCGFile,"\n"); } fprintf(GCGFile,"\n"); fprintf(GCGFile,"\n"); IntSequences(); for(i=0;i<m_nNumOfSeq;i++) { int nSize=m_vectnSequence[i].size(); for(j=0;j<nSize;j++) { fprintf(GCGFile,"%2d",m_vectnSequence[i].at(j)); } fprintf(GCGFile,"\n\n"); } fclose(GCGFile); // } }
void CProcessor::ImportVCF() { // Set up the open dialog box AFX_MANAGE_STATE(AfxGetStaticModuleState( )); CFileDialog aFileDlg( TRUE, "*.vcf" ); aFileDlg.m_ofn.nFilterIndex = 1; // Set to all txt files aFileDlg.m_ofn.lpstrFilter = "Business Card (vCard) Files\0*.vcf\0All files\0*.*\0\0"; aFileDlg.m_ofn.lpstrTitle = "Import vCard files"; aFileDlg.m_ofn.Flags |= OFN_ALLOWMULTISELECT; // Evaluate the open dialog box if(aFileDlg.DoModal() == IDOK) { CString err_nobirthday; CString err_badfile; CString err_noname; CString success; POSITION pos = aFileDlg.GetStartPosition(); while( pos ) { CString file = aFileDlg.GetNextPathName(pos); CBirthday* pbd = new CBirthday; switch( pbd->LoadVCF(file) ) { case IMPORT_SUCCESS: if( success.GetLength() ) success += ", "; success += pbd->m_name + "(" + file + ")"; Add(pbd); break; case IMPORT_NOBIRTHDAY: case IMPORT_BADFILE: case IMPORT_NONAME: default: AfxMessageBox( "Problem importing file:\n"+file, MB_OK|MB_SYSTEMMODAL, 0 ); delete pbd; } } } }
void CArtifactsHandling::ReplaceSegments(float *pfData, float *pfAdjustedData, int nSizeOfData, float fSampleInterval, CHistory* pcHistory) { const int nLength=40; bool bDone=false; float fBegin=0.f,fEnd=0.f,fAmpBegin=0.f,fAmpEnd=0.f; int nFirstPoint=0,nLastPoint=0; int nWindowSize=0; float fLength=0.f; m_pfData=pfData; m_pfAdjustedData=pfAdjustedData; m_nDataSize=nSizeOfData; m_fSampleInterval=fSampleInterval; CSmoothingOptionDialog aSmoothDlg; if(aSmoothDlg.DoModal()==IDOK) { aSmoothDlg.GetParameters(fBegin,fLength,nWindowSize); m_nBrigeSegStart=int(fBegin*1000.f/m_fSampleInterval); m_nBrigeSegLength=int(fLength*1000.f/m_fSampleInterval); m_fBrigeAmpBegin=SegAverage(m_nBrigeSegStart,nLength); m_fBrigeAmpEnd=SegAverage(m_nBrigeSegStart+m_nBrigeSegLength,-nLength); m_fBrigeSlope=(m_fBrigeAmpEnd-m_fBrigeAmpBegin)/float(m_nBrigeSegLength); m_structSegmentsReplacingNode.nBrigeBegin=m_nBrigeSegStart; m_structSegmentsReplacingNode.nBrigeLength=m_nBrigeSegLength; while(!bDone) { CSegDeletOptionDialog aDlg; if(aDlg.DoModal()==IDOK) { aDlg.GetParameters(fBegin,fAmpBegin,fEnd,fAmpEnd,bDone); if(fEnd>fBegin) { nFirstPoint=int(fBegin*1000.f/m_fSampleInterval); nLastPoint=int(fEnd*1000.f/m_fSampleInterval)+1; //Because the segment is define as [n1,n2); if(fAmpBegin>999999) { fAmpBegin=*(m_pfData+nFirstPoint); fAmpEnd=*(m_pfData+nLastPoint); } m_structSegmentsReplacingNode.nSegBegin=nFirstPoint; m_structSegmentsReplacingNode.nSegLength=nLastPoint-nFirstPoint+1; BrigeSegment(nFirstPoint, nLastPoint); pcHistory->WriteHistoryNode(m_structSegmentsReplacingNode); } else if(fBegin<0) { CString sAbfFileName; CFileDialog aFileDlg( true, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, NULL, NULL ); if(aFileDlg.DoModal()==IDOK) { sAbfFileName=aFileDlg.GetPathName(); FILE* fp=fopen(sAbfFileName,"r"); while(!feof(fp)) { fscanf(fp,"%f%f",&fBegin,&fEnd); nFirstPoint=int(fBegin*1000.f/m_fSampleInterval); nLastPoint=int(fEnd*1000.f/m_fSampleInterval)+1; //Because the segment is define as [n1,n2); BrigeSegment(nFirstPoint,nLastPoint); m_structSegmentsReplacingNode.nSegBegin=nFirstPoint; m_structSegmentsReplacingNode.nSegLength=nLastPoint-nFirstPoint+1; pcHistory->WriteHistoryNode(m_structSegmentsReplacingNode); } bDone=true; } } else { bDone=true; } } } } }
void CMAlign::ReadMAlign() { FILE* GCGFile; char* pch="Multiple Sequence Alignment GCG format (*.gcg or *.msf)\0*.gcg\0*.msf\0\0"; CFileDialog aFileDlg( true, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT|OFN_EXPLORER|OFN_ENABLESIZING, NULL, NULL ); aFileDlg.m_ofn.lpstrFilter=pch; char aString[80]; vector <bool> bAssigned; bool bReadChannelName=false; if(aFileDlg.DoModal()==IDOK) { m_sMAlignFileName=aFileDlg.GetPathName(); GCGFile=fopen(m_sMAlignFileName,"r"); m_nNumOfSeq=0; while(!feof(GCGFile)) { fscanf(GCGFile,"%s",aString); if(strcmp(aString,"Name:")==0) { fscanf(GCGFile,"%s",aString); m_nNumOfSeq++; bAssigned.push_back(false); m_vectsSeqNames.push_back(aString); } if(strcmp(aString,"//")==0) { while(!feof(GCGFile)) { for(int i=0;i<m_nNumOfSeq;i++) { if(!bReadChannelName)fscanf(GCGFile,"%s",aString); bReadChannelName=false; for(int j=0;j<5;j++) { if(!feof(GCGFile)) { fscanf(GCGFile,"%s",aString); if(IsChannelName(aString)) { j=5; bReadChannelName=true; } else { if(!(bAssigned[i])) { m_vectsSequence.push_back(aString); bAssigned[i]=true; } else { m_vectsSequence[i].append(aString); } } } } } } } } } PositionConversion(); OutputMAlign(); }
void CAbfTraceIdealization::ExportLocalExtremaHist() { FILE *fpOut; CString sAbfFileName; CString sMessage="Can not open the file. Please check if this file is being used by other applications."; CFileDialog aFileDlg( false, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, NULL, NULL ); char* pch="text file (*.txt)\0*.txt\0\0"; aFileDlg.m_ofn.lpstrFilter=pch; aFileDlg.m_ofn.lpstrTitle="Export the local extrema of the trace segments"; float fTemp=0.f; float fAmp=0.f; float fCounts=0.f; float bLargestLine=true; int i,j,nSize; if(aFileDlg.DoModal()==IDOK) { sAbfFileName=aFileDlg.GetPathName(); if(!(fpOut=fopen(sAbfFileName,"wb"))) { // AfxFormatString1(sMessage,-1,sAbfFileName); AfxMessageBox(sMessage,MB_OK,0); } else { for(i=0;i<100000;i++) { bLargestLine=true; for(j=0;j<m_nMaxLevel+1;j++) { fAmp=m_vstructSegMinimaHist[j].fMin+m_vstructSegMinimaHist[j].fInterval*float(i); nSize=m_vstructSegMinimaHist[j].vfHist.size(); if(i<nSize) { fCounts=m_vstructSegMinimaHist[j].vfHist[i]; bLargestLine=false; } else { fCounts=0.; } fprintf(fpOut," %10.2f %16.2f", fAmp, fCounts); } for(j=0;j<m_nMaxLevel+1;j++) { fAmp=m_vstructSegMaximaHist[j].fMin+m_vstructSegMaximaHist[j].fInterval*float(i); nSize=m_vstructSegMaximaHist[j].vfHist.size(); if(i<nSize) { fCounts=m_vstructSegMaximaHist[j].vfHist[i]; bLargestLine=false; } else { fCounts=0.; } fprintf(fpOut," %10.2f %16.2f", fAmp, fCounts); } fprintf(fpOut,"\n"); if(bLargestLine) break; } fclose(fpOut); } } }
void CAbfTraceIdealization::GetLTC() { // TODO: Add your command handler code here FILE *fpIn; CString sFileName; CFileDialog aFileDlg( true, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, NULL, NULL ); char* pch="Level Transition Criteria File (*.ltd)\0*.ltd\0"; aFileDlg.m_ofn.lpstrFilter=pch; aFileDlg.m_ofn.lpstrTitle="Import level transition criteria data file"; char pcField[200]; float fUTCMin,fUTCMax,fDTCMin,fDTCMax,fAmpThred; int nLevels; int nChannels; int nRemoveSSC; int nCalRTLTC; int nLTCFromTraces; int nAmpThredOnly; m_bRemoveSSC=true; //SSC Short small conductance events m_bCalRTLTC=true; //RTLTC Runtime level transition criteria m_bSubConductRefinement=true; m_bLTCFromTraces=true; m_bAmpThredOnly=false; int nSCRefinement; if(aFileDlg.DoModal()==IDOK) { m_vfAmpThreshold.clear(); m_vfAmpThreshold0.clear(); sFileName=aFileDlg.GetPathName(); fpIn=fopen(sFileName,"r"); fscanf(fpIn,"%s %d",pcField,&nLTCFromTraces); if(nLTCFromTraces==0) m_bLTCFromTraces=false; fscanf(fpIn,"%s %d",pcField,&nAmpThredOnly); fscanf(fpIn,"%s %d",pcField,&nLevels); m_nMaxLevel=nLevels-1; // if(m_bLTCFromTraces) //modified on 5o19 // { // for(int i=0;i<nLevels;i++) // { // if(i<=m_nMaxLevel) // { // structLTCNode aLTC; // fscanf(fpIn,"%s %f %s %f %s %f %s %f %s %f",pcField,&fUTCMin,pcField,&fUTCMax,pcField,&fDTCMin,pcField,&fDTCMax,pcField,&fAmpThred); // m_vstructLTC[i].fUTMin=fUTCMin; // m_vstructLTC[i].fUTMax=fUTCMax; // m_vstructLTC[i].fDTMin=fDTCMin; // m_vstructLTC[i].fDTMax=fDTCMax; // m_vfAmpThreshold.push_back(fAmpThred); // m_vfAmpThreshold0.push_back(fAmpThred); // } // } // fscanf(fpIn,"%s %d %s %s",pcField,&nChannels,pcField,sFileName); // m_nChannels=nChannels; // m_sEvlFileName=sFileName; // fclose(fpIn); // } // else // { m_vstructLTC.clear(); for(int i=0;i<nLevels;i++) { structLTCNode aLTC; fscanf(fpIn,"%s %f %s %f %s %f %s %f %s %f",pcField,&fUTCMin,pcField,&fUTCMax,pcField,&fDTCMin,pcField,&fDTCMax,pcField,&fAmpThred); aLTC.fUTMin=fUTCMin; aLTC.fUTMax=fUTCMax; aLTC.fDTMin=fDTCMin; aLTC.fDTMax=fDTCMax; m_vfAmpThreshold.push_back(fAmpThred); m_vfAmpThreshold0.push_back(fAmpThred); m_vstructLTC.push_back(aLTC); } m_vfAmpThreshold.push_back(fAmpThred); m_nMaxLevel=nLevels-1; fscanf(fpIn,"%s %d",pcField,&nRemoveSSC); fscanf(fpIn,"%s %d",pcField,&nCalRTLTC); fscanf(fpIn,"%s %d",pcField,&nSCRefinement); fscanf(fpIn,"%s %d %s %s",pcField,&nChannels,pcField,sFileName); m_nChannels=nChannels; m_sEvlFileName=sFileName; if(nRemoveSSC==0) m_bRemoveSSC=false; if(nCalRTLTC==0) m_bCalRTLTC=false; if(nSCRefinement==0) m_bSubConductRefinement=false; fclose(fpIn); // } if(nAmpThredOnly==1) m_bAmpThredOnly=true; } if(m_bAmpThredOnly) { for(int i=0;i<nLevels;i++) { if(i<=m_nMaxLevel) { structLTCNode aLTC; fscanf(fpIn,"%s %f %s %f %s %f %s %f %s %f",pcField,&fUTCMin,pcField,&fUTCMax,pcField,&fDTCMin,pcField,&fDTCMax,pcField,&fAmpThred); m_vstructLTC[i].fUTMin=m_vfAmpThreshold[i]; m_vstructLTC[i].fUTMax=m_vfAmpThreshold[i]; if(i<m_nMaxLevel) { m_vstructLTC[i].fDTMin=m_vfAmpThreshold[i-1]; m_vstructLTC[i].fDTMax=m_vfAmpThreshold[i-1]; } } } } // m_vfAmpThreshold0=m_vfAmpThreshold; }