schneebergerlab / syri

Synteny and Rearrangement Identifier
https://schneebergerlab.github.io/syri/
MIT License
331 stars 36 forks source link

IndexError: list index out of range #48

Closed lvbakker closed 3 years ago

lvbakker commented 4 years ago

Hi, I executed the following commands:

nucmer --maxmatch -c 100 -b 500 -l 500 -L 5000 refgenome qrygenome
delta-filter -m -i 90 -l 100 out.delta > out.filtered.delta
show-coords -THrd out.filtered.delta > out.filtered.coords python3 ${PATH_TO_SYRI}syri --log DEBUG --no-chrmatch -c out.filtered.coords -d out.filtered.delta -r refgenome -q qrygenome

But after it runs for a while, i stops with this message:

""" Traceback (most recent call last): File "/cm/shared/apps/python/3.5.0/lib/python3.5/multiprocessing/pool.py", line 119, in worker result = (True, func(*args, *kwds)) File "/cm/shared/apps/python/3.5.0/lib/python3.5/multiprocessing/pool.py", line 44, in mapstar return list(map(args)) File "syri/pyxFiles/synsearchFunctions.pyx", line 655, in syri.pyxFiles.synsearchFunctions.syri (syri/pyxFiles/synsearchFunctions.cpp:22087) IndexError: list index out of range """

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

Traceback (most recent call last): File "/lustre/scratch/WUR/PRI/bakke227/tools/syri/syri/bin/syri", line 216, in startSyri(args, coords[["aStart", "aEnd", "bStart", "bEnd", "aLen", "bLen", "iden", "aDir", "bDir", "aChr", "bChr"]]) File "syri/pyxFiles/synsearchFunctions.pyx", line 359, in syri.pyxFiles.synsearchFunctions.startSyri (syri/pyxFiles/synsearchFunctions.cpp:13110) File "syri/pyxFiles/synsearchFunctions.pyx", line 360, in syri.pyxFiles.synsearchFunctions.startSyri (syri/pyxFiles/synsearchFunctions.cpp:13060) File "/cm/shared/apps/python/3.5.0/lib/python3.5/multiprocessing/pool.py", line 260, in map return self._map_async(func, iterable, mapstar, chunksize).get() File "/cm/shared/apps/python/3.5.0/lib/python3.5/multiprocessing/pool.py", line 608, in get raise self._value IndexError: list index out of range

What can i do to solve this?

with kind regards, Linda

mnshgl0110 commented 4 years ago

Hi Linda. Can you please share the log file? Was there a warning message complaining about too many inverted alignments?

lvbakker commented 4 years ago

syri.log

Hi, I attached the syri.log file. Syri.log states this indeed. How can i resolve this? thank you. Linda

mnshgl0110 commented 4 years ago

That means that potentially your assemblies have different strands for that chromosome. Reverse complement the chromosome/s (for which you get this warning) and try again. This is described in more detail in the README.

lvbakker commented 4 years ago

Hi, I did the reverse complement for all contigs mentioned in the log file, but after i ran nucmer and syri again, i still get the same message for 4 of the contigs. So changing to the reverse complement did not work for these 4. What can i additionally try? For the other contigs it shows output.

mnshgl0110 commented 4 years ago

The basic assumption with syri is that the compared sequences would be homologous to each other, i.e. they would be largely syntenic. Since, these four contigs did not work in both cases, I suspect that they might not be homologous. You could check if that is the case with these four contigs.

If the compared sequences are not homologous, then syntenic region cannot be identified and as a result syri cannot work.

Additionally, comparing highly divergent sequences would not result in biologically relevant structural rearrangements anyway.

lvbakker commented 3 years ago

Hi, I removed the most conflicting contigs and now i am left with this error:

Traceback (most recent call last): File "/lustre/scratch/WUR/PRI/bakke227/tools/syri/syri/bin/syri", line 216, in startSyri(args, coords[["aStart", "aEnd", "bStart", "bEnd", "aLen", "bLen", "iden", "aDir", "bDir", "aChr", "bChr"]]) File "syri/pyxFiles/synsearchFunctions.pyx", line 367, in syri.pyxFiles.synsearchFunctions.startSyri (syri/pyxFiles/synsearchFunctions.cpp:13271) File "syri/pyxFiles/tdfunc.pyx", line 511, in syri.pyxFiles.tdfunc.getCTX (syri/pyxFiles/tdfunc.cpp:16911) File "syri/pyxFiles/tdfunc.pyx", line 447, in syri.pyxFiles.tdfunc.readAnnoCoords (syri/pyxFiles/tdfunc.cpp:14839) ValueError: invalid literal for int() with base 10: '14270551.0' (END)

How can i solve this? thanks for your help.

syri_22okt.log

mnshgl0110 commented 3 years ago

Hi Linda. The log file contains a warning that the pandas version is 0.18.0. SyRI was designed using pandas version 0.23.4. I guess, that this might have caused this problem. Please check the installation guide here. Upgrading pandas (and then reinstalling SyRI) might solve this issue.

Other than this, I do not see any obvious reason for this error in the current log file. If the problem persists after upgrading pandas, than could you please run SyRI with DEBUG mode of logging and then share the new log file.