Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from os import listdir
- from sys import argv
- from multiprocessing.pool import ThreadPool
- import multiprocessing
- import time
- import collections, functools, operator
- def process_file(name):
- counts = {'A': 0, 'C': 0, 'G': 0, 'T': 0}
- with open(name) as f:
- for line in f:
- for index in line:
- if index.upper() in counts:
- counts[index.upper()] += 1
- return counts
- dir_path = "influenza/" # Assumes trailing '/'.
- try:
- filenames = listdir(dir_path)
- start_time = time.time()
- except FileNotFoundError:
- print("No such directory found.")
- quit()
- numthreads = 8
- pool = multiprocessing.Pool(processes=numthreads)
- result_list = pool.map(process_file,
- (dir_path+filename for filename in filenames ) )
- result = dict(functools.reduce(operator.add,
- map(collections.Counter, result_list)))
- print(result)
- print("--- %s seconds ---" % (time.time() - start_time))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement