PyMOL is a user-sponsored molecular visualization system on an open-source foundation, maintained and distributed by Schrödinger.

The Molecular Modeling Toolkit

The Molecular Modelling Toolkit (MMTK) is an Open Source program library for molecular simulation applications. In addition to providing ready-to-use implementations of standard algorithms, MMTK serves as a code basis that can be easily extended and modified to deal with standard and non-standard problems in molecular simulations.

Download Site


Top 5 Python Web Frameworks

1) Django

Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.
Ridiculously fast + Reassuringly secure + Exceedingly scalable

TurboGears 2 is a reinvention of the TurboGears project to take advantage of new components, and to provide a fully customizable WSGI (Web Server Gateway Interface) stack. 

Free open source full-stack framework for rapid development of fast, scalable, secure and portable database-driven web-based applications. Written and programmable in Python

4) Flask

Flask is a Python framework available under the BSD license. It was inspired by the Sinatra Ruby framework. Flask depends on the Werkzeug WSGI toolkit and Jinja2template.


Bottle is a microframework. Originally meant for building APIs, Bottle implements everything in a single source file. It has no dependencies apart from the Python Standard Library. Coding with Bottle gets you closer to the metal than coding with any full-stack framework.

Snake game using python program

 #To install pygame package "pip install pygame" in python Terminal

import pygame, random, sys
from pygame.locals import *
def collide(x1, x2, y1, y2, w1, w2, h1, h2):
      if x1+w1>x2 and x1<x2+w2 and y1+h1>y2 and y1<y2+h2:return True
      else:return False
def die(screen, score):
      f=pygame.font.SysFont('Arial', 30);t=f.render('Your score was: '+str(score), True, (0, 0, 0));screen.blit(t, (10, 270));pygame.display.update();pygame.time.wait(2000);sys.exit(0)
xs = [290, 290, 290, 290, 290];ys = [290, 270, 250, 230, 210];dirs = 0;score = 0;applepos = (random.randint(0, 590), random.randint(0, 590));pygame.init();s=pygame.display.set_mode((600, 600));pygame.display.set_caption('Snake');appleimage = pygame.Surface((20, 20));appleimage.fill((0, 0, 255));img = pygame.Surface((20, 20));img.fill((255, 0, 0));f = pygame.font.SysFont('Arial', 20);clock = pygame.time.Clock()
while True:
      for e in pygame.event.get():
            if e.type == QUIT:
            elif e.type == KEYDOWN:
                  if e.key == K_UP and dirs != 0:dirs = 2
                  elif e.key == K_DOWN and dirs != 2:dirs = 0
                  elif e.key == K_LEFT and dirs != 1:dirs = 3
                  elif e.key == K_RIGHT and dirs != 3:dirs = 1
      i = len(xs)-1
      while i >= 2:
            if collide(xs[0], xs[i], ys[0], ys[i], 20, 20, 20, 20):die(s, score)
            i-= 1
      if collide(xs[0], applepos[0], ys[0], applepos[1], 20, 10, 20, 10):score+=1;xs.append(700);ys.append(700);applepos=(random.randint(0,590),random.randint(0,590))
      if xs[0] < 0 or xs[0] > 580 or ys[0] < 0 or ys[0] > 580: die(s, score)
      i = len(xs)-1
      while i >= 1:
            xs[i] = xs[i-1];ys[i] = ys[i-1];i -= 1
      if dirs==0:ys[0] += 20
      elif dirs==1:xs[0] += 20
      elif dirs==2:ys[0] -= 20
      elif dirs==3:xs[0] -= 20     
      s.fill((255, 255, 255))
      for i in range(0, len(xs)):
            s.blit(img, (xs[i], ys[i]))
      s.blit(appleimage, applepos);t=f.render(str(score), True, (0, 0, 0));s.blit(t, (10, 10));pygame.display.update()