%------
% Rules
%------
rule too_short_uORF
if X is an instance of uORF
and the length_in_codons of X is L
and L =< 3
then the functionality of X is true with cf -0.5;
rule good_length_uORF
if X is an instance of uORF
and the length_in_codons of X is L
and L >= 4 and L =< 6
then the functionality of X is true with cf 0.8;
rule OK_long_uORF
if X is an instance of uORF
and the length_in_codons of X is L
and L >= 7 and L =< 10
then the functionality of X is true with cf 0.5;
rule long_uORF
if X is an instance of uORF
and the length_in_codons of X is L
and L >= 11 and L =< 15
then the functionality of X is true with cf 0.1;
rule too_long_uORF
if X is an instance of uORF
and the length_in_codons of X is L
and L >= 16
then the functionality of X is true with cf -0.6;
rule good_number_of_uORFs
if U is an instance of utr
and the number_of_ORFs of U is N
and N >= 1 and N =< 10
and the uORFs of U include X
and the length_in_codons of X is L
and L >= 4 and L =< 10
then the functionality of X is true with cf 0.8;
rule OK_number_of_uORFs
if U is an instance of utr
and the number_of_ORFs of U is N
and N >= 11 and N =< 20
and the uORFs of U include X
and the length_in_codons of X is L
and L >= 11 and L =< 16
then the functionality of X is true with cf 0.1;
rule bad_number_of_uORFs
if U is an instance of utr
and the number_of_ORFs of U is N
and N >= 21
and the uORFs of U include X
and the length_in_codons of X is L
and L >= 17
then the functionality of X is true with cf -0.6;
rule bad_position_of_uORF
if X is an instance of uORF
and the distance_from_start_codon of X is D
and D >= 0 and D =< 50
then the functionality of X is true with cf -0.9;
rule good_position_of_uORF
if X is an instance of uORF
and the length_in_codons of X is L
and L >= 4 and L =< 10
and the distance_from_start_codon of X is D
and D >= 51 and D =< 250
then the functionality of X is true with cf 0.9;
rule not_good_position_of_uORF
if X is an instance of uORF
and the length_in_codons of X is L
and L >= 11
and the distance_from_start_codon of X is D
and D >= 51 and D =< 250
then the functionality of X is true with cf -0.2;
rule OK_position_of_uORF
if X is an instance of uORF
and the distance_from_start_codon of X is D
and D >= 251
then the functionality of X is true with cf 0.1;