예제 #1
0
	def _pairwise_blast(self, query_files, subject_files, protein=False, nucleotide=False):
		file_handlers = FileHandlers()
		blast_command = 'blastp' if protein == True else 'blastn'
		blast_result_files = []
		for query, subject in zip(query_files, subject_files):
			blast_result = ( file_handlers.get_file_name(query).split('.')[0] + file_handlers.get_file_name(subject).split('.')[0] + '_blastp.out')
			cmd = [blast_command + ' -query ' + query + ' -subject ' + subject + ' > ' + blast_result]
			subprocess.call(cmd, shell=True)
			blast_result_files.append(blast_result)
		return blast_result_files
예제 #2
0
	def _open_results_file(self, result_file):
		file_handlers = FileHandlers()
		file_paths = file_handlers.search_directory()
		out_files = file_handlers.find_files(file_paths, 'out')
		for out_file in out_files:
			if result_file == file_handlers.get_file_name(out_file):
				Data = open(out_file, 'r')
				data = Data.readlines()
				Data.close()
		return data
예제 #3
0
	def _get_fasta_file_paths(self):
		query_files = []
		subject_files = []
		for i in range(len(self.sequence_annotations)):
			organism_id = settings.ORGANISM_MAP[self.sequence_annotations[i][2].upper()]
			file_handlers = FileHandlers()
			file_paths = file_handlers.search_directory()
			fasta_files = file_handlers.find_files(file_paths, 'fasta')
			for fasta_file in fasta_files:
				if ( self.sequence_annotations[i][1] + '_' + organism_id ) == file_handlers.get_file_name(fasta_file).split('.fasta')[0]:
					query_files.append(fasta_file)
				elif ( self.sequence_annotations[i][1] + '_' + self.filename + '_chain-' + self.sequence_annotations[i][0] ) == file_handlers.get_file_name(fasta_file).split('.')[0]:
					subject_files.append(fasta_file)
		return query_files, subject_files