ecbush / xenoGI

Code for detecting genomic island insertions in clades of microbes.
GNU General Public License v3.0
19 stars 2 forks source link

Help for analysis of makeFamilies and makeislands #7

Closed luisruis closed 2 years ago

luisruis commented 2 years ago

Hello, I am a beginner in bioinformatics. I have had some errors in xenoGI that I have not been able to solve.

When I run the line "xenoGI params.py makeFamilies" I get these errors

multiprocessing.pool.RemoteTraceback:
"""
Traceback (most recent call last):
  File "/home/user/miniconda3/lib/python3.9/multiprocessing/pool.py", line 125, in worker
    result = (True, func(*args, **kwds))
  File "/home/user/miniconda3/lib/python3.9/site-packages/xenoGI/trees.py", line 241, in makeOneGeneTreeGroup
    makeOneGeneTree(orthoGroupNumStr,orthoT,strainHeader,genesO,protSeqD,dnaSeqD,workDir,gtFileStem,musclePath,fastTreePath)
  File "/home/user/miniconda3/lib/python3.9/site-packages/xenoGI/trees.py", line 251, in makeOneGeneTree
    alignOneOrthoT(orthoT,strainHeader,musclePath,inTempProtFN,outAlignFN,protSeqD,dnaSeqD,genesO)
  File "/home/user/miniconda3/lib/python3.9/site-packages/xenoGI/trees.py", line 274, in alignOneOrthoT
    raise Exception("Alignment failed for "+inProtFN)
Exception: Alignment failed for geneFamilyTrees/tempProt000001.fa
"""

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/luisruis/miniconda3/bin/xenoGI", line 8, in <module>
    sys.exit(main())
 File "/home/luisruis/miniconda3/lib/python3.9/site-packages/xenoGI/xenoGI.py", line 53, in main
    makeFamiliesWrapper(paramD)
File "/home/luisruis/miniconda3/lib/python3.9/site-packages/xenoGI/xenoGI.py", line 200, in makeFamiliesWrapper
    initialFamiliesO,originFamiliesO = families.createFamiliesO(speciesRtreeO,strainNamesT,scoresO,genesO,aabrhHardCoreL,paramD,familyFormationSummaryF)
 File "/home/luisruis/miniconda3/lib/python3.9/site-packages/xenoGI/families.py", line 51, in createFamiliesO
    createBlastFamilies(paramD,speciesRtreeO,strainNamesT,scoresO,genesO,outputSummaryF)
  File "/home/luisruis/miniconda3/lib/python3.9/site-packages/xenoGI/families.py", line 241, in createBlastFamiliestrees.makeGeneTrees(paramD,False,genesO,geneFamilyTreesDir,blastFamGeneTreeFileStem,blastFamilySetL)
     File "/home/luisruis/miniconda3/lib/python3.9/site-packages/xenoGI/trees.py", line 213, in makeGeneTrees
    for _ in p.imap_unordered(makeOneGeneTreeGroup, argumentL):
 File "/home/luisruis/miniconda3/lib/python3.9/multiprocessing/pool.py", line 870, in next
    raise value
Exception: Alignment failed for geneFamilyTrees/tempProt000004.fa

Therefore when I run this line ""xenoGI params.py makeIslands" as I don't get the output file I get the following

Traceback (most recent call last):
  File "/home/user/miniconda3/bin/xenoGI", line 8, in <module>
    sys.exit(main())
  File "/home/user/miniconda3/lib/python3.9/site-packages/xenoGI/xenoGI.py", line 57, in main
    makeIslandsWrapper(paramD)
  File "/home/user/miniconda3/lib/python3.9/site-packages/xenoGI/xenoGI.py", line 209, in makeIslandsWrapper
    originFamiliesO = families.readFamilies(paramD['originFamilyFN'],speciesRtreeO,genesO,"origin")
  File "/home/user/miniconda3/lib/python3.9/site-packages/xenoGI/families.py", line 1643, in readFamilies
    f=open(familyFN,'r')
FileNotFoundError: [Errno 2] No such file or directory: 'originFam.out'

Thanks for your attention, I hope you can help me.

ecbush commented 2 years ago

hi Luis, Sorry for the slow reply -- I've been traveling, and then digging out my inbox. :) Can you tell me what version of xenoGI you are using and how you are running it? (are you using docker? did you download the repository? etc.) Also, what kind of machine are you trying to run it on? Are you running it on the example data set, or on your own data?

thanks, Eliot

luisruis commented 2 years ago

Thank you for helping me. I ran my genomes with the Docker image on the virtual machine and got results :)

I have another question, output files in xenoGI can also detect HGT events between bacterial clades that are phylogenetically distant?

ecbush commented 2 years ago

I'm glad you figured it out.

xenoGI is intended to be used with clades that are relatively closely related. So doing something with enteric bacteria would be ok. But trying to do something with all of Proteobacteria would not work. The reason is that xenoGI requires that there be a reasonable amount of synteny between the various genomes. Things that are separated by hundreds of millions or billions of years will not have that.

I think I will go ahead and mark this issue resolved. If you'd like to ask me other questions, please feel free to email me (bush@hmc.edu).