Example #1
0
void FileUtils::fileCounter(const QString& filePath, int* pCounter)
{
	QFileInfo curFile(filePath);
	if(!curFile.exists()) return;

	if (curFile.isDir())
	{
		QString dir = curFile.filePath();
		QDir curDir(dir);
		int childCount = curDir.entryInfoList().count();
		QFileInfoList newFileList = curDir.entryInfoList();
		if(childCount > 2)
		{
			for(int i = 0;i< childCount; i++)
			{
				if(newFileList.at(i).fileName() == "." || newFileList.at(i).fileName() == "..")
					continue;
				fileCounter(newFileList.at(i).filePath(), pCounter);
			}
		}
	}
	else
	{
		if(pCounter) *pCounter += 1;
	}
}
Example #2
0
int FileUtils::fileCount(const QString& filePath)
{
	int fCount = 0;
	fileCounter(filePath, &fCount);
	return fCount;
}
Example #3
0
main(int argc, char *argv[]){
	
	int tabSize = pow(4, atoi(argv[3])) ;
	char hashSize = (char)tabSize;
	pid_t parentpid;
	pid_t pid[1];
	int status;	
	
	char jfCountFile1[256];
	char jfCountFile2[256];
	char jfDumpFile1[256];
	char jfDumpFile2[256];
	char fileName1[256];
	char fileName2[256];
	
	sprintf(jfCountFile1,"time jellyfish count %s -m %s -s %i -o %s-%s-jfCount",argv[1],argv[3],tabSize, argv[1],argv[3]);
	sprintf(jfCountFile2,"time jellyfish count %s -m %s -s %i -o %s-%s-jfCount",argv[2],argv[3],tabSize, argv[2],argv[3]);
	sprintf(jfDumpFile1,"time jellyfish dump %s-%s-jfCount -c -o %s-%s-Kmers",argv[1],argv[3],argv[1],argv[3]);
	sprintf(jfDumpFile2,"time jellyfish dump %s-%s-jfCount -c -o %s-%s-Kmers",argv[2],argv[3],argv[2],argv[3]);
	sprintf(fileName1,"%s-%s-Kmers",argv[1],argv[3]);
	sprintf(fileName2,"%s-%s-Kmers",argv[2],argv[3]);
	printf("%s\n%s\n",jfCountFile1,jfCountFile2);
	printf("%s\n%s\n%s\n%s\n",jfDumpFile1,jfDumpFile2,fileName1,fileName2);
	
	
	if((pid[0] = fork())<0){
		perror("fork");
		abort();
	}else if(pid[0]==0){
		printf("Executing jellyfish functions on %s with %s-mers...\n",argv[1],argv[3]);
		system(jfCountFile1);
		printf("...Count file for %s completed\n",argv[1]);
		system(jfDumpFile1);
		printf("... jellyfish dump completed for %s with %s-mers.\n",argv[1],argv[3]);
		exit(0);
	}
	if((pid[1] = fork())<0){
		perror("fork");
		abort();
	}else if(pid[1]==0){
		printf("Executing jellyfish functions on %s with %s-mers...\n",argv[2],argv[3]);
		system(jfCountFile2);
		printf("...Count file for %s completed\n",argv[2]);
		system(jfDumpFile2);
		printf("... jellyfish dump completed for %s with %s-mers.\n",argv[2],argv[3]);
		exit(0);
	}
	
	while ((parentpid = wait(&status)) > 0);
	puts("Both processes are completed.");
	

	FILE *fp1 = fopen(fileName1,"r");
	FILE *fp2 = fopen(fileName2,"r");
	
	int lineCount = fileCounter(fp2);
	fseek(fp2, 0, SEEK_SET);
	
	struct hashtable_s *uniqueTable = createHashTable(1.5 * lineCount);
	
	kmerKram(uniqueTable,fp2,1);
	kmerKram(uniqueTable,fp1,-1);
	
	char outFileName[256];
	sprintf(outFileName,"%s-VS-%s-%sMERS.fasta",argv[1],argv[2],argv[3]);
	FILE *outFile = fopen(outFileName,"w");
	FILE *sequences = fopen(argv[2],"r");
	fseek(fp2, 0, SEEK_SET);
	
	skimThroughFasta(sequences, outFile, atoi(argv[3]),uniqueTable);
	
}