baliga-lab / cmonkey2

Python port of cMonkey, a machine-learning based method for clustering
GNU Lesser General Public License v3.0
26 stars 16 forks source link

cluster_viewer: upstream and downstream motifs? #2

Closed justinashworth closed 12 years ago

justinashworth commented 12 years ago

I'm getting a new error with json results from tps. It might be because I am finding both upstream and downstream motifs? Or maybe something esel. I don't know how to debug or improve this code on my own yet.

play.core.ActionInvoker$$anonfun$receive$1$$anon$1: Execution exception [[NoSuchElementException: key not found: 2]] at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:82) [play_2.9.1.jar:2.0] at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:63) [play_2.9.1.jar:2.0] at akka.actor.Actor$class.apply(Actor.scala:290) [akka-actor.jar:2.0] at play.core.ActionInvoker.apply(Invoker.scala:61) [play_2.9.1.jar:2.0] at akka.actor.ActorCell.invoke(ActorCell.scala:617) [akka-actor.jar:2.0] at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:179) [akka-actor.jar:2.0] Caused by: java.util.NoSuchElementException: key not found: 2 at scala.collection.MapLike$class.default(MapLike.scala:224) ~[scala-library.jar:na] at scala.collection.immutable.Map$Map1.default(Map.scala:106) ~[scala-library.jar:na] at scala.collection.MapLike$class.apply(MapLike.scala:135) ~[scala-library.jar:na] at scala.collection.immutable.Map$Map1.apply(Map.scala:106) ~[scala-library.jar:na] at controllers.Application$$anonfun$cluster$1.apply(Application.scala:283) ~[classes/:na] at controllers.Application$$anonfun$cluster$1.apply(Application.scala:276) ~[classes/:na]

The motif part of the json file begins like: "motifs ": {"1": {"downstream": [], "upstream": []}, "2": {"downstream": [{"motif_num": 1, "pssm": [[0.214286, 0.0, 0.714286, 0.071429],...

weiju commented 12 years ago

I had this problem last week, too. The cause was that there was only data for one motif. I fixed that last Friday, did you pull the latest changes ?

justinashworth commented 12 years ago

Ah I see, well yes I pulled, but I also had a long run going on osiris that was still producing older json files. I guess solutions could include 1) make cluster viewer ignore and work around keys that it can't find, 2) patch my json files, 3) try to reload or re-seed my long run from checkpoint files...

justinashworth commented 12 years ago

I suppose there is also the option of me finding the older revision of the cluster viewer that is compatible. I could try that too but I would like to take advantage of the new evolving cluster viewer features. I'm pretty sure my production run was up to date with the following revision

commit 2b630836fc07e28b89e67a014f30470c50e2ee60 Author: Wei-ju Wu Weiju.Wu@gmail.com Date: Thu Mar 22 14:39:07 2012 -0700

cluster viewer now displays mean residuals and mean nrows, ncols/iteration
weiju commented 12 years ago

I think I should also be able to update the ClusterViewer to just read in the data without the missing information. At the moment, that is still possible.

justinashworth commented 12 years ago

Ok sounds good, in the meantime I will try a slight refactor to take advantage of init_from_checkpoint

weiju commented 12 years ago

I updated the Application.scala file, if you do a pull, it will have the fix to ignore the missing information

justinashworth commented 12 years ago

Ok it works on the old json files. Thanks!