It is my pleasure to release Folding Atomata, a third-party protein viewer for Folding@home. This viewer can connect to local or remote FAHClient instances and view the proteins as your computer is folding them. This allows you to get a more detailed perspective on the molecule that you are working on, and gain additional insight into some of the molecular pieces that you may have not noticed before.

Unlike FAHViewer, you have six degrees of freedom over the camera, allowing you to fly all around and get close in for a more detailed look, or back off for the bigger picture. The protein is animated using available checkpoints, allowing you to see an approximation of how the protein moves and morphs within the timeframe of your workunit. Furthermore, since it's common for a computer to process more than one protein at once, (say on the CPU and on the GPU) Atomata illustrates this by rendering the proteins from all available slots from a running client.This is the demo protein. Following the CPK coloring scheme, hydrogen atoms are white, carbons are dark gray, nitrogens are blue, oxygen is red, and sulfurs are yellow. These comprise all the elements that are likely to be found in a protein. Notice how the hydrogens are a smaller size compared to the other atoms. In reality, hydrogens are comparatively tiny.

This viewer is likely to draw about as much resources as FAHViewer by default, although it is highly adjustable. I've implemented options that you can use to increase the resolution and fineness of the atoms, giving you a very high-quality rendering. Alternatively, you can slow the animation down to the point where Atomata will use almost no resources at all. The viewer will only render when there's an update, which occurs either when animation happens or the camera moves. This prevents it from consuming excessive resources and significantly slowing the actual folding.

InstallationI'm currently only supporting Linux at the moment, although that may change. I welcome anyone who wishes to help support or provide a port to Windows or OS-X. It should not be a difficult task; this viewer, unlike FAHViewer, has very little dependencies.

I publish to a Personal Package Archive (PPA) which will keep Folding Atomata updated just like any other Linux package, and is the recommended, easiest, and most secure route for installation. It applies to Ubuntu and all derivatives, including Kubuntu, Xubuntu, and Mint. To install, simply run these commands:

You can launch the viewer from the Menu under Education (it's right next to the other F@h applications) or you can type "FoldingAtomata" in the command-line. If you've installed FAHControl, click Preferences and replace "FAHViewer" with "FoldingAtomata". This will make it a near drop-in replacement for FAHViewer, and it can login to remote clients just the same. The controls are fairly standard: W and S to go forward or backwards, A and D to go left and right, and Q and E to go up and down. The page up and down keys roll the camera. Use the mouse to look around!

For further information, including system requirements, installation details, command-line flags, security, and the meaning behind the name, see the README on GitHub. If you need help, type man FoldingAtomata or use the --help flag. Feel free to offer suggestions and feedback in the comments below. If you encounter a bug, you can post here or open a ticket on GitHub. If you do have a GitHub account, please feel free to Star the repository if you like my work, or fork it if you want to contribute directly.

Jesse, thanks for the work. Looks nice. Once I have my current plans for my iPad /iPhone monitor app done I would love to integrate a similar viewer into the iPad app. Maybe on the fly I can help with Mac OS X port too.

Well, I wouldn't mind if everyone started using this viewer. FAHViewer in my opinion is not as exciting as it could be, and doesn't really give you as much control and detail as it should. Although it is open-source, I found its codebase difficult to work with, so I started from scratch for this.

7im wrote:The new client provides an API so any 3rd party could write a new alternate viewer or even a new fahcontrol.

Yep. I load the data via socket connections to the FAHClient port. The commands "telnet localhost 36330" and then "trajectory 0" will give you a ton of topology and trajectory information for that slot's protein. That's basically what my viewer takes as input.

ChristianVirtual wrote:Jesse, thanks for the work. Looks nice. Once I have my current plans for my iPad /iPhone monitor app done I would love to integrate a similar viewer into the iPad app. Maybe on the fly I can help with Mac OS X port too.

It should not be difficult to port to Objective-C. The OpenGL calls should be exactly the same, so it's just a matter of converting the C++11 code and then writing a GUI wrapper. I think the socket code might also work on iDevices, not sure though. Like I said, feel free to fork the repo. CMake can generate an Xcode project, but it's may not get things linked set up correctly. YMMV. Let me know if you have any questions.

I could, yeah. Might port it to Javascript so that it will run in the browser. Then it will be platform independent and incorporate with the ocore front-end. I've also made downstream optimizations to the renderer that I can merge back as well.

For this type of application Linux is easier to develop, deploy, and distribute software to than Windows, but I'll reconsider a Windows port.