Многопроцессорная обработка при итерации по выравниванию последовательностей ДНКPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Многопроцессорная обработка при итерации по выравниванию последовательностей ДНК

Сообщение Anonymous »

Я пытаюсь применить многопроцессорную обработку к функции для расчета энтропии Шеннона для каждой позиции выравнивания ДНК, чтобы ускорить процесс. Он просто продолжает работать, ничего не возвращая, и я не могу понять, что не так с моим кодом. Я новичок в многопроцессорной обработке, поэтому буду очень признателен за любую помощь.
from Bio import AlignIO
from multiprocessing import Pool
from scipy.stats import entropy
import pandas as pd
from time import perf_counter

path = 'path_to_aln_fasta'
alignment = AlignIO.read(path, 'fasta')

def calc_entropy(column):
series = pd.Series(column)
vals = series.value_counts(normalize=False)
return entropy(vals)

def pool_calc_entropy(alignment):
pool = Pool(8)
entropies = pool.map(calc_entropy, [alignment[:, i] for i in range(alignment.get_alignment_length())])
return entropies

start = perf_counter()
entropies_series = []
for i in range(alignment.get_alignment_length()):
column = alignment[:, i]
entropies_series.append(calc_entropy(column))

end = perf_counter()
series_time = end-start
print(f'series time: {series_time}')

start = perf_counter()
entropies_pool = pool_calc_entropy(alignment)
end = perf_counter()
parallel_time = end-start
print(f'parallel time: {parallel_time}')

print(f'pool time is {round((end-start)/(end-start), 2)} times faster than series time')



Подробнее здесь: https://stackoverflow.com/questions/792 ... -alignment
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»