Index by: file name |
procedure name |
procedure call |
annotation
gscope_balibase.tcl
(annotations | original source)
#rR gscope_balibase.tcl
#rR 26/10/2015 j'ai refait le projet gscope Balibase avec les fichiers RV... de Julie
#rR ... avant on partait d'un workbench ... ?
#rR Pour partir des RV :
#rR supprimer tous les prottfa msf etc.
#¶R CreeBalibaseBornesDesPABsAvecRV
#¶R CreeLesLiensDansBalibase
#rR Est-ce un problblème : il manque les définitions :'(
proc CreeBalibaseBornesDesPABsAvecRV {} {
set BBDir "/genomics/link/Balibase"
foreach F [lsort [glob "$BBDir/RV*/*.tfa"]] {
set Queue [file tail $F]
regsub {\..+$} $Queue "" Nom
Espionne $Nom
lappend LesBB $Nom
}
set Fin 299
foreach Nom $LesBB {
set Debut [expr $Fin + 299]
set Fin [expr $Debut + 1802]
set Orient "F"
lappend LesBornesDesPABs "$Nom $Debut $Fin $Orient"
}
return [SauveLesLignes $LesBornesDesPABs dans "$BBDir/fiches/bornesdespabs"]
}
proc CreeLesLiensDansBalibase {} {
set RepEx(msf) "msf"
set RepEx(tfa) "tfas"
set RepEx(rsf) "macsimRsf"
set RepEx(xml) "macsimXml"
foreach Nom [ListeDesPABs] {
set RV "RV[RVof $Nom]"
foreach Ext [array names RepEx] {
set Rep $RepEx($Ext)
set FicR "[RepertoireDuGenome]/$RV/$Nom.$Ext"
set FicB "[RepertoireDuGenome]/$Rep/$Nom"
if {[FileAbsent $FicR]} { continue }
Espionne "$FicR"
exec ln -sf $FicR $FicB
}
}
}
proc RangeBalibase {} {
foreach Nom [ListeDesPABs] {
set RV "RV[RVof $Nom]"
set FicTfa "[RepertoireDuGenome]/tfas/$Nom"
set NewTfa "[RepertoireDuGenome]/$RV/$Nom.tfa"
set FicMsf "[RepertoireDuGenome]/msf/$Nom"
set NewMsf "[RepertoireDuGenome]/$RV/$Nom.msf"
file rename $FicTfa $NewTfa
file rename $FicMsf $NewMsf
exec ln -s $NewTfa $FicTfa
exec ln -s $NewMsf $FicMsf
Espionne [exec ls -l $NewMsf]
Espionne [exec ls -l $FicMsf]
}
}
proc JulieDefinitionPourTous {} {
set LesDEJ [LesLignesDuFichier "[GscopeDir]/julies-definitions.txt"]
set LesBeauxDEJ {}
foreach DEJ $LesDEJ {
regsub -all "\t" $DEJ " " DEJ
while {[regexp " " $$DEJ]} { regsub -all " " $DEJ " " DEJ }
lappend LesBeauxDEJ $DEJ
}
foreach DEJ $LesBeauxDEJ {
scan $DEJ "%s" A
set DEJdeA ""
regsub "$A " $DEJ "" DEJdeA
lappend LesDEJde($A) $DEJdeA
}
foreach Nom [ListeDesPABs] {
set DEJ [ExtraitInfo $Nom "DEJ:"]
if {$DEJ!=""} { continue }
set Alias [Alias $Nom]
set AliasCourt $Alias
regsub "_.*" $Alias "" AliasCourt
if {[info exists LesDEJde($AliasCourt)]} {
set LesPossibles [lsort -unique $LesDEJde($AliasCourt)]
set FenSeeAby "Bidon"
if {[llength $LesPossibles]>1} {
set FenSeeAby [SeeAby Show $Nom]
}
set DEJok [ChoixParmi $LesPossibles]
set RV [ExtraitInfo $Nom "RV:"]
ScanLaListe [split $RV ""] R V
set RefVar "Ref$R"
if {$V!=0} { set RefVar "$RefVar V$V" }
set Info [Informe $Nom "DEJ: $RefVar $DEJok"]
if {[winfo exists $FenSeeAby]} {
after 1000 destroy $FenSeeAby
}
if {$Info!=""} { continue }
if {[OuiOuNon "Do we stop ."]} { break }
}
set Retour [JulieDefinition $Nom $LesBeauxDEJ]
if {$Retour==-1} { break }
}
}
proc JulieDefinition {Nom LesDEJ} {
set Fen [SeeAby Show $Nom]
set DEJ [ChoixParmiJoli $LesDEJ]
if {$DEJ==""} {
if {[OuiOuNon "Do we stop ?"]} { return -1 }
}
set Info [Informe $Nom "DEJ: $DEJ"]
after 1000 destroy $Fen
return $Info
}
proc XmlValidePourTous {} {
foreach Nom [ListeDesPABs] {
set Fichier "[RepertoireDuGenome]/macsimXml/$Nom"
if { ! [file exists $Fichier]} { continue }
set Retour "nothing"
if {[catch {set Retour [exec xmlvalid $Fichier]} Message]} {
FaireLire "During the command 'xmlvalid $Fichier'\n\
I got the error message $Message\n\
and $Retour as output"
continue
}
if {$Retour!=""} {
FaireLire "During the command 'xmlvalid $Fichier'\n\
I got the output\n\'$Retour"
continue
}
Espionne "Ok for xmlvalid $Fichier"
}
}
proc RewriteXmlToXmlPourTous {RepSource {RepDestin ""} {Doctype ""}} {
if { ! [regexp "/" $RepSource]} { set RepSource "[RepertoireDuGenome]/$RepSource" }
if {$RepDestin==""} { set RepDestin $RepSource }
if { ! [regexp "/" $RepDestin]} { set RepDestin "[RepertoireDuGenome]/$RepDestin" }
foreach Nom [ListeDesPABs] {
set FichierSource "$RepSource/$Nom"
set FichierDestin "$RepDestin/$Nom"
if { ! [file exists $FichierSource]} { continue }
Espionne [RewriteXmlToXml $FichierSource $FichierDestin $Doctype]
}
}
proc TestRewriteXmlToXml {FichierSource {FichierDestin ""} {Doctype ""}} {
package require tdom
if {$Doctype==""} { set Doctype [DoctypeForMacsim] }
if {$Doctype=="NoDoctype"} { set Doctype "" }
if {$FichierDestin==""} { set FichierDestin $FichierSource }
set AncienXML [ContenuDuFichier $FichierSource]
set Doc [dom parse $AncienXML]
set Root [$Doc documentElement]
foreach Noeud [$Root selectNodes "//subgroup"] {
set Valeur [$Noeud selectNodes "string(.)"]
set Papa [$Noeud parentNode]
set Nouveau [$Doc createElement "group"]
$Nouveau appendChild [$Doc createTextNode $Valeur]
$Papa replaceChild $Nouveau $Noeud
}
foreach Noeud [$Root selectNodes "//column-score"] {
set Nouveau [$Doc createElement "colsco-type"]
$Nouveau appendChild [$Doc createTextNode "int"]
set Suivant [$Noeud selectNodes "colsco-data"]
Espionne $Suivant
$Noeud insertBefore $Nouveau $Suivant
}
set NouveauXml $Doctype
append NouveauXml [$Root asXML -indent 1]
regsub "<MSA>" $NouveauXml "<macsim>" NouveauXml
regsub "</MSA>" $NouveauXml "</macsim>" NouveauXml
if {$FichierDestin=="GetIt"} { return $NouveauXml }
return [Sauve $NouveauXml dans $FichierDestin]
}
proc RewriteXmlToXml {FichierSource {FichierDestin ""} {Doctype ""}} {
package require tdom
if {$Doctype==""} { set Doctype [DoctypeForMacsim] }
if {$Doctype=="NoDoctype"} { set Doctype "" }
if {$FichierDestin==""} { set FichierDestin $FichierSource }
set AncienXML [ContenuDuFichier $FichierSource]
set Doc [dom parse $AncienXML]
set Root [$Doc documentElement]
set NouveauXml $Doctype
append NouveauXml [$Root asXML -indent 1]
if {$FichierDestin=="GetIt"} { return $NouveauXml }
return [Sauve $NouveauXml dans $FichierDestin]
}
proc BaList {{RV ""}} {
if {$RV==""} { return [ListeDesPABs] }
set BaList {}
foreach Nom [ListeDesPABs] {
if {[RVof $Nom]==$RV} { lappend BaList $Nom }
}
return $BaList
}
proc RepertoireBalibase {} {
global RepertoireBalibase
set RepertoireBalibase "/genomics/link/Balibase"
return $RepertoireBalibase
}
proc RVof Nom {
regsub -all {[^0-9]} $Nom "" Numero
set RV [string range $Numero 0 1]
return $RV
}
proc BalibaseFile {Nom {Type ""}} {
if {$Type==""} { set Type "xml" }
set RepRV "[RepertoireBalibase]/RV[RVof $Nom]"
if {$Type=="rsf"} { return "$RepRV/$Nom.rsf" }
if {$Type=="xml"} { return "$RepRV/$Nom.xml" }
if {$Type=="tfa"} { return "$RepRV/$Nom.tfa" }
return "[RepertoireBalibase]/$Type/$Nom"
}
proc RameneBalibase {} {
set BalibaseWB "/workbench/julie/bb/bb3"
if { ! [OuiOuNon "Really, you want to reload Balibase with $BalibaseWB ?" 0]} { return {} }
set Fin 299
foreach Rep [list "ref1/v1" "ref1/v2" "ref2/test" "ref3/test" "ref4/test" "ref5/test"] {
regsub -all {[^0-9]} $Rep " " RV
set V 0
scan $RV "%d %d" R V
set Numero "$R${V}000"
foreach F [lsort [glob -nocomplain "$BalibaseWB/$Rep/*.rsf"]] {
incr Numero
set Nom "BB$Numero"
set Debut [expr $Fin + 299]
set Fin [expr $Debut + 1802]
set Orient "F"
lappend LesBornesDesPABs "$Nom $Debut $Fin $Orient"
Espionne "$Nom $F"
set BBfile [file tail $F]
regsub ".rsf$" $BBfile "" BBname
set Alias $BBname
set LeTexte {}
lappend LeTexte "Nom: $Nom"
lappend LeTexte "Alias: $Alias"
lappend LeTexte "RV: $R$V"
set FichierInfos [BalibaseFile $Nom "infos"]
SauveLesLignes $LeTexte dans $FichierInfos
set FichierRsf [BalibaseFile $Nom "rsf"]
Sauve [ContenuDuFichier $F] dans $FichierRsf
set FichierXml [BalibaseFile $Nom "xml"]
regsub ".rsf$" $F ".xml" Fxml
if {[file exists $Fxml]} {
Sauve [ContenuDuFichier $Fxml] dans $FichierXml
}
}
}
return [SauveLesLignes $LesBornesDesPABs dans "[RepertoireBalibase]/fiches/bornesdespabs"]
}
Index by: file name |
procedure name |
procedure call |
annotation
File generated 2022-04-05 at 12:55.