
	Automatic synchronization of DNA- and Protein-Alignments
	========================================================

- An alignment ALI_1 may have a subitem named 'synced_alignment' which contains the name
  of an other alignment ALI_2 (datapath: /preset/ali_1/synced_alignment).
  In this case ..

  * .. ALI_2 has to have an 'synced_alignment'-entry containing the name of ALI_1 and ..
  * .. one of these alignments has to be a DNA-alignment, the other one has to be a
    protein-alignment (we call them ALI_DNA and ALI_PRO).

  Such alignments are called _synced alignments_.

- Species-data residing below a synced alignment may have a 'sync_flag' (datapath:
  /species_data/species_xxx/ali_dna/sync_flag). 

	sync_flag-value		meaning
	--------------------------------------------------------------------------------
	SYNC_NOT		species should not be syncronized (this is the default
				value in case of missing sync_flag).

	SYNC_OK			both alignments (ALI_DNA and ALI_PRO) are synchronized.

	SYNC_PRO		ALI_PRO is not up to date and has to be re-translated.

	SYNC_DNA		ALI_DNA is not up to date and has to be re-aligned.


  * If /species_data/species_xxx/ali_dna does not exist no syncronization will be done
    for this species!!

- Changed read/write-machanism for synced alignments (this affects only .../ali_xx/data):

  * reading ali_dna/data:	if sync_flag==SYNC_DNA => re-align;
				read data;
  * reading ali_pro/data:	if sync_flag==SYNC_PRO => translate;
				read data;

  * writing ali_dna/data:	write data;
				if sync_flag!=SYNC_NOT => sf=SYNC_PRO; mc=ali_pro;
  * writing ali_pro/data:	write data;
				if sync_flag!=SYNC_NOT => sf=SYNC_DNA; mc=ali_dna;

  sf=<value>	set sync_flag to <value>
  mc=<ali>	mark data below <ali> as changed (to force refresh in editor)

- Due to performance issues it's possible to bypass the automatic synchronization: 

	1. force_synchronize(species);
	2. 

	

