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

#rR gscope_outsiders.tcl  lesproc qui ne servent qu'une fois

proc RhIcube {} {
    set Warne 0
    NousAllonsAuBoulot "/home/ripp/rh"
    set FicIcube "TabIcube_utf8.csv"
    set FicUnist "TabUnist_utf8.csv"
    
    LoadTxl $FicIcube Icube -1 ";"
    LoadTxl $FicUnist Unist -1 ";"
    
    foreach I $Icube(ListOf,Index) {
	set Icube($I,Prenom)    [string totitle $Icube($I,Prenom)]
	set Icube($I,Nom)       [string totitle $Icube($I,Nom)]
	set Icube($I,MailIcube) [string tolower $Icube($I,Mail)]
	regsub {@icube\.} $Icube($I,MailIcube) "@" Icube($I,Mail)     ; #rR LMailIcube est machin.chose@icube.unistra.fr mais on vire icube.	
    }
    
    foreach I $Unist(ListOf,Index) {
	set Unist($I,ActionOriginal) $Unist($I,Action)
	set Unist($I,PrenomOriginal) $Unist($I,Prenom)
	set Unist($I,NomOriginal)    $Unist($I,Nom)
	set Unist($I,MailOriginal)   $Unist($I,Mail)
	set Unist($I,Prenom) [string totitle $Unist($I,Prenom)]
	set Unist($I,Nom)    [string totitle $Unist($I,Nom)]
	set Unist($I,Mail)   [string tolower $Unist($I,Mail)]
    }
    
    foreach I $Icube(ListOf,Index) {
	set Prenom    $Icube($I,Prenom)
	set Nom       $Icube($I,Nom)
	set PN        "$Prenom-$Nom"
	set Mail      $Icube($I,Mail)
	set MailIcube $Icube($I,MailIcube)
	set All "$I/$Prenom/$Nom/$Mail/$MailIcube"
	set Icube($I,PN)  $PN
	set Icube($I,All) $All
	
	if {[info exists Icube($Mail,All)]} { FaireLire "Deja vu $Mail \n $Icube($Mail,All)" ; continue }
	lappend LesMailsIcube $Mail
	set Icube($Mail,Prenom)    $Prenom
	set Icube($Mail,Nom)       $Nom
	set Icube($Mail,PN)        $PN
	set Icube($Mail,Mail)      $Mail
	set Icube($Mail,MailIcube) $MailIcube
	set Icube($Mail,All)       $All
	
	if {[info exists Icube($PN,All)]} { FaireLire "Dejavu Icube $PN $Mail $Icube($PN,All)" }
	lappend Icube($PN,Prenom)    $Prenom
	lappend Icube($PN,Nom)       $Nom
	lappend Icube($PN,PN)        $PN
	lappend Icube($PN,Mail)      $Mail
	lappend Icube($PN,MailIcube) $MailIcube
	lappend Icube($PN,All)       "$I/$Prenom/$Nom/$Mail/$MailIcube"
	lappend LesPnIcube $PN
    }
    
    foreach I $Unist(ListOf,Index) {
	set Prenom    $Unist($I,Prenom)
	set Nom       $Unist($I,Nom)
	set PN        "$Prenom-$Nom"
	set Mail      $Unist($I,Mail)
	set All       "$I/$Prenom/$Nom/$Mail"
	set Unist($I,PN)  $PN
	set Unist($I,All) $All

	if {[info exists Unist($Mail,All)]} { if {$Warne} { FaireLire "Deja vu $Mail \n $Unist($Mail,All)" } ; continue }
	lappend LesMailsUnist $Mail
	set Unist($Mail,Prenom)    $Prenom
	set Unist($Mail,Nom)       $Nom
	set Unist($Mail,PN)        $PN
	set Unist($Mail,Mail)      $Mail
	set Unist($Mail,All)       $All
	
	if {[info exists Unist($PN,All)]} { if {$Warne} { FaireLire "Dejavu Unist $PN $Mail $Unist($PN,All)" } }
	lappend Unist($PN,Prenom)    $Prenom
	lappend Unist($PN,Nom)       $Nom
	lappend Unist($PN,PN)        $PN
	lappend Unist($PN,Mail)      $Mail
	lappend Unist($PN,All)       $All
	lappend LesPnUnist $PN
    }
    
    set LeCsv {}
    foreach I $Unist(ListOf,Index) {
	set Mail $Unist($I,Mail)
	set All  $Unist($I,All)
	set PN   $Unist($I,PN)
	set Unist($I,MailFromIcube) ""
	set Unist($I,IsIcube) "....."
	if {[info exists Icube($Mail,All)]} {
	    set Unist($I,IsIcube) "ICube"
	    set MailFromIcube $Icube($Mail,Mail)
	    if {$MailFromIcube==$Mail} {
		set Unist($I,MailFromIcube) "idem avec icube."
	    } else {
		set Unist($I,MailFromIcube) $MailFromIcube
	    }
	} else {
	    if {[info exists Icube($PN,All)]} {
		set Unist($I,IsIcube) "ICube"
		set MailFromIcube $Icube($PN,Mail)
		if {$MailFromIcube==$Mail} {
		    set Unist($I,MailFromIcube) "idem avec icube."
		} else {
		    set Unist($I,MailFromIcube) $MailFromIcube
		}
	    }
	}
	set Affectation $Unist($I,ActionOriginal)
	if {$Unist($I,IsIcube)=="ICube"} { set Affectation "Icube" }
	set Prenom $Unist($I,PrenomOriginal)
	set Nom    $Unist($I,NomOriginal)
	set Mail   $Unist($I,MailOriginal)
	set MailFromIcube $Unist($I,MailFromIcube)
	set Ligne "$Affectation;$Prenom;$Nom;$Mail;$MailFromIcube"
	Espionne $Ligne
	lappend LeCsv "$Affectation;$Prenom;$Nom;$Mail;$MailFromIcube"
    }
    set FicNew [SauveLesLignes $LeCsv dans UNISTRA_new.csv]
    OnRevientDuBoulot
    return $FicNew
    exit
    
    foreach Mail $LesMailsUnist {
	if { ! [info exists ICube($Mail,Mail)]} { continue }
	#Espionne $Mail $Unist($Mail,Prenom) $Unist($Mail,Nom) ==== $Icube($Mail,Prenom) $Icube($Mail,Nom)  
    }
    
    foreach Mail $LesMailsIcube {
	if { ! [info exists DejaVuUnist($Mail)]} {
	    set Prenom $Icube($Mail,Prenom)
	    set Nom    $Icube($Mail,Nom)
	    set PN "$Prenom-$Nom"
	    set Plus ""
	    if {[info exists Unist($PN,All)]} { 
		set Plus "ou alors [join $Unist($PN,All) /]"
		regsub unistra $Mail icube.unistra MailIcube
		Espionne Dans Icube $Prenom $Nom $MailIcube  mais Manque Unistra $Plus
		set ManqueMailIcubeDansUnist($Mail) 1
	    } else {
		continue
	    }
	    Espionne $Mail $Icube($Mail,Prenom) $Icube($Mail,Nom) 
	}
	
    }
    exit
    foreach PN $LesPnIcube {
	if {[info exists Unist($PN,All)]} {
	    Espionne $Icube($PN,All) ==================== $Icube($PN,Mail) $Unist($PN,All) $Icube($PN,Mail)
	} else {
	    Espionne $Icube($PN,All)
	}
    }
    
    #Espionne $LesMailsIcube
    #Espionne $LesMailsUnist
    OnRevientDuBoulot
}

proc VerifieBlastProGS {} {
    #rR il manquait les PGSxxx en debut de ces fichiers
    set LesBad {}
    foreach Nom [ListeDesPABs] {
	set Fichier [GscopeFile $Nom "blastp"]
	if {[FileAbsent $Fichier]} { lappend LesBad "$Nom absent"; continue }
	set Blast [ContenuDuFichier $Fichier]
	set Q [StringApres "Query=" dans $Blast]
	if {$Q==$Nom} { continue }
	lappend LesBad "$Nom $Q"
	regsub "Query= " $Blast "Query= $Nom " NewBlast
	Espionne [string range $NewBlast 0 400]
	Sauve $NewBlast dans $Fichier
    }
    AfficheListe $LesBad
}

proc VerifieTfaProGS {} {
    #rR il manquait les PGSxxx en debut de ces fichiers
    set LesBad {}
    foreach Nom [ListeDesPABs] {
	set Fichier [GscopeFile $Nom "prottfa"]
	if {[FileAbsent $Fichier]} { lappend LesBad "$Nom absent"; continue }
	set TFA [ContenuDuFichier $Fichier]
	if {[regexp ">$Nom" $TFA]} { continue }
	scan $TFA "%s" A
	set A [string range $A 1 end]
	regsub ">" $TFA ">$Nom " NewTFA
	Espionne $NewTFA
#	Sauve $NewTFA dans $Fichier
    }
    AfficheListe $LesBad
}

proc VerifieGscopeGagniere {} {
    set LesManquants {}
    foreach F [glob "/home/gagniere/gscoperso/*.tcl"] {
	Espionne $F
	foreach Ligne [LesLignesDuFichier $F] {
	    if { ! [regexp {^proc ([^ \{]+)} $Ligne Match P]} { continue }
	    if {[info procs $P]!=""} { break }
	    lappend LesManquants $P
	}
    }
    AfficheListe $LesManquants
}


proc Frechin {} {
    foreach Ligne [LesLignesVitales AllGat.txt] {
	if {[regexp ".txt" $Ligne]} {
	    set Ftxt $Ligne
	    continue
	}
	scan $Ligne "%s" Access
	set Seq [QueLaSequenceDuFichierTFA $Ftxt]
	set TFA [SequenceFormatTFA $Seq $Ligne "nucbrut"]
	Espionne $TFA
	Sauve $TFA dasn "$Access.tfa"
	lappend LesNouveaux "$Access /genomics/link/ProGS/atelier/Frechin/$Access.tfa"
    }
    return $LesNouveaux
}

proc DmelTransMem {} {
    foreach Fichier [glob "/home/poch/transmbn/AE*"] {
	set OnAttendGi 1
	set OnAttendHP 0
	set Descript ""
	set HP ""
	set PNT -1
	set LaSeq ""
	set L 9999
	foreach Ligne [LesLignesDuFichier $Fichier] {
	    Espionne $Ligne
	    if { ! [regexp -nocase {[A-Z0-9]} $Ligne]} { continue }
	    if {[regexp "Helices Position" $Ligne]} {
		set OnAttendHP 1
		continue
	    }
	    if {[regexp "Predicted Number" $Ligne]} {
		set PNT [IntegerApres ":" dans $Ligne]
		continue
	    }
	    if {$OnAttendHP} {
		if { ! [regexp {^[0-9\,\-]+$} $Ligne]} {
		    FaireLire "$Ligne\nis not a helix position line in\n$Fichier"
		    set HP ""
		} else { 
		    set HP $Ligne
		}
		set OnAttendHP 0
		continue
	    }
	    if {[regexp {^gi\|} $Ligne]} {
		if {$OnAttendGi} { set OnAttendGi 0 ; continue }
		set Sequence [join $LaSeq ""]
		if {[string length $Sequence]!=$L} {
		    FaireLire "$Sequence \nis not ok. != $L"
		}
		CreeTfaDmelTransMem $Descript $Sequence $HP $PNT
		set Descript ""
		set HP ""
		set PNT -1
		set LaSeq ""

		regsub {gi\|} $Ligne "gi:" Ligne
		regsub {\|gb\|} $Ligne " gb:" Ligne
		regsub -all {\|} $Ligne "" Ligne
		set Descript $Ligne
		continue
	    }
	    if {$OnAttendGi} { continue }
	    if {[regexp {Sequence Length\:} $Ligne]} {
		set L [IntegerApres ":" dans $Ligne ]
		continue
	    }
	    if {[regexp -nocase {[^A-Z]} $Ligne]} {
		if { ! [regexp -nocase {[a-z]*\]} $Ligne]} {
		    FaireLire "$Ligne\n is not a sequence\n ... see $Fichier"
		}
		append Descript $Ligne
		continue
	    }
	    lappend LaSeq $Ligne
	}
	CreeTfaDmelTransMem $Descript $Sequence $HP $PNT
     }
}

proc GeneNameDeLaListe Fichier {
    set LesAccessAliasDefinition {} 
    foreach Ligne [LesLignesDuFichier $Fichier] {
	if { ! [regexp -nocase {[a-z]} $Ligne]} {continue}
	scan $Ligne "%s" Access
	set LesLignesEMBL [LaSequenceDesBanques $Access "OnVeutEMBL"]
	set EMBL [join $LesLignesEMBL "\n"]
	set ChampsInteressants [ChampsInteressantsDansTexteEMBL $EMBL]
	set GN ""
	set DE ""
	set LaDE {}
	foreach Champ [split $ChampsInteressants "\n"] {
	    if {[regexp "^GN  " $Champ]} {
		set GN [VraiGNDeLaLigneGN $Champ]
	    }
	    if {[regexp "^DE  " $Champ]} {
		regsub "^DE *" $Champ "" DE
		lappend LaDE $DE
	    }
	}
	set DE [join $LaDE " "]
	Espionne "$Access $GN $DE"
	lappend LesAccessAliasDefinition "$Access $GN $DE"
    }
    Espionne [SauveLesLignes $LesAccessAliasDefinition dans "[HomeRipp]/MS2PH.txt"]
}

proc SupprimeLesFantomesDuTBlastN {} {
    foreach Nom [ListeDesPABs] {
	if { ! [Fantome $Nom]} {continue}
	set Fichier "[RepertoireDuGenome]/tblastnmyself/$Nom"
	if { ! [file exists $Fichier]} {continue}
	file rename $Fichier "[RepertoireDuGenome]/tblastnmyselffantomes/$Nom"
    }
    exit
}

proc SupprimeLesFantomesDeOuATapeTBN {} {
    foreach Ligne [LesLignesDuFichier "[RepertoireDuGenome]/fiches/ouatapetbn.myself"] {
	scan $Ligne "%s" Nom
	if {[Fantome $Nom]} {
	    lappend LesFantomes $Ligne
	    continue
	}
	lappend LesBons $Ligne
    }
    SauveLesLignes $LesBons dans "[RepertoireDuGenome]/fiches/ouatapetbn.myself"
    SauveLesLignes $LesFantomes dans "[RepertoireDuGenome]/fiches/ouatapetbn.myselffantomes"
    exit
}

proc CorrigeOuATapeTBlastN {} {
    foreach Ligne [LesLignesDuFichier "[RepertoireDuGenome]/fiches/ouatapetbn.myself"] {
	if { ! [regexp ">" $Ligne]} {continue}
	lappend LeNeuf $Ligne
    }
    SauveLesLignes $LeNeuf dans "[RepertoireDuGenome]/fiches/ouatapetbn.myself"
    exit
}


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