Some problems (and a wishlist item) TETRAD V

61 views
Skip to first unread message

DAV

unread,
Aug 19, 2015, 2:12:03 PM8/19/15
to Tetrad Users Group
I've just started using TETRAD V and encountered a problem I can't overcome. 

I have some data that I want to perform a search on. I link a search box to the data box. When I try  Create Search, TETRAD just takes off apparently using an infinite search depth. I also tried to edit the parameters and it does the same thing. Is there any way to setup the search parameters BEFORE it executes?

 Primarily I would like to do an initial minimal depth search just to get a feel for what I may get. The current method may take days for something I'm just going to change (like add or delete variables or collect more data). The manual has an execute button, which is puzzling since the box can't be built without execution. Am I using this box incorrectly?

There is maybe an error in the way TETRAD computes Markov blankets:

This is a partial MB for WPS. My understanding of a Markov blanket is that the blanker should contain parents of WPS, children of WPS and the parents of those children so why is the link between JT and HSH included? For that matter, there is a link between SPI and another (not shown) variable that is not linked to WPS.  The same for the child link from HTD. Why?

I am also getting some exceptions but they don't seem to affect anything as far as I can tell. Example:

java.lang.NullPointerException
at sun.awt.X11.MotifDnDConstants.getTargetListForIndex(MotifDnDConstants.java:509)
at sun.awt.X11.MotifDnDDropTargetProtocol.processTopLevelEnter(MotifDnDDropTargetProtocol.java:400)
at sun.awt.X11.MotifDnDDropTargetProtocol.processClientMessageImpl(MotifDnDDropTargetProtocol.java:737)
at sun.awt.X11.XDropTargetProtocol.processClientMessage(XDropTargetProtocol.java:99)
at sun.awt.X11.XDropTargetEventProcessor.doProcessEvent(XDropTargetEventProcessor.java:99)
at sun.awt.X11.XDropTargetEventProcessor.processEvent(XDropTargetEventProcessor.java:119)
at sun.awt.X11.XToolkit.run(XToolkit.java:580)
at sun.awt.X11.XToolkit.run(XToolkit.java:532)
at java.lang.Thread.run(Thread.java:745)

These seem to occur randomly.

I am processing these networks external to TETRAD. When I save a graph, latent nodes are not flagged so I have to manually update the saved TETRAD graph. It would be nice if the latent nodes are listed at least in the xml files. For that matter. the doesn't seem to be away to save the layout of a graph. So loading when loading it later, it is necessary to manually fix it.



cg...@andrew.cmu.edu

unread,
Aug 19, 2015, 2:16:12 PM8/19/15
to tetrad-us...@googlegroups.com
Thanks for the bug reports. Please tell us which version of TETRAD you are using,
and which functions--e.g., which methods in the search box.

Cg


> I've just started using TETRAD V and encountered a problem I can't
> overcome.
>
> I have some data that I want to perform a search on. I link a search box to
> the data box. When I try Create Search, TETRAD just takes off apparently
> using an infinite search depth. I also tried to edit the parameters and it
> does the same thing. Is there any way to setup the search parameters BEFORE
> it executes?
>
> Primarily I would like to do an initial minimal depth search just to get a
> feel for what I may get. The current method may take days for something I'm
> just going to change (like add or delete variables or collect more data).
> The manual has an execute button, which is puzzling since the box can't be
> built without execution. Am I using this box incorrectly?
>
> There is maybe an error in the way TETRAD computes Markov blankets:
>
> <https://lh3.googleusercontent.com/-Pj5q6nkXfH4/VdS-jmbBvMI/AAAAAAAAAAs/IWSrSqVUDlE/s1600/Screenshot_2015-08-19_13-35-21.png>
> --
> You received this message because you are subscribed to the Google Groups "Tetrad
> Users Group" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to
> tetrad-users-gr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>


DAV

unread,
Aug 19, 2015, 4:31:45 PM8/19/15
to Tetrad Users Group
Thanks for the quick response

I am executing TETRAD from the command line under linux (if it matters) with  
java -jar tetrad-5.2.1-0.jar
version java-1.8.0-openjdk

For the MB these boxes use inputs  manually entered graphs going into a Graph Manipulation box with Markov Blanket selected.
typically




The search box is whatever one gets when first  placing a search box. It is saying "No model".
Double clicking on it causes a popup requesting search algorithm type as does right clicking on it and selecting either "create Model" or "Edit Parameters". Selecting any type (I really didn't try them all) starts immediate execution.  The data box selects a subset of variables from a much large set.




The null pointer exceptions seem to come randomly. I don't see them until long after they've happened. I'll try to monitor the terminal output to see if I can catch one in the act, so to speak.

Thanks,
DAV

Joseph Ramsey

unread,
Aug 28, 2015, 6:59:49 AM8/28/15
to tetrad-us...@googlegroups.com
Those null pointer exceptions are being generated by code in the Java API, not in Tetrad, so I can't fix them, unfortunately.

The box can't be built without execution because we have a system of automatically running simulation studies, which requires that the box execute without having to open up the box and click execute. Maybe there's a way to have it both ways; I'll have to think about it.

The Markov blanket is just a set of variables; all edges connecting those variables are included. Since JT is a parent and HSH is a parent of a child, the edge between them is shown. I suppose it could have been done a different way, not showing this edges, but the edges are really superfluous to the Markov blanket itself.

I'll think about opening without executing.

Joe

--
You received this message because you are subscribed to the Google Groups "Tetrad Users Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tetrad-users-gr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Joseph D. Ramsey
Special Faculty and Director of Research Computing
Department of Philosophy
143 Baker Hall
Carnegie Mellon University
Pittsburgh, PA 15213

jsph....@gmail.com
Office: (412) 268-8063
http://www.andrew.cmu.edu/user/jdramsey

DAV

unread,
Aug 29, 2015, 2:15:15 AM8/29/15
to Tetrad Users Group
Thanks, Joe.

The null pointer exceptions are merely a nuisance that clutter the console log. I guess we're stuck with them. Maybe dumping stderr to a null device or log file would be enough to avoid seeing them.

The Markov Blanket is just something I noticed. It's causing some unnecessary processing with my code but, like the null pointers, it's only a nuisance. 

I really would like to get around the search box auto execution as it is a show stopper for me.  Just a suggestion: have a settable parameter somewhere that selects/deselects auto executes. Lacking that, is it possible to get enough of the Tetrad source so I can disable it for myself? This is only for myself only and isn't a commercial project. I would sign a nondisclosure agreement if needed.

DAV

Joseph Ramsey

unread,
Aug 29, 2015, 11:13:59 AM8/29/15
to tetrad-us...@googlegroups.com
The code is publically available, actually--at least code from November of last year, which should have everything you need. It's here:


I can't publish the current state of the code for various reasons, but hopefully in the next few months I can.

I'm adding the launch without execute task to my to do list, which is rather long at the moment, but I'll try to get to it as soon as I can. I will get to it.

Best,

Joe

--
You received this message because you are subscribed to the Google Groups "Tetrad Users Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tetrad-users-gr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

DAV

unread,
Aug 29, 2015, 12:00:57 PM8/29/15
to Tetrad Users Group
Thanks, Joe. It's just what I needed.


On Wednesday, August 19, 2015 at 2:12:03 PM UTC-4, DAV wrote:

DAV

unread,
Sep 3, 2015, 7:33:45 AM9/3/15
to Tetrad Users Group
FWIW: I commented out the call to executable.execute() in the try block of
public void createModel(Class modelClass, boolean simulation) in SessionNode.java around line 600.

This has prevented any executes when selecting a model in the search box although I didn't try all selections. Not sure if it has any other side effects bit at least I got what I need.

I noticed a second problem where merely looking at the parameters of a search box destroys all models downstream of the box even if save is not pressed. Apparently, the box is reset when opening Edit Parameters. Fortunately, I noticed it and was able to reopen the session. Could have set me back more than a whole day if I hadn't noticed it.

This is with version  5.1.0-8









Joseph Ramsey

unread,
Sep 3, 2015, 10:12:11 AM9/3/15
to tetrad-us...@googlegroups.com
On Thu, Sep 3, 2015 at 7:33 AM, DAV <dav...@gmail.com> wrote:
FWIW: I commented out the call to executable.execute() in the try block of
public void createModel(Class modelClass, boolean simulation) in SessionNode.java around line 600.

 

This has prevented any executes when selecting a model in the search box although I didn't try all selections. Not sure if it has any other side effects bit at least I got what I need.


Yeah, that will have pretty dire consequences. :) Maybe as you say I can make it conditional at least. :)
 

I noticed a second problem where merely looking at the parameters of a search box destroys all models downstream of the box even if save is not pressed. Apparently, the box is reset when opening Edit Parameters. Fortunately, I noticed it and was able to reopen the session. Could have set me back more than a whole day if I hadn't noticed it.

This is with version  5.1.0-8

Thanks. I'll try to address that. My to do list is long at the moment but I'll get to it. Copying it now onto my to do lst.
 









--
You received this message because you are subscribed to the Google Groups "Tetrad Users Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tetrad-users-gr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages