SortExons.c geneid v 1.2 source documentation


Description:
Sorting predicted exons of every type (first, internal, terminal, single and ORFs) and place all of them in the array used to assemble the best genes (maximum amount: NUMEXONS * FSORT).
Briefing:
void FreeItems(struct exonitem *q)
Free memory allocated for a list of nodes (exon, next node) in a recursive way.
void InsertFirstGhostExon(exonGFF* Exons)
Insertion of an artificial initial feature to force prediction of a complete gene in the current sequence.
void InsertLastGhostExon(exonGFF* Exons, long n, long L)
Insertion of an artificial terminal feature to force prediction of a complete gene in the current sequence.
void UpdateList(struct exonitem** p, exonGFF* InputExon)
Insert the input exon into a list according to the its position: create a new node and insert it at the end of the list. Note: all of the exons of the list begin at the same nucleotide.
void SortExons(packExons* allExons, 
               packExons* allExons_r, 
               packExternalInformation* external,
               packEvidence* pv,
               exonGFF* Exons,         
               long l1, long l2)
Sorting all of predicted exons by using this method: insert every exon in a table of lists ExonList (range 1:Length of the fragment) where every position will contain a list of exons which begin in the same position. Then, screen the table, picking up the exons from every list and place them into the final array preserving the same order of traversing the table. If the option -F has been activated, artificial initial and terminal features are integrated in the array in the exons coming from first and last sequence fragments.




Enrique Blanco Garcia © 2003