dereneaton / ipyrad

Interactive assembly and analysis of RAD-seq data sets
http://ipyrad.readthedocs.io
GNU General Public License v3.0
70 stars 39 forks source link

Object 'quartets' does not exist #462

Open alexkrohn opened 2 years ago

alexkrohn commented 2 years ago

I've encountered an error when trying to restart a tetrad run that failed because the Jupyter notebook shut down/restarted. The full error is posted below, and occurs immediately after restarted (after running tet.run(auto = True)). The analysis-tetrad folder is unchanged from when the run stopped, and the *quartets.txt file is still present with the correct number of lines: nquartets and wc -l *.quartets.txt both equal 20e6.

Is this a permissions issue? An issue with directing ipyrad where to look for the quartets file upon reset? Any help you have would be great. Thanks!

Running ipyrad version 0.9.81 on Jupyter (4.5.0) notebook (5.2.2) on a Linux (Ubuntu 20.04) desktop.

Parallel connection | alex-desktop: 4 cores
[                    ]   0% 0:00:01 | boot rep. 2  
Encountered an Error.
Message: KeyError: "Unable to open object (object 'quartets' doesn't exist)"
Use debug flag (-d) for full code traceback.
---------------------------------------------------------------------------KeyError                                  Traceback (most recent call last)<string> in <module>()
/home/alex/miniconda3/envs/ipyrad/lib/python3.6/site-packages/tetrad/worker.py in nworker(tet, chunk)
     69             seqview = io5["bootsarr"][:]
     70             maparr = io5["bootsmap"][:, 0]
---> 71             smps = io5["quartets"][chunk:chunk + tet._chunksize]
     72 
     73             # create an N-mask array of all seq cols
h5py/_objects.pyx in h5py._objects.with_phil.wrapper()
h5py/_objects.pyx in h5py._objects.with_phil.wrapper()
/home/alex/miniconda3/envs/ipyrad/lib/python3.6/site-packages/h5py/_hl/group.py in __getitem__(self, name)
    262                 raise ValueError("Invalid HDF5 object reference")
    263         else:
--> 264             oid = h5o.open(self.id, self._e(name), lapl=self._lapl)
    265 
    266         otype = h5i.get_type(oid)
h5py/_objects.pyx in h5py._objects.with_phil.wrapper()
h5py/_objects.pyx in h5py._objects.with_phil.wrapper()
h5py/h5o.pyx in h5py.h5o.open()
KeyError: "Unable to open object (object 'quartets' doesn't exist)"
isaacovercast commented 2 years ago

You need to use tet.run(auto = True, force=True).

If the jupyter notebook shutdown hard then it's possible the "quartets" dataset wasn't saved to the h5py file. You'll have to force recreating it unfortunately. Tetrad is more Deren's creation, so he might have more to say here.

alexkrohn commented 2 years ago

If I use force = True, all my progress will be lost right? At 16 hours to run the initial tree, and 5 hours per bootstrap, I'd really prefer to continue where I left off if possible. I also don't really know why jupyter notebook shut down, so I have no guarantees that this won't happen again after the second bootstrap. Is there any way to rewrite just the quartet file?

On Mon, Sep 20, 2021 at 9:42 AM Isaac Overcast @.***> wrote:

You need to use tet.run(auto = True, force=True).

If the jupyter notebook shutdown hard then it's possible the "quartets" dataset wasn't saved to the h5py file. You'll have to force recreating it unfortunately. Tetrad is more Deren's creation, so he might have more to say here.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/dereneaton/ipyrad/issues/462#issuecomment-922939680, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADAEIHAGCUHRVRST5THLVQLUC423PANCNFSM5EL6V6XQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

isaacovercast commented 2 years ago

I see your point. This is really a better question for Deren. I can probably figure it out, but I won't be able to look at it until I get past a couple very imminent deadlines, maybe later this week.

Notebooks crashing are often memory allocation issues. If the system runs out of RAM because the notebook process chews it all up then this can cause a crash.

alexkrohn commented 2 years ago

Got it. Thanks. I'll tag @dereneaton and hope he can chime in.