2015-08-06 1 views
1

Je dois convertir un très gros fichier .bam en fichier .bed, bien que j'ai trouvé une solution en utilisant bam2bed parallel de bedops, ce support parallèle SEG et gnuParallel, les deux clusters auxquels je peux accéder uniquement Slurm et ordonnanceurs de couple, et je ne sais pas grand chose sur tcsh, je peux même pas modifier le script pour répondre à la demande de slurm et de couple.Message d'erreur lors de l'utilisation multiprocesseur Python

En raison je connais un peu Python, je prévois d'utiliser le module de multitraitement de Python pour ce faire, cependant, le code suivant soulève un message étrange:

« Python fermer de façon inattendue lors de l'utilisation du calignmentfile.so plug-in »

# The code here is just a test code, ignore its real meaning. 
import multiprocessing as mp 
import pysam 

def work(read): 
    return read.query 
    # return read.split()[0] 

if __name__ == '__main__': 
    cpu = mp.cpu_count() 
    pool = mp.Pool(cpu) 

    sam = pysam.AlignmentFile('foo.bam', 'rb') 
    read = sam.fetch(until_eof=True) 

    # f = open('foo.text', 'rb') 
    # results = pool.map(work, f, cpu) 

    results = pool.map(work, read, cpu) 
    print(results) 

Est-ce que ce message signifie le lit de pysam.AlignmentFile() ne prend pas en charge le parallélisme ou Python ne supporte pas ce genre de parallèle? J'utilise un fichier texte régulier pour tester ce morceau de code, cela fonctionne bien (par exemple, le code a été commenté).

Répondre