Index by: file name |
procedure name |
procedure call |
annotation
gscope_topographe.tcl
(annotations | original source)
#rR gscope_topographe.tcl
proc BanbiDir {{NewValue ""}} {
global BanbiDir
if {$NewValue!=""} { set ::BanbiDir $NewValue }
if { ! [info exists ::BanbiDir]} {
if {[info exists env(BANBIDIR)]} {
set ::BanbiDir $env(BANBIDIR)
} else {
set ::BanbiDir "/commun/banbi"
}
}
return $::BanbiDir
}
proc VersionDeGscope {} {
global VersionDeGscope
set VersionDeGscope 2021.12
return $VersionDeGscope
}
proc VersBiolo {{Qui ""}} {
set Date [Date]
set LesLogin {}
foreach Destin [glob -nocomplain -type d "/biolo/gscope_contrib/*"] {
if {$Qui!="" && [file tail $Destin]!=$Qui} { continue }
Espionne $Destin
if { [file type $Destin]!="directory" } { continue }
set Login [file tail $Destin]
set Source "/home/$Login/gscopublic"
if { ! [file exists $Source]} { continue }
set DestinOld "/biolo/gscope_contrib/Poubelle/$Login.$Date"
set DestinTmp "${Destin}_Tmp"
file mkdir $DestinTmp
file copy -force $Source $DestinTmp
file rename $Destin $DestinOld
file rename "$DestinTmp/gscopublic" $Destin
exec chmod -R g+w $Destin
file delete $DestinTmp
lappend LesLogin $Login
}
return $LesLogin
}
proc ConfigureGscopersoGscopublic {} {
global env
set Login $env(LOGNAME)
set HomeDir $env(HOME)
if { ! [OuiOuNon "You are $Login, your home directory is $HomeDir\nOk to configure gscoperso and gscopublic ?"]} { return "" }
set LesCrees {}
set DirPerso "$HomeDir/gscoperso" ; file mkdir $DirPerso
set SourcePerso "$DirPerso/gscope_source.tcl"
if {[file exists $SourcePerso]} {
FaireLire "$SourcePerso already exists. I'll do nothing new for gscoperso"
} else {
set PersoTest "$DirPerso/gscope_test.tcl"
set LaProc {}
lappend LaProc "# gscoperso/gscope_test.tcl to try my procedure in safe mode."
lappend LaProc "#rR N'oubliez pas de copier les proc qui tournent et qui sont pour tout le monde dans un de vos fichiers gscope_chose.tcl de gscopublic"
lappend LaProc "proc Test \{A \{B \"\"\}\} \{"
lappend LaProc " puts \"This is my first procedure\""
lappend LaProc " puts \"First argument A is \$A\""
lappend LaProc " puts \"Second argument B is \$B\""
lappend LaProc " return \"Hello from $::env(HOME)/gscoperso\""
lappend LaProc "\}"
SauveLesLignes $LaProc dans $PersoTest
set LeSource {}
lappend LeSource "# gscoperso/gscope_source.tcl est sourcé en dernier par gscope"
lappend LeSource "source $DirPerso/gscope_test.tcl"
lappend LeSource ""
SauveLesLignes $LeSource dans $SourcePerso
Espionne "j'ai créé $SourcePerso qui source $PersoTest"
lappend LesCrees $SourcePerso $PersoTest
}
set DirPublic "$HomeDir/gscopublic" ; file mkdir $DirPublic
set SourcePublic "$DirPublic/gscope_$Login.tcl"
if {[file exists $SourcePublic]} {
FaireLire "$SourcePublic already exists. I'll do nothing new for gscopublic"
} else {
set PublicCooperate "$DirPublic/gscope_cooperate.tcl"
set LaProc {}
lappend LaProc "proc HelloFrom$Login \{\} \{"
lappend LaProc " return \"Hello from $Login\""
lappend LaProc "\}"
SauveLesLignes $LaProc dans $PublicCooperate
set LeSource {}
lappend LeSource "# gscopublic/gscope_$Login.tcl est sourcé par gscope"
lappend LeSource "source \$GscopeContrib/gscope_cooperate.tcl"
lappend LeSource ""
SauveLesLignes $LeSource dans $SourcePublic
Espionne "j'ai créé $SourcePublic qui source $PublicCooperate"
Espionne "Pour sourcer un autre fichier dans gscope_$Login.tcl"
Espionne " ... il faut toujours utiliser source \$GscopeContrib/gscope_autre.tcl"
Espionne "Merci"
lappend LesCrees $SourcePublic $PublicCooperate
}
FaireLire "Attention pour que le gscopublc soit pris en compte \n il faut rajoute $Login dans /home/ripp/gscope/gscope_source.tcl\n(voir Arnaud, Laetitia ou Luc)"
return $LesCrees
}
proc ProjetGscope {} {
return [file tail [RepertoireDuGenome]]
}
proc InfoScript {} {
global InfoScript
if {[info exists InfoScript]} { return $InfoScript }
return ""
}
proc SetOnTraiteLike {Quoi {RG ""}} {
if {$RG!=""} {
if {[FileAbsent $RG]} {
set RG [GscopeDatabaseDir $RG]
}
}
if {$RG==""} { set RG [RepertoireDuGenome] }
return [AppendAuFichier "$RG/beton/miniconfig" "OnTraiteLike $Quoi"]
}
proc OnTraite {Quoi {Comment ""}} {
if {$Comment==""} { set Comment "Strict" }
if {$Comment=="Strict"} { return [regexp "/$Quoi$" [RepertoireDuGenome]] }
if {$Comment=="Like" } {
if {[FileAbsent "[RepertoireDuGenome]/beton/miniconfig"]} { return 0 }
return [regexp "OnTraiteLike $Quoi" [ContenuDuFichier "[RepertoireDuGenome]/beton/miniconfig"]]
}
return [regexp $Quoi [RepertoireDuGenome]]
}
proc OnTraiteSM2PH {{Value ""}} {
global OnTraiteSM2PH
if {$Value!=""} { set OnTraiteSM2PH $Value }
if { ! [info exists OnTraiteSM2PH]} { set OnTraiteSM2PH 0 }
return $OnTraiteSM2PH
}
proc OnTraitePuzzleFit {} {
return [regexp "/PFhuman" [RepertoireDuGenome]]
}
proc OnTraiteUCSCGenomes {} {
return [regexp "UCSCGenomes" [RepertoireDuGenome]]
}
proc OnTraiteSpine {} {
return [string equal [PreFixe] "SPINE"]
}
proc OnTraiteRetGene {} {
return [regexp -nocase "RetGene" [RepertoireDuGenome]]
}
proc OnTraiteGGmm {} {
return [regexp -nocase "\GGmm$" [RepertoireDuGenome]]
}
proc OnTraiteGGWmm {} {
return [regexp -nocase "\GGWmm$" [RepertoireDuGenome]]
}
proc OnTraiteEVImm {} {
return [regexp -nocase "EVImm" [RepertoireDuGenome]]
}
proc OnTraiteSpliRet {} {
return [regexp -nocase "SpliRet" [RepertoireDuGenome]]
}
proc OnTraiteSpliRetMouse {} {
return [regexp -nocase "SpliRetMouse" [RepertoireDuGenome]]
}
proc OnTraiteSpliRetRat {} {
return [regexp -nocase "SpliRetRat" [RepertoireDuGenome]]
}
proc OnTraiteTroisPrima {} {
return [regexp -nocase "TroisPrima" [RepertoireDuGenome]]
}
proc OnTraiteGGhs {} {
return [regexp -nocase "\GGhs$" [RepertoireDuGenome]]
}
proc OnTraiteGGWhs {} {
return [regexp -nocase "\GGWhs$" [RepertoireDuGenome]]
}
proc OnTraiteEVIhs {} {
return [regexp -nocase "EVIhs" [RepertoireDuGenome]]
}
proc OnTraiteGenoretGenes {} {
return [expr [OnTraiteGGmm] || [OnTraiteGGWmm] || [OnTraiteEVImm] || [OnTraiteGGhs] || [OnTraiteGGWhs] || [OnTraiteEVIhs]]
}
proc OnTraiteMS2PH {} {
return [regexp -nocase "MS2PH|TriBlast|NewPDBSet" [RepertoireDuGenome]]
}
proc OnTraitePeroxisome {} {
return [regexp -nocase "Perox" [RepertoireDuGenome]]
}
proc OnTraiteBalibase {} {
return [regexp -nocase "Balibase" [RepertoireDuGenome]]
}
proc OnTraiteGscopeClonage {} {
return [regexp "ProGS" [RepertoireDuGenome]]
}
proc OnTraiteDesClones {} {
global GenomeOuCollection
if {[regexp "Alvi50" [RepertoireDuGenome]]} { return 1 }
if { ! [info exists GenomeOuCollection]} { return 0 }
return [regexp -nocase "Clones" $GenomeOuCollection]
}
proc OnTraiteDesAffymetrix {} {
global GenomeOuCollection
if { ! [info exists GenomeOuCollection]} { return 0 }
return [regexp -nocase "Affymetrix" $GenomeOuCollection]
}
proc OnTraiteDesCDNAs {} {
global GenomeOuCollection
if { ! [info exists GenomeOuCollection]} { return 0 }
return [regexp -nocase "CDNA" $GenomeOuCollection]
}
proc OnTraiteDesCDS {} {
global GenomeOuCollection
if { ! [info exists GenomeOuCollection]} { return 0 }
return [regexp -nocase "CDS" $GenomeOuCollection]
}
proc OnTraiteDesCDSProtFoF {} {
global GenomeOuCollection
if { ! [info exists GenomeOuCollection]} { return 0 }
return [regexp -nocase "CDS with protein in a FoF" $GenomeOuCollection]
}
proc OnTraiteDesNucleotides {} {
global GenomeOuCollection
if { ! [info exists GenomeOuCollection]} { return 0 }
if { [regexp -nocase "DNA" $GenomeOuCollection]} { return 1 }
if { [regexp -nocase "Protein" $GenomeOuCollection]} { return 0 }
if { [set R [OuiOuNonMemo "Do we handle DNA ?"]]} { return $R }
return 0
}
proc OnTraiteDesProteines {} {
global GenomeOuCollection
if { ! [info exists GenomeOuCollection]} { return 0 }
if { [regexp -nocase "protein" $GenomeOuCollection]} { return 1 }
if { [set R [OuiOuNonMemo "Do we handle only proteins (with no nuc seq)?"]]} { return $R }
return 0
}
proc OnTraiteUneCollection {} {
global GenomeOuCollection
if { ! [info exists GenomeOuCollection]} { return 0 }
return [regexp -nocase "Collection" $GenomeOuCollection]
}
proc OnTraiteUnGenome {} {
global GenomeOuCollection
if { ! [info exists GenomeOuCollection]} { return 0 }
return [regexp -nocase "Genome" $GenomeOuCollection]
}
proc Moucharde {} {
return
set f [open "~/mouchard" w]
puts $f [info nameofexecutable]
puts $f [package require http]
if {[catch {set PTcl [package require Tcl]} MTcl]} {
puts $f "No Tcl Package : I got message\n$MTcl"
} else {
puts $f "Package Tcl $PTcl"
}
# if {[catch {set PTk [package require Tk]} MTk]} {
# puts $f "No Tk Package : I got message\n$MTk"
# } else {
# puts $f "Package Tk $PTk"
# }
close $f
}
proc GenomicsLinks {{DoIt ""}} {
if {$DoIt==""} { set DoIt "Ask" }
if {[string equal -nocase $DoIt "Ask"]} {
set DoIt [OuiOuNon "Dans /genomics/link\nj'enleve les liens inexistants, je cree les manquants. \nSi tu n'es pas sûr, on fait d'abord un tour pour rien, je te repose la question à la fin.\n Je le fais pour de bon tout de suite ?" 0]
} else {
set DoIt [string equal -nocase $DoIt "DoIt"]
}
cd /genomics
set LesLinks [glob -type link "/genomics/link/*"]
set LesDelete {}
set LesNouveaux {}
set LesExistants {}
if { ! $DoIt} { lappend LesNouveaux "cd /genomics/link" }
foreach Link $LesLinks {
if {[file type $Link]!="link"} { continue }
set File [file readlink $Link]
if {[file exists $File]} { lappend LesExistants $File; continue }
Espionne "file delete $Link"
if {$DoIt} {
file delete $Link ; lappend LesDelete $Link
} else {
lappend LesDelete "rm $Link"
}
}
cd /genomics/link
set LesRepPossible {}
LConcat LesRepPossible [glob -nocomplain -type d "/gstock/*"]
LConcat LesRepPossible [glob -nocomplain -type d "/gstock/ProGscope/*/*"]
LConcat LesRepPossible [glob -nocomplain -type d "/gstock/user/*/*"]
foreach F $LesRepPossible {
set Queue [file tail $F]
if {[regexp {lost\+found} $Queue]} { continue }
if {[regexp Projets_Manu $F]} { continue }
#rR pour ne pas relinker les /genomics/g...
if {[info exists DejaVu($Queue)]} {
FaireLire "$F\n deja vu \n$DejaVu($Queue)"
}
set DejaVu($Queue) $F
set Link "/genomics/link/$Queue"
if {[file exists $Link]} { continue }
Espionne "ln -sf $F"
if {$DoIt} {
exec ln -sf $F
lappend LesNouveaux $Link
lappend LesExistants $Link
} else {
lappend LesNouveaux "ln -sf $F"
}
}
set Message "ToDo"
AfficheListe $LesDelete "" "LesDelete $Message"
AfficheListe $LesNouveaux "" "LesNouveaux $Message"
AfficheListe $LesExistants "" "LesExistants"
if { ! $DoIt && [OuiOuNon "Je refais un tour pour exécuter toutes les instructions ?"]} {
return [GenomicsLinks "DoIt"]
}
return $LesExistants
}
proc Genomics {} {
global Genomics
if {[info exists Genomics]} { return $Genomics }
set Genomics "/genomics"
if {[file exists $Genomics]} { return $Genomics }
global RepertoireDuGenome
if { [info exists RepertoireDuGenome]} {
set Genomics [file dirname $RepertoireDuGenome]
if { ! [regexp {/g[0-9][0-9]?$} $Genomics] && [file exists $Genomics]} { return $Genomics }
}
set Genomics [tk_chooseDirectory \
-mustexist 1 \
-title "Please browse for the genomics directory which should contain your Gscope project"]
return $Genomics
}
proc GenomicsPossibles {} {
set Possible [list "[Genomics]/link"]
return $Possible
}
proc GenomicsSubDir Dir {
set Queue [file tail $Dir]
foreach Possible [GenomicsPossibles] {
if {[file isdirectory $Possible/$Queue]} { return $Possible }
}
if {[file exists $Dir]} { return $Dir }
return "[Genomics]"
}
proc GscopeDatabaseDir {{Dir ""} {Ask ""} {IfExists ""}} {
global GscopeDatabaseDir
if {$Dir==""} { return [RepertoireDuGenome] }
set Queue [file tail $Dir]
if {$Queue=="fem"} { return [GscopeDatabaseDir FEM] }
foreach Possible [GenomicsPossibles] {
set PossibleQueue $Possible/$Queue
if {[file exists $PossibleQueue]} { return $PossibleQueue }
}
if {[string equal -nocase $Ask "Ask"]} {
set GDD [ChoixDuRepertoire [Genomics]]
if {$GDD!=""} { return $GDD }
}
if {[string equal -nocase $IfExists "IfExists"]} { return "" }
return $Queue
return "[GenomicsSubDir $Queue]/$Queue"
}
proc HumanGenomeDir {{Repertoire ""}} {
global env
global HumanGenomeDir
if {$Repertoire!=""} { set HumanGenomeDir $Repertoire }
if { ! [info exists HumanGenomeDir]} {
if {[info exists env(HUMANGENOMEDIR)]} {
set HumanGenomeDir $env(HUMANGENOMEDIR)
} else {
set HumanGenomeDir "[GscopeDatabaseDir HumanGenome]"
}
}
return $HumanGenomeDir
}
proc OntologyDir {{Repertoire ""}} {
global env
global OntologyDir
if {$Repertoire!=""} { set OntologyDir $Repertoire }
if { ! [info exists OntologyDir]} {
if {[info exists env(ONTOLOGYDIR)]} {
set OntologyDir $env(ONTOLOGYDIR)
} else {
set OntologyDir "[GscopeDatabaseDir Ontology]"
}
}
return $OntologyDir
}
proc Fiches {{Fichier ""}} {
if {$Fichier==""} { return "[RepertoireDuGenome]/fiches" }
return "[RepertoireDuGenome]/fiches/$Fichier"
}
proc RepertoireDuGenome {{Repertoire ""}} {
global env
global RepertoireDuGenome
global FichierMiniConfig
global GscopeDir
global argv
if {$Repertoire!=""} {
if { ! [regexp "^/" $Repertoire]} { set Repertoire "/genomics/link/$Repertoire" }
set RepertoireDuGenome $Repertoire
}
if { ! [info exists RepertoireDuGenome]} {
#rR 2010/08/26 pour permettre -project UnRepertoire (avec ou sans /genomics/link)
if {[info exists argv] && [lindex $argv 0]=="-project"} {
set PossibleRepertoireDuGenome [lindex $argv 1]
set argv [lreplace $argv 0 1]
if { ! [regexp "^/" $PossibleRepertoireDuGenome] && [FileAbsent $PossibleRepertoireDuGenome]} {
set PossibleRepertoireDuGenome "/genomics/link/$PossibleRepertoireDuGenome"
}
if {[FileExists $PossibleRepertoireDuGenome]} {
return [RepertoireDuGenome $PossibleRepertoireDuGenome]
}
}
if {[info exists env(REPERTOIREDUGENOME)]} {
set RepertoireDuGenome $env(REPERTOIREDUGENOME)
} else {
if {1} {
set RepertoireDuGenome "[GscopeEtc]/Zero"
Warne "You did not define setgscoperr. I'll use $RepertoireDuGenome"
Warne "You did not define setgscoperr. I'll use $RepertoireDuGenome"
Warne "You did not define setgscoperr. I'll use $RepertoireDuGenome"
} else {
package require Tk
set RepertoireDuGenome [tk_chooseDirectory \
-mustexist 1 \
-title "Browse for 'REPERTOIREDUGENOME' the root directory of your data" \
-initialdir "$GscopeDir/.."]
}
}
}
regsub -all {\\} $RepertoireDuGenome "/" RepertoireDuGenome
if {[info exists RepertoireDuGenome]} {
set FichierMiniConfig "$RepertoireDuGenome/beton/miniconfig"
return $RepertoireDuGenome
}
Warne "Please use setgscope subdirectory_of_/genomics/link"
Warne " or change your program to Gscope directory_of_the_genome"
exit
}
#rR les variables global suivantes sont normalemnt définies dans gscope_source
proc GscopeBin {} {
global GscopeBin
return $GscopeBin
}
proc GscopeEtc {} {
global GscopeEtc
if {! [info exists GscopeEtc]} {
return ""
}
return $GscopeEtc
}
proc GscopeDir {} {
global GscopeDir
return $GscopeDir
}
proc GscopeContrib {} {
global GscopeContrib
if { ! [info exists GscopeContrib]} { return "" }
return $GscopeContrib
}
if {[info proc WaliSourceDir]==""} {
proc WaliSourceDir {{Value ""}} {
global WaliSourceDir
if {$Value!=""} { set WaliSourceDir $Value }
if { ! [info exists WaliSourceDir]} { set WaliSourceDir "[HomeRipp]/wwwLinux/wali" }
return $WaliSourceDir
}
}
proc HomeRipp {} {
return "/home/ripp"
}
proc LogDir {} {
return "[HomeRipp]/log"
}
Index by: file name |
procedure name |
procedure call |
annotation
File generated 2022-04-05 at 12:55.