Пример #1
0
void CLocateIgorDlg::OnBrowseButton() 
{
	CFileDialog aFileDlg(TRUE, "", m_IgorPath);
	int nResponse = aFileDlg.DoModal();

	if(nResponse == IDOK)
	{
		m_IgorPath = _T(aFileDlg.m_ofn.lpstrFile);
		UpdateData(FALSE);
	}
}
Пример #2
0
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);
//	}
}
Пример #4
0
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;
}