Index by: file name | procedure name | procedure call | annotation
gscope_aful.tcl (annotations | original source)

proc DonneesAful AF {
    Wup "We used Archeoglobus fulgidus as model for classification" 
    global LesDonneesAful 

    if {$AF == ""} { return {} }

    if { ! [info exists LesDonneesAful]} { ChargeLesDonneesAful }
    if { ! [info exists LesDonneesAful($AF)]} { return {}}
    return [set LesDonneesAful($AF)]
}

proc ChargeLesDonneesAful {} {
    global RepertoireDuGenome
    global LesDonneesAful

    JeMeSignale Patience

    foreach Ligne [LesLignesDuFichier "$RepertoireDuGenome/aful/aful_la_totale.txt"] {
	if {[regexp "^AF" $Ligne]} {
	    scan $Ligne "%s" AF
	    lappend LesDonneesAful($AF) $Ligne
	}
    }

    JeMeSignale FinPatience    
}

proc GNdeAful Nom {
    if {[scan [lindex [DonneesAful [NomDuMeilleurAful $Nom]] 0] "%s %s %s %s" AF RoFa Orga GN] == 4 } {
	return $GN
    } else {
	return "zzzz"
    }
}

proc NomDuMeilleurAful Nom {
    set mAF [MeilleurAful $Nom]
    scan [MeilleurAful $Nom] "%s %s %f %s" AF AFok PN Raison
    if {$AFok} {
	return $AF
    } else {
	return ""
    }
}

proc MeilleurAful Nom {
    global LeMeilleurAful
    if { ! [info exists LeMeilleurAful]} { ChargeLeMeilleurAful }
    if { ! [info exists LeMeilleurAful($Nom)]} { return "AF0000 0 8888.8 noReference"}
    return [set LeMeilleurAful($Nom)]
}

proc ChargeLeMeilleurAful {} {

    global RepertoireDuGenome
    global ListeDeBoites
    global LeMeilleurAful

    JeMeSignale Patience

    if { ! [info exists ListeDeBoites]} { ChargeListeDeBoites }

    foreach Boite $ListeDeBoites {
	set Nom [Box $Boite nom]
	if { ! [YaPABdans $Nom]} { continue }
	set FichierAPNs "$RepertoireDuGenome/afulapns/$Nom"

	if { ! [file exists $FichierAPNs]} { 
	    set LeMeilleurAful($Nom) "AF0000 0 9999.9 noBlastpFile"
	    continue
	}
	scan [lindex [LesLignesDuFichier $FichierAPNs] 0] "%s %f" AF PN
	set SeuilDuMeileurAful 99.9
#	set SeuilDuMeileurAful 1.e-3
	set AFok [expr $PN <= $SeuilDuMeileurAful]
	set LeMeilleurAful($Nom) "$AF $AFok $PN compared_to_$SeuilDuMeileurAful"
    }

    JeMeSignale FinPatience
}

proc QueDitAful Nom {
    global RepertoireDuGenome
    global KanvaCourant

    scan [MeilleurAful $Nom] "%s %s %f %s" AF AFok PN Raison

    if {$AFok} {
	set ListeDesDonnees [DonneesAful $AF]

	if { $ListeDesDonnees == {} } {
	    set Message "$AF $PN"
	    return 0
	} else {
	    set Message "$AF $PN\n[join $ListeDesDonnees "\n"]"
	}
    } else {
	set Message "$AF $PN $Raison"
	return 0
    }

#   if {[FiabiliteFonction $Nom] < 7} { return 0 }

    set Fenetre [AfficheVariable "$Message\n\n[ContenuDuFichier $RepertoireDuGenome/infos/$Nom]" "GrandeLargeur"]

    set DEs [ExtraitInfo $Nom "DE"]
    set LesDEs [split $DEs "/"]
    set GNs [ExtraitInfo $Nom "GN"]
    set LesGNs [split $GNs "/"]

    scan [lindex $ListeDesDonnees 0] "%s %s %s %s" AF RoleFamille HomologueDuAful GNduAful
    set ListeDesMots [split [lindex $ListeDesDonnees 0] " "]
    set DEduAful [join [lrange $ListeDesMots 4 end] " "]

    set ListeDesMots [split [lindex $ListeDesDonnees 1] "/"]
    set StringRoleFamille [join [lrange $ListeDesMots 1 2] "/"]

    if {[info exists KanvaCourant]} {
	RepereBox "Nom: $Nom" $KanvaCourant "SansInforme"
    }

    set ValiDE "$DEduAful"
    set ValiGN "$GNduAful"
    set ValiCF "$RoleFamille / $StringRoleFamille"

    set Action [ChoixParmi [list "Aful CF DE GN" "Aful CF DE   " "Aful CF    GN" "Aful CF      " "Autres choix ..." "Abandonne ce [PreFixe]" ]]

    switch $Action {

	"Aful CF DE GN" {
	    Informe $Nom "ValiDE: $ValiDE\nValiGN: $ValiGN\nValiCF: $ValiCF"
	    catch { $Fenetre.buttons.dismiss invoke }
	    return 1
	}

	"Aful CF    GN" {
	    Informe $Nom "ValiGN: $ValiGN\nValiCF: $ValiCF"
	    catch { $Fenetre.buttons.dismiss invoke }
	    return 1
	}

	"Aful CF DE   " {
	    Informe $Nom "ValiDE: $ValiDE\nValiCF: $ValiCF"
	    catch { $Fenetre.buttons.dismiss invoke }
	    return 1
	}

	"Aful CF      " {
	    Informe $Nom "ValiCF: $ValiCF"
	    catch { $Fenetre.buttons.dismiss invoke }
	    return 1 
	}

	"Abandonne ce [PreFixe]" {
	    catch { $Fenetre.buttons.dismiss invoke }
	    return 1
	}

	"Autres choix ..." {
	    set YaCF 0
	    set ValiDE [ChoixParmi [concat $LesDEs [list "$DEduAful"] "EditInfo"]]
	    if {$ValiDE != ""} {
		if {$ValiDE == "EditInfo"} {
		    Informe $Nom
		} else {
		    if {$ValiDE == $DEduAful} {
			Informe $Nom "ValiDE: $ValiDE\nValiCF: $ValiCF"
			set YaCF 1
		    } else {
			Informe $Nom "ValiDE: $ValiDE"
		    }
		}
	    }

	    set ValiGN [ChoixParmi [concat $LesGNs $GNduAful "EditInfo"]]
	    if {$ValiGN != ""} {
		if {$ValiGN == "EditInfo"} {
		    Informe $Nom
		} else {
		    if {$ValiGN == $GNduAful} {
			Informe $Nom "ValiGN: $ValiGN\nValiCF: $ValiCF"
			set YaCF 1
		    } else {
			Informe $Nom "ValiGN: $ValiGN"
		    }  
		}
	    }
	    if { ! $YaCF } { Informe $Nom "ValiCF: $ValiCF" }
	    
	    catch { $Fenetre.buttons.dismiss invoke }
	    return 1
	}
    }
    $Fenetre.buttons.dismiss invoke
    return 0
}

Index by: file name | procedure name | procedure call | annotation
File generated 2022-04-05 at 12:55.