next up previous contents index
Next: Example 4: Customizing Up: An O Tutorial. Previous: Example 2: Colouring

Example 3: Using skeletons

This example illustrates the use of skeletons and generating the necessary datablocks for a new molecule from its sequence.

 
  O >  bone 
  O >  BONE         is not a unique keyword.
  O >  Bone_setup   is a possibility.
  O >  Bone_select  is a possibility.
  O >  Bone_redefin is a possibility.
  O >  Bone_pick_Ca is a possibility.
  O >  Bone_repeat  is a possibility.
  O >  Bone_skip    is a possibility.
  O >  Bone_break_b is a possibility.
  O >  Bone_make_bo is a possibility.
  O >  BONE         is not a visible command.
  O >  bone_setup 
 Bone> Skeleton name []: ano1  
 Bone> Object name []: 100A 
 Bone>Sphere radius [    0.0 ]: 100. 
 Bone>What bone levels? [ 1 ]: 1 3
  O >  bone_select
  O >  dir ano1* 
 Heap> ANO1_ATOM_XYZ            R W     19959
 Heap> ANO1_ATOM_BONE           I W      6653
 Heap> ANO1_CONNECTIVITY        I W      7393
 Heap> ANO1_ATOM_COLOUR         I W      6653
 Heap> ANO1_RESIDUE_NAME        C W         1
 Heap> ANO1_RESIDUE_TYPE        C W         1
 Heap> ANO1_RESIDUE_POINTERS    I W         2
 Heap> ANO1_ATOM_SELECT         I W      6653

Activate a macro, its contents will be listed

  O>  @skl_100a.dat 
bone_setup ano1 bone1 100.    1  3 ; 
centre_id wait_id
bone_select
  O >
  O >  bone_break 
 Bone> Object 100A   re-drawn.
 Bone> Object BONE1  re-drawn.
  O >  del 100a ; 
  O >  @../macros/bones_20a.macro

Select all bones atoms of type 1, 2 & 3 within 20A of an Id'ed atom. This creates an atomic object called 20a, chosing skeleton atoms from bones molecule `ano1'.

 
bone_setup ano1 20a 20.    1 2 3 ; 
centre_id wait_id
bone_select

Now create empty datablocks for a molecule of P2 myelin. Read in the sequence from an external file:

  O >  read p2_sequence.o

That was a single datablock describing the P2 sequence with a molecule named NEW.

  O >  sam_init  
 Sam> This WILL initialise certain datablocks.
 Sam> Molecule name ([] to exit) :  new 
 Sam> Database compressed.
 Sam> Making residue names.
 Sam> There are   131 residues,   647 atoms.

Make an object called CA, it will get updated as you use Bone_Ca_Id. The residues have names 1, 2, 3, etc., because we did not supply a datablock of names:

  O >  mol new obj ca ; end
  O >  bone_ca_id
  ...
  ...
  O >  stop