Gsoc summer project, animation in Kalzium, call for feedback

Hi,

I’m working on a Google summer of code project (gsoc) to add animation
features into libAvogadro, which provides the molecular viewer functionality
of Kalzium. My mentor is Marcus Hanwell, who worked on libAvogadro as a
gsoc project last summer.

As part of Kalzium as an educational tool, I think the ability to view
molecules in motion is a powerful tool for providing insight into how
biological functions happen.

My idea is to provide users with the ability to try different techniques for
motion generation of molecules (especially proteins) and be able to
visualize them with Kalzium. The current best system I’ve found for doing
this is VMD http://www.ks.uiuc.edu/Research/vmd/, developed at UIUC.

Below is a list of tasks I’ve outlined for the project. I’d love to get
feedback on what features developers and users might find useful.

Thanks,
Naomi

Tasks:
The main goals are to implement task 1 (non-interactive motion) and task 3
(VCR-type functionality). I plan to start on task 2 (interactive motion)
only when the functionalities of task 1 and task 3 are well tested and
stable.

Task 1. non-interactive motion functionality. (This will involve using
OBMol’s support for multiple conformers.)

(a) implement ability to implement their motion generator by extending
classes in libAvogadro
(b) using part a, provide a file-input way to animate a molecule by reading
in files with coordinates of different conformers and displaying
© add support for some popular molecular simulation applications:
(examples rosetta, namd). Either use option (b), or some other. Options for
animation will differ on the type of simulation being done (Monte Carlo,
Molecular Dynamics).

Task 2. interactive motion (i.e. a user can select an atom or residue and
apply-force):

(a) get user input for atom selection and vector for direction and magnitude
(b) decide how to pass information back to motion simulator (need to _gure
out the best way to do this type of communication, based on what was chosen
for 1(a))
© add support for popular interactive molecular dynamics applications (ex
namd). This should be one chosen from one support was added for
non-interactive simulation for 1(a).

Task 3. VCR functionality

(a) fast-forward, rewind, play-back
(b) record to file to be played back in Kalzium
© record to some type of movie file that can be played in an external
player (.mov?)

Hi Naomi,

it is a great idea to have written to these lists.

I can’t really comment on the specific ideas that you’re proposing below, as I
am no chemist (have mostly been working on 3D-geomtrical and OpenGL aspects,
and on the Eigen library).

But I’d like to make a few general comments:

It is fully expected that the end result of any SoC will be different from its
initial plan. It is natural that your goals evolve as the project itself
evolves, even Google’s mentor forms say that. Therefore, it is not so
important for you to collect a lot of feedback on your initial goals list
before you start coding. In fact, until you send code, I don’t think that
anybody else can get a precise enough idea of where you’re going, to be able
to give good feedback. So what’s much more important is that while you are
coding, you discuss and interact very frequently with other avogadro people,
so you evolve in real-time with the rest of the project. Concretely, that
means that once you’ve coded something you send a patch to this list, and
then indeed you can expect much more feedback. Of course if it doesn’t break
things you can commit right away to svn and then ask for feedback.

You can perfectly do things in avogadro that were not at all part of your
initial plan, and expect this to be taken into account when evaluating your
SoC’s success. This happened with Marcus, he quickly started contributing
things that were not at all part of his initial SoC plan, and of course I
took this into account when evaluating his SoC (Google’s forms encouraged me
to, btw). So if you find an annoying bug and fix it, that’s great, everybody
will be thankful. Just make sure to keep a record of things you did, although
svn itself will remember that. Likewise don’t hesitate to participate in any
discussions on this list.

One last thing, if you like IRC, there are #avogadro and #kalzium on Freenode,
where these days you’ll frequently see Marcus, Carsten, Tim, Jordan among
others. I will be away for most of the 3 next weeks. Of course IRC is not at
all mandatory, e.g. Geoff and Donald seldom connect these days, but if you
hang around you’ll see a lot of opportunities to get better insight into the
project and see what’s in the air.

Cheers,
Benoit

On Friday 16 May 2008 16:35:09 Naomi Fox wrote:

Hi,

I’m working on a Google summer of code project (gsoc) to add animation
features into libAvogadro, which provides the molecular viewer
functionality of Kalzium. My mentor is Marcus Hanwell, who worked on
libAvogadro as a gsoc project last summer.

As part of Kalzium as an educational tool, I think the ability to view
molecules in motion is a powerful tool for providing insight into how
biological functions happen.

My idea is to provide users with the ability to try different techniques
for motion generation of molecules (especially proteins) and be able to
visualize them with Kalzium. The current best system I’ve found for doing
this is VMD http://www.ks.uiuc.edu/Research/vmd/, developed at UIUC.

Below is a list of tasks I’ve outlined for the project. I’d love to get
feedback on what features developers and users might find useful.

Thanks,
Naomi

Tasks:
The main goals are to implement task 1 (non-interactive motion) and task 3
(VCR-type functionality). I plan to start on task 2 (interactive motion)
only when the functionalities of task 1 and task 3 are well tested and
stable.

Task 1. non-interactive motion functionality. (This will involve using
OBMol’s support for multiple conformers.)

(a) implement ability to implement their motion generator by extending
classes in libAvogadro
(b) using part a, provide a file-input way to animate a molecule by reading
in files with coordinates of different conformers and displaying
© add support for some popular molecular simulation applications:
(examples rosetta, namd). Either use option (b), or some other. Options for
animation will differ on the type of simulation being done (Monte Carlo,
Molecular Dynamics).

Task 2. interactive motion (i.e. a user can select an atom or residue and
apply-force):

(a) get user input for atom selection and vector for direction and
magnitude (b) decide how to pass information back to motion simulator (need
to _gure out the best way to do this type of communication, based on what
was chosen for 1(a))
© add support for popular interactive molecular dynamics applications (ex
namd). This should be one chosen from one support was added for
non-interactive simulation for 1(a).

Task 3. VCR functionality

(a) fast-forward, rewind, play-back
(b) record to file to be played back in Kalzium
© record to some type of movie file that can be played in an external
player (.mov?)

then indeed you can expect much more feedback. Of course if it
doesn’t break
things you can commit right away to svn and then ask for feedback.

Speaking of which, you probably should make sure to get SVN access
sometime soon. :slight_smile: If you already have a SourceForge account, I can
add you to Avogadro. You’ll also want to get KDE access if you don’t
already.

I think your ideas are great, and I agree very much with Benoît – on
any type of project, your goals may change. For example, you might
decide that our current biomolecule rendering is horrible and that’s
the first thing you need to fix.

Welcome!
-Geoff

Hi Naomi,

Thanks for posting to these lists. It is good to see you introduce yourself.

Naomi Fox wrote:

I’m working on a Google summer of code project (gsoc) to add animation
features into libAvogadro, which provides the molecular viewer
functionality of Kalzium. My mentor is Marcus Hanwell, who worked on
libAvogadro as a gsoc project last summer.

As part of Kalzium as an educational tool, I think the ability to view
molecules in motion is a powerful tool for providing insight into how
biological functions happen.
I see Benoit and Geoff have already replied on list. I am not sure if
you are aware that Benoit was my mentor last year. It would be good to
ensure you can still build trunk of Avogadro and Kalzium and hear about
how you are getting familiar with the code bases. Either Geoff or myself
can get you SVN access to Avogadro and KDE has its own procedure for
applying for an account that you can find on http://techbase.kde.org/.

My idea is to provide users with the ability to try different
techniques for motion generation of molecules (especially proteins)
and be able to visualize them with Kalzium. The current best system
I’ve found for doing this is VMD
http://www.ks.uiuc.edu/Research/vmd/, developed at UIUC.

Below is a list of tasks I’ve outlined for the project. I’d love to
get feedback on what features developers and users might find useful.
I would also reiterate that projects such as this tend to evolve. You
have my contact details if you need to discuss any issues and there are
also quite a few others around on IRC for example who would be happy to
help you through any issues.

Looking forward to a great summer.

Sincerely,

Marcus