*** This is just a draft, it's not implemented *** 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 synchronized (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 synchronization will be done for this species!! - Changed read/write-mechanism for synchronized 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= set sync_flag to mc= mark data below as changed (to force refresh in editor) - Due to performance issues it's possible to bypass the automatic synchronization: 1. force_synchronize(species); 2.