Author Archives: Rob Edwards

Squashing Bugs

Since getting back from our trip to the Rocky Bioinformatics conference I’ve been working on fixing up some code. There were a number of bugs that I had back-burned in favor of working on my presentation for the conference. The graphing proof-of-concept for Subsystems that I had been working on was first to hit the burner. I stopped work on that in order to get the json saves to the new server working.

The json saves were close, but not perfect when I left for Colorado. Daniel and I actually discovered a couple more weird little problems when I got back. (Luckily, he made quick work of his own OpenSocial portion of the saves, so I had a reliable place to get correct output to check against). Click the read more to hear my bug-squashing tale in all its glory!

Continue reading

Biobike and Alisp

Hey, guys.

I know it LOOKS like I don’t do any work at all, and this could be true! But I have done some work recently! I currently wrote about it on the labwiki, too! You can find the current topics, there are only two, at http://edwards.sdsu.edu/LabWiki/index.php/Brad

the How To Biobike guide is not finished, not by a long shot, but hey, at least I’m pulling a weight around here!

Back to blogging

I’ve been away from my desk (and this blog) for a while now, but thankfully all of the payroll mixups have been ironed out! I’m happy to be working on MM again, and excited to be presenting at Rocky ’09 next week. I’ve been focusing mostly on getting my presentation in shape, and have gone through several iterations of my slides already. I think  have the basic idea of what I want to say down, but I’m hoping to fine tune the delivery with Rob and everyone else sometime this week.

I’ve never given a talk at a conference, nor have I attended this particular conference, so I hope that my presentation fits in. Mentally I think I fall more on the computer science side of things, so I’m unsure of how to make my presentation appeal to both the biology- and CS-minded attendees. I’m confident that by the time I present, we’ll have all of that sorted out though!

As far as MM itself is concerned, Rob went out of his way and did a whole bunch of code to make my job easy with the new JSON storage cgi. Unfortunately, I couldn’t get his new code to agree with android (well, that’s technically a lie, I did kind-of get it working, but apparently you can’t have URLs that are thousands of lines long). Today we went back to the drawing board and did it the ‘hard way’ wherein I hand-code the cgi form with a bunch of yucky string manipulations in java. That code seems to be working nearly perfectly! 🙂

I hope to have the code fully operational within the week, but I may have to stop and prioritize the Rocky preparation. It all really depends on when and how often I work with others in the lab on my presentation. Regardless, I’m really excited to have the ball rolling again with this project. I can’t wait to see what people think of it at Rocky; I hope they’ll be impressed by what we’ve done!

The PhAnToMe Blog is out

Well, phantome.org is hosted locally, as you know. However, for several reasons–including that WordPress is a more developed blogging tool that Joomla! blogs, and that maintaining and securing a blog is a nightmare–I started a PhAnToMe blog (to the world).

Why a PhAnToMe blog? We already have a set up PhAnToMe insider blog, but this one is a closed blog that is only accessible by the PhAnToMers and is mainly a developer’s blog. The PhAnToMe blog, on the other hand, is addressed to the entire world to publicize the PhAnToMe project and post specific stories about interesting phages, interesting subsystems, interesting modules, and interesting problems.

Check it soon; test it; visit it; and comment on its posts.

1.tblastx.268746.3

Phages without borders (1)

Phages are everywhere. We know this very well. But where is everywhere? Can we locate particular phages in certain ecosystems? Is there a pattern there?

This new PhAnToMe Labs tool may help us answer this question, or at least get the right questions:

1) Are cyanophages enriched in certain marine metagenomes?

2) Are enteric bacteriophages enriched in mammalian fecal samples?

3) Can we locate a certain phage entirely in one metagenome (remember the classical riddle: can one locate the same virus twice somewhere?)

 


 

Here are some examples:

Continue reading

“Blame genetics for bad driving, study finds” article

A funny and interesting short article from CNN that I stumbled upon:

http://www.cnn.com/2009/TECH/science/10/29/bad.driver.gene/index.html

I’m just picturing what Rob has been saying about insurances denying people if they have a higher probability of developing medical problems found in their DNA sequence. Looks like it might not just be limited to medical insurance companies!

Subsystems Sludge and the Future of Share

Hello all, as you have probably noticed, my blog posts have become pretty sparse over the past few weeks. Part of that is due to the semester being busier (and me working half as many hours), but the other part is due to what I’m calling Subsystems Sludge. As you saw in this post, my proof-of-concept for the Subsystems graph in Mobile Metagenomics is actually looking pretty solid. Graphically speaking.

What I didn’t notice, or at least understand at the time of that posting, is that all of the results are in duplicate or triplicate. Unfortunately, this is not working as intended. Rob helped me figure out why this is happening, and I’ve been trying to write code to fix it for the past couple of weeks. The issue is the sludge; I’ve got some bugs in my code and it is taking forever to pin down exactly what they are and why they’re happening. The main reason for this is that every time I change something and want to check if it works, I have to perform another results download.

In retrospect, it probably would’ve paid off to hack my code into something more easily testable. When I started working on it, it didn’t seem to make sense to mangle a near-perfect proof of concept and make it stop accepting real json objects from Rob’s CGI. At this point though, I think that is what I’m going to have to do. Spending 3-6 minutes every time I make a change during debugging is a pretty unnaceptable waste of time, and has really brought my development process to its knees. Lesson learned, I suppose, and I’ll be less stubborn in the future…

On the positive side of things, I’ve gotten the ball rolling with actual MM code again. Rob, Daniel and I are working on setting up a system where the Share button in MM can send JSON objects to one of our servers. From there we can probably do some cool OpenSocial stuff, which Daniel is taking care of. Rob already has his CGI going, so I’m working hard to get MM to make and send JSON to it. So far, I’m able to create and save the JSON objects to the phone’s file system, which is about half of the code.

The JSON output files neatly replace the old .mmr format as well; these were serializable Java outputs of the MM data structures used to save a result state to be loaded later. There isn’t much reason to maintain the old processes which do this if I’m saving in JSON already – I’ll just change my code to load JSON instead once I’ve got the uploads working for Rob and Daniel. This method of sharing may also replace the plain-text output mode of the current Share button, though it doesn’t necessarily have to. When the full vision of our new project is realized, we can evaluate whether a plain-text email style output is still necessary or desirable.

Once I finish all of that work, I’ll be back to grinding out the Subsystems proof-of-concept code and, eventually, implementing it in MM!

I’ll take one dozen, please.

Well folks, Donut is here! (Donut is the codename for the Android 1.6 SDK)

I’m excited, and you should be too! Not only does Donut add support for multiple screen resolutions (something I’d been raising eyebrows over ever since I saw the Motorola Sholes specs leaked), but it also supports CDMA as well as GSM! The Donut release comes just in time for the Android hardware releases across all major US phone carriers.

The quick search bar is looking pretty slick as well; developers can now expose certain pieces of data as searchables. The text-to-speech / translation software cocktail looks to be really sweet for communicating with someone in a pinch while travelling. I knew it was only a matter of time before google strapped an auto-translator to our heads… this looks to be a step in that direction.

Check out the video for a more detailed version of the above summary!

Disk installation (aka hardware engineer, sysadmin day success)

Picked up a drive from DiscounTechnologies which is based here in Hillcrest. The hard part was figuring out the order of commands to work with LVM – the linux volume manager. Its pretty simple once you read the docs. We have heaps of space on pipe1 (for now) and soon we’ll upgrade pipe2, too. Full instructions behind the read more..

 

 

Continue reading