#rR gscope_retchip.tcl proc TestCineticCongRD1 {} { foreach GN [CineticCongRD1 ListOf GN] { foreach Mot [split $GN ","] { set GscopeId [QuestionDeScience "EVImm" "ret GscopeIdsOfGeneName $Mot WithSynonyms"] Espionne "$Mot $GscopeId" } } } proc IsRetchip Nom { set Retchip [ExtraitInfo $Nom "Retchip:"] return [string equal -nocase $Retchip "Yes"] } proc MiseEnSequenceDeRetinoBase {} { FaireLire "attention ne pas reexecuter cette procedure"; exit CanalSqlRetinoBase set LesTables [list analysissoftware arraytype cluster experiment genotype individual organism ortholog probeset ratio rawdata realexp sample treatment treatmenttype] foreach Table $LesTables { set NomPk "pk_${Table}" if {$NomPk=="pk_analysissoftware"} { set NomPk "pk_software" } set Last [SqlExec "select $NomPk from retinobase3.${Table} order by $NomPk desc limit 1" "GetFirstValue"] if {$Last==""} { continue } Espionne "$Table $Last" set Sql "CREATE SEQUENCE retinobase3.${Table}_pk_${Table}_seq \ INCREMENT 1 \ MINVALUE 1 \ MAXVALUE 9223372036854775807 \ START $Last \ CACHE 1; \ ALTER TABLE retinobase3.${Table}_pk_${Table}_seq OWNER TO berthomg; \ GRANT ALL ON TABLE retinobase3.${Table}_pk_${Table}_seq TO berthomg; \ GRANT SELECT, INSERT, REFERENCES ON TABLE retinobase3.${Table}_pk_${Table}_seq TO guest; \ GRANT SELECT ON TABLE retinobase3.${Table}_pk_${Table}_seq TO hoan" Espionne $Sql SqlExec $Sql } } proc CineticCongRD1Tissues {} { CanalSqlRetinoBase SqlExec "select set_curcfg('default');" set LesTissues [list \ "retina = Ret" \ "MGC" \ "brain = BR" \ "testis" \ "cumulus_oocyte_complex" \ "ovary" \ "placenta" \ "aorta" \ "heart" \ "lung" \ "kidney" \ "liver" \ "spleen" \ "submax_gland" \ "thymus" \ "stomach" \ "lymph_node" \ "skeletal_muscle" \ "CD4+_naive" \ "embryo_d7"] foreach Truc $LesTissues { set Better "" set Old "" scan $Truc "%s %s %s" Name Better Old if {$Old!=""} { continue } if {$Better!=""} { set BetterName($Name) $Better ; set Name $Better } set Pk [ProchainPk "retinobase3.tissue"] regsub -all "_" $Name " " Description set Sql "insert into retinobase3.tissue (pk_tissue, name, description) values ($Pk, '$Name', '$Description') ;" Espionne $Sql # SqlExec $Sql } CanalSqlDisconnect } proc CineticCongRD1Filter Liste { set New {} foreach Nom $Liste { if {[info exists DejaVu($Nom)]} { continue } set DejaVu($Nom) 1 if { ! [IsRetchip $Nom]} { continue } lappend New $Nom } return $New } proc CineticCongRD1 {{Qui ""} {Quoi ""}} { global CineticCongRD1 if {$Qui==""} { set Qui "ListOf" ; set Quoi "GoodHeader" } if {[info exists CineticCongRD1($Qui,$Quoi)]} { return $CineticCongRD1($Qui,$Quoi) } if {[info exists CineticCongRD1("EstCharge")]} { if {$Qui=="SaveInFile"} { set LesGoodHeader [CineticCongRD1 ListOf GoodHeader] set Headers [join $LesGoodHeader "\t"] set LaSortie {} lappend LaSortie $Headers foreach PS [CineticCongRD1 ListOf PS] { set LaLigne {} foreach H [CineticCongRD1 ListOf GoodHeader] { lappend LaLigne [CineticCongRD1 $PS $H] } set Ligne [join $LaLigne "\t"] lappend LaSortie $Ligne } set Fichier $Quoi set Fichier [SauveLesLignes $LaSortie dans $Fichier] return $Fichier } return "" } set CineticCongRD1("EstCharge") 1 #rR set FichierFred "[HomeRipp]/GenoretWww/Collaboration/CineticCongRD1/Additional_File_3-Table.csv" set FichierFred "[HomeRipp]/GenoretWww/Collaboration/CineticCongRD1/Additional_File_3-Tablev3.csv" set Q [file tail $FichierFred] regsub -nocase {\.[^\.]+$} $Q "" Q LoadTxlWithRowsOfCells $FichierFred Txl -1 ";" set CineticCongRD1(File,Name) $FichierFred set CineticCongRD1(File,Queue) $Q # EspionneL $Txl(ListHeaderPlease,$Q) set CineticCongRD1(ListOf,Header) $Txl(ListHeaderPlease,$Q) set CineticCongRD1(ListOf,Index) $Txl(ListAllPlease,$Q) set UnknownGN 0 foreach I $CineticCongRD1(ListOf,Index) { set GN $Txl($I,GeneName) if {$GN=="-"} { set GN "Unknown_[incr UnknownGN]" } lappend CineticCongRD1(ListOf,GN) $GN set PS $Txl($I,ID) lappend CineticCongRD1(ListOf,PS) $PS lappend CineticCongRD1($GN,ListOfPS) $PS if {[info exists DejaVu($PS)]} { FaireLire "I found redondant probesets : $I $GN $PS" } set DejaVu($PS) $I set CineticCongRD1($PS,GN) $GN foreach T $CineticCongRD1(ListOf,Header) { set CineticCongRD1($I,$T) $Txl($I,$T) set CineticCongRD1($PS,$T) $Txl($I,$T) set CineticCongRD1($PS,Index) $I } } set CineticCongRD1(ListOf,GN) [lsort -unique $CineticCongRD1(ListOf,GN)] foreach GN $CineticCongRD1(ListOf,GN) { foreach Mot [split $GN ","] { if {[OnTraiteEVImm]} { set GscopeIds [GscopeIdsOfGeneName $Mot "WithSynonymsRetChipOnly"] set GscopeIds [CineticCongRD1Filter $GscopeIds] } else { set GscopeIds [QuestionDeScience "EVImm" "ret GscopeIdsOfGeneName $Mot WithSynonymsRetChipOnly"] set GscopeIds [QuestionDeScience "EVImm" "ret CineticCongRD1Filter $GscopeIds"] } set CineticCongRD1($GN,GscopeIds) $GscopeIds foreach PS $CineticCongRD1($GN,ListOfPS) { set CineticCongRD1($PS,GscopeIds) $GscopeIds set CineticCongRD1($PS,PS) $PS set CineticCongRD1($PS,GN) $GN } } } set CineticCongRD1(ListOf,GoodHeader) [concat [list "PS" "GN" "GscopeIds"] $CineticCongRD1(ListOf,Header)] return [CineticCongRD1 $Qui $Quoi] } proc SynonymsPourTous {{Liste ""} {Quoi ""} {GscopeSyn ""}} { set GscopeSyn [string equal -nocase $GscopeSyn "GscopeSyn"] set SynGscope [expr ! $GscopeSyn] if {$Quoi==""} { set Quoi "GetList" } if {$Liste==""} { set Liste [ListeDesPABs] } if {$GscopeSyn} { set LesGscopeSyn {} foreach Nom $Liste { lappend LesGscopeSyn "$Nom [join [SynonymsOfGscopeId $Nom] " "]" } if {$Quoi=="GetList"} { return $LesGscopeSyn } set GscopeSyn [join $LesGscopeSyn "\n"] if {[PourWscope]} { return [Html_DuTexteTelQuel $GscopeSyn] } if {$Quoi=="GetTxt"} { return $GscopeSyn } if {$Quoi=="Show"} { return [AfficheVariable $GscopeSyn] } return $LesGscopeSyn } if {$SynGscope} { set LesSynGscope {} foreach Synonym [GscopeSynonyms ListOf Synonyms] { lappend LesSynGscope "[format %-20s $Synonym] [join [GscopeSynonyms $Synonym GscopeIds] " "]" } if {$Quoi=="GetList"} { return $LesSynGscope } set SynGscope [join $LesSynGscope "\n"] if {[PourWscope]} { return [Html_DuTexteTelQuel $SynGscope] } if {$Quoi=="GetTxt"} { return $SynGscope } if {$Quoi=="Show"} { return [AfficheVariable $SynGscope] } return $LesSynGscope } } proc GscopeSynonyms {{Qui ""} {Quoi ""}} { global GscopeSynonyms if {$Qui==""} { set Qui "ListOf" } if {$Quoi==""} { set Quoi "Synonyms" } set Qui [string toupper $Qui] set Quoi [string toupper $Quoi] if {[info exists GscopeSynonyms($Qui,$Quoi)]} { return $GscopeSynonyms($Qui,$Quoi) } if {[info exists GscopeSynonyms("EstCharge")]} { return "" } set GscopeSynonyms("EstCharge") 1 set GscopeSynonyms(LISTOF,SYNONYMS) {} foreach Nom [ListeDesPABs] { set LesSyn [Synonyms $Nom] foreach Syn $LesSyn { set SYN [string toupper $Syn] lappend GscopeSynonyms(LISTOF,SYNONYMS) $Syn lappend GscopeSynonyms($SYN,GSCOPEIDS) $Nom foreach S $LesSyn { lappend GscopeSynonyms($SYN,SYNONYMS) $S } } } set GscopeSynonyms(LISTOF,SYNONYMS) [lsort -unique $GscopeSynonyms(LISTOF,SYNONYMS)] foreach Syn $GscopeSynonyms(LISTOF,SYNONYMS) { set SYN [string toupper $Syn] set GscopeSynonyms($SYN,SYNONYMS) [ListeSansDoublon $GscopeSynonyms($SYN,SYNONYMS) "" "NoEmpty"] } return [GscopeSynonyms $Qui $Quoi] } proc Synonyms Nom { return [SynonymsOfGscopeId $Nom] } proc SynonymsOfGscopeId Nom { set GN [ValiGN $Nom] set Alias [Alias $Nom] if {$GN==""} { set GN $Alias } if {$GN==""} { return {} } set FromGscope [list $GN $Alias] set FromSameOrga [SynonymsFromSameOrganism $GN] set LesSynonymes [concat $FromGscope $FromSameOrga] set LesSynonymes [ListeSansDoublon $LesSynonymes "" "NoEmpty"] return $LesSynonymes } proc SynonymsFromSameOrganism {G {Programme ""}} { while {$Programme==""} { set OS [NotreOS] if {$OS=="Homo sapiens"} { set Programme "HumanSynonyms" ; break } if {$OS=="Mus musculus"} { set Programme "MouseSynonyms" ; break } if {[PourWscope]} { return "" } set Programme [ChoixParmi [list "MouseSynonyms" "HumanSynonyms"]] if {$Programme==""} { return "" } } if {$G=="NameOfProgram"} { return $Programme } return [$Programme $G] } proc MouseSynonyms G { set M [MGI $G "MgiId"] if {$M==""} { return {} } set O [MGI $M "GeneName"] set All [concat [list $O] [MGI $M "Synonyms"]] set All [ListeSansDoublon $All] return $All } proc HumanSynonyms G { set H [HGNC $G "HGNC_ID"] if {$H==""} { return {} } set O [HGNC $H "Approved_Symbol"] set All [concat [list $O] [HGNC $H "Synonyms"]] set All [ListeSansDoublon $All] return $All } proc MouseFromHuman {{Qui ""} {Quoi ""}} { if {$Qui==""} { set Qui "ListOf" } if {[string equal -nocase $Qui "ListOf"]} { if {[string equal -nocase $Quoi "HumanHeader"]} { return [HGNC ListOf Header] } if {[string equal -nocase $Quoi "MouseHeader"]} { return [MGI ListOf Header] } } set H [HGNC $Qui HGNC_ID] Espionne "H $H" set M [MGIHGNC $H MGIID] Espionne "M $M" if {$M==""} { set M [MGIHGNC $Qui MGIID] } return [MGI $M $Quoi] } proc HumanFromMouse {{Qui ""} {Quoi ""}} { if {$Qui==""} { set Qui "ListOf" } if {[string equal -nocase $Qui "ListOf"]} { if {[string equal -nocase $Quoi "MouseHeader"]} { return [MGI ListOf Header] } if {[string equal -nocase $Quoi "HumanHeader"]} { return [HGNC ListOf Header] } } set M [MGI $Qui MGIID] Espionne "M $M" set H [MGIHGNC $M HGNCID] Espionne "H $H" if {$H==""} { set H [MGIHGNC $Qui HGNCID] } if {$H==""} { set H [HGNC $Qui HGNC_ID]} return [HGNC $H $Quoi] } proc MGIHGNC {{Qui ""} {Quoi ""}} { global MGIHGNC if {$Qui==""} { set Qui "ListOf" ; set Quoi "Header" } if {$Quoi==""} { set Quoi "AllTxt" } set Qui [string toupper $Qui] set Quoi [string toupper $Quoi] if {[info exists MGIHGNC($Qui,$Quoi)]} { return $MGIHGNC($Qui,$Quoi) } if {$Quoi=="ALLTXT" || $Quoi=="ALLLIST" || $Quoi=="ALLHTML"} { set LeTout [MGIHGNC $Qui "All"] if {$LeTout==""} { return "" } foreach T [MGIHGNC ListOf Header] V $LeTout { lappend LeRetour [format "%45s : %s" $T $V] } if {$Quoi=="ALLLIST"} { return $LeRetour } set Retour [join $LeRetour "\n"] if {$Quoi=="ALLHTML" || [PourWscope]} { return "
\n$Retour\n" } if {$Quoi=="ALLTXT"} { return $Retour } return $Retour } if {[info exists MGIHGNC("EstCharge")]} { if {[info exists MGIHGNC($Qui,MGIID)]} { set FirstRef [lindex $MGIHGNC($Qui,MGIID) 0] if {[string equal -nocase $Qui $FirstRef]} { return "" } return [MGIHGNC $FirstRef $Quoi] } return "" } set MGIHGNC("EstCharge") 1 set FichierMGIHGNC "[GscopeDatabaseDir UCSCGenomes]/GeneNaming/HMD_HGNC_Accession.rpt" set Q [file tail $FichierMGIHGNC] set MGIHGNC(FILE,NAME) $FichierMGIHGNC set MGIHGNC(FILE,QUEUE) $Q set MGIHGNC(LISTOF,HEADER) [list "MgiId" "MgiGeneName" "MgiMarkerName" "MgiEntrezGeneId" "HgncId" "HgncGeneName" "HgncEntrezGeneId"] foreach Ligne [LesLignesDuFichier $FichierMGIHGNC] { set LesMots [split $Ligne "\t"] ScanLaListe $LesMots MgiId MgiGeneName MgiMarkerName MgiEntrezGeneId HgncId HgncGeneName HgncEntrezGeneId set MGIID [string toupper $MgiId] set HGNCID [string toupper $HgncId] set MGIGENENAME [string toupper $MgiGeneName] set HGNCGENENAME [string toupper $HgncGeneName] #if {$HGNCID!="" && [info exists DejaVu($HGNCID)]} { FaireLire "DejaVu $HGNCID\n$DejaVu($HGNCID)\n$Ligne" } #set DejaVu($HGNCID) $Ligne #if {$MGIID!="" && [info exists DejaVu($MGIID)]} { FaireLire "DejaVu $MGIID\n$DejaVu($MGIID)\n$Ligne" } #set DejaVu($MGIID) $Ligne foreach T $MGIHGNC(LISTOF,HEADER) V $LesMots { set T [string toupper $T] set MGIHGNC($MGIID,$T) $V set MGIHGNC($HGNCID,$T) $V } set MGIHGNC($MGIID,HGNCID) $HGNCID set MGIHGNC($HGNCID,MGIID) $MGIID lappend MGIHGNC($MGIGENENAME,MGIID) $MGIID lappend MGIHGNC($HGNCGENENAME,HGNCID) $HGNCID lappend MGIHGNC($MgiEntrezGeneId,HGNCGENEID) $HgncEntrezGeneId lappend MGIHGNC($HgncEntrezGeneId,MGIGENEID) $MgiEntrezGeneId lappend MGIHGNC($HgncEntrezGeneId,MGIID) $MGIID lappend MGIHGNC(LISTOF,MGIID) $MGIID lappend MGIHGNC(LISTOF,HGNCID) $HGNCID lappend MGIHGNC(LISTOF,MGIGENENAME) $MGIGENENAME lappend MGIHGNC(LISTOF,HGNCGENENAME) $HGNCGENENAME set MGIHGNC($MGIID,ALL) $LesMots set MGIHGNC($HGNCID,ALL) $LesMots } set MGIHGNC(LISTOF,MGIID) [lsort -unique $MGIHGNC(LISTOF,MGIID)] set MGIHGNC(LISTOF,HGNCID) [lsort -unique $MGIHGNC(LISTOF,HGNCID)] set MGIHGNC(LISTOF,MGIGENENAME) [lsort -unique $MGIHGNC(LISTOF,MGIGENENAME)] set MGIHGNC(LISTOF,HGNCGENENAME) [lsort -unique $MGIHGNC(LISTOF,HGNCGENENAME)] return [MGIHGNC $Qui $Quoi] } proc MGI {{Qui ""} {Quoi ""}} { #LP 2013/01/31 avant on lisait MRK_Synonym.sql.rpt. Maintenant on lit MRK_List2.rpt global MGI if {$Qui==""} { set Qui "ListOf" } if {$Quoi=="" && [string equal -nocase $Qui "ListOf"]} { set Quoi "Header" } if {$Quoi==""} { set Quoi "AllTxt" } set Qui [string toupper $Qui] set Quoi [string toupper $Quoi] if {[info exists MGI($Qui,$Quoi)]} { return $MGI($Qui,$Quoi) } if {$Quoi=="ALLTXT" || $Quoi=="ALLLIST" || $Quoi=="ALLHTML"} { set LesTouts [MGI $Qui All] set LeRetour {} set N [llength $LesTouts] set Saut "" if {$N>1} { set Saut "\n" } set I 0 foreach LeTout $LesTouts { incr I if {$LeTout==""} { continue } if {$N>1} { lappend LeRetour [format "\n%45s : %s" "I_found_${N}_hits" $I] } foreach T [MGI ListOf Header] V $LeTout { lappend LeRetour [format "%45s : %s" $T $V] } } if {$Quoi=="ALLLIST"} { return $LeRetour } set Retour [join $LeRetour "\n"] if {$Quoi=="ALLHTML" || [PourWscope]} { return "
\n$Retour\n" } if {$Quoi=="ALLTXT"} { return $Retour } return $Retour } if {[info exists MGI("EstCharge")]} { if {[info exists MGI($Qui,ONE_MGIID)]} { return [MGI $MGI($Qui,ONE_MGIID) $Quoi] } return "" } set MGI("EstCharge") 1 set FichierMGI "[GscopeDatabaseDir UCSCGenomes]/GeneNaming/MRK_List2.rpt" set Q [file tail $FichierMGI] regsub -nocase {\.[^\.]+$} $Q "" Q set MGI(FILE,NAME) $FichierMGI set MGI(FILE,QUEUE) $Q LoadTxl $FichierMGI Txl -1 "\t" set MGI(LISTOF,HEADER) $Txl(ListHeaderPlease,$Q) set MGI(LISTOF,INDEX) $Txl(ListAllPlease,$Q) foreach I $Txl(ListAllPlease,$Q) { set MgiId $Txl($I,MGI_Accession_ID) set Gn $Txl($I,Marker_Symbol) if {[info exists Txl($I,Marker_Synonyms_pipe-separated)]} { set SynIni $Txl($I,Marker_Synonyms_pipe-separated) } set MGIID [string toupper $MgiId] set GN [string toupper $Gn] lappend MGI(LISTOF,MGIID) $MgiId lappend MGI(LISTOF,GENENAME) $Gn set MGI($GN,MGIID) [lsort -unique [lappend MGI($GN,MGIID) $MgiId]] set MGI($MGIID,GENENAME) [lsort -unique [lappend MGI($MGIID,GENENAME) $Gn]] if {[info exists SynIni]} { set LesSyn [split $SynIni "|"] set MGI($MGIID,LISTOFSYN) $LesSyn set MGI($GN,LISTOFSYN) $LesSyn foreach Syn $LesSyn { set SYN [string toupper $Syn] lappend MGI($SYN,REFERENCE_MGIID) $MGIID lappend MGI($SYN,REFERENCE_GENENAME) $Gn } } set LeTout {} foreach T $Txl(ListHeaderPlease,$Q) { lappend LeTout $Txl($I,$T) set MGI($MGIID,[string toupper $T]) $Txl($I,$T) set MGI($GN,[string toupper $T]) $Txl($I,$T) } lappend MGI($MGIID,ALL) $LeTout lappend MGI($GN,ALL) $LeTout } set MGI(LISTOF,MGIID) [lsort -unique $MGI(LISTOF,MGIID)] set MGI(LISTOF,GENENAME) [lsort -unique $MGI(LISTOF,GENENAME)] return [MGI $Qui $Quoi] } proc MGISW {{Qui ""} {Quoi ""} {Ou ""}} { JeMeSignale #Utilise l'un ou l'autre #set FichierMGISW "/genomics/link/UCSCGenomes/GeneNaming/MRK_SwissProt.rpt" #set FichierMGISW "/genomics/link/UCSCGenomes/GeneNaming/MRK_SwissProt_TrEMBL.rpt" global MGISW if {$Qui==""} { set Qui "ListOf" ; set Quoi "Header" } if {$Quoi==""} { set Quoi "AllTxt" } set Qui [string toupper $Qui] set Quoi [string toupper $Quoi] Espionne $Ou if {[string equal -nocase $Ou "SW"]} { set Ou "MRK_SwissProt.rpt" } if {[string equal -nocase $Ou "SWTrEmbl"]} { set Ou "MRK_SwissProt_TrEMBL.rpt" } if {$Ou!="" && ! [regexp "/" $Ou]} { set Ou "/genomics/link/UCSCGenomes/GeneNaming/$Ou" } Espionne $Ou if {$Ou!=""} { if {[info exists MGISW(FILE,NAME)] && $Ou!=$MGISW(FILE,NAME)} { unset MGISW } set FichierMGISW $Ou set MGISW(FILE,NAME) $Ou } else { if {[info exists MGISW(FILE,NAME)]} { set Ou $MGISW(FILE,NAME) set FichierMGISW $Ou } else { FaireLire "Il faut donner un nom de fichier ou SW ou SWTrEmbl la premiere fois" return "" } } if {[info exists MGISW($Qui,$Quoi)]} { return $MGISW($Qui,$Quoi) } if {$Quoi=="ALLTXT" || $Quoi=="ALLLIST" || $Quoi=="ALLHTML"} { set LeTout [MGISW $Qui "All"] if {$LeTout==""} { return "" } foreach T [MGISW ListOf Header] V $LeTout { lappend LeRetour [format "%45s : %s" $T $V] } if {$Quoi=="ALLLIST"} { return $LeRetour } set Retour [join $LeRetour "\n"] if {$Quoi=="ALLHTML" || [PourWscope]} { return "
\n$Retour\n" } if {$Quoi=="ALLTXT"} { return $Retour } return $Retour } if {[info exists MGISW("EstCharge")]} { if {[info exists MGISW($Qui,MGIID)]} { set FirstRef [lindex $MGISW($Qui,MGIID) 0] if {[string equal -nocase $Qui $FirstRef]} { return "" } return [MGISW $FirstRef $Quoi] } return "" } set MGISW("EstCharge") 1 set Q [file tail $FichierMGISW] set MGISW(FILE,NAME) $FichierMGISW set MGISW(FILE,QUEUE) $Q set MGISW(LISTOF,HEADER) [list "MgiId" "GeneName" "Status" "Name" "cMPosition" "Chr" "Sw"] foreach Ligne [LesLignesDuFichier $FichierMGISW] { set LesMots [split $Ligne "\t"] ScanLaListe $LesMots MgiId GeneName Status Name cMPosition Chr Sw set MGIID [string toupper $MgiId] set GENENAME [string toupper $GeneName] lappend MGISW(LISTOF,MGIID) $MGIID lappend MGISW(LISTOF,GENENAME) $GENENAME if {$MGIID!="" && [info exists DejaVu($MGIID)]} { FaireLire "DejaVu $MGIID\n$DejaVu($MGIID)\n$Ligne" } set DejaVu($MGIID) $Ligne if {$GENENAME!="" && [info exists DejaVu($GENENAME)]} { FaireLire "DejaVu $GENENAME\n$DejaVu($GENENAME)\n$Ligne" } set DejaVu($GENENAME) $Ligne foreach T $MGISW(LISTOF,HEADER) V $LesMots { set T [string toupper $T] set MGISW($MGIID,$T) $V set MGISW($GENENAME,$T) $V } set MGISW($MGIID,SW) $Sw set MGISW($MGIID,ALL) $LesMots } set MGISW(LISTOF,MGIID) [lsort -unique $MGISW(LISTOF,MGIID)] set MGISW(LISTOF,GENENAME) [lsort -unique $MGISW(LISTOF,GENENAME)] return [MGISW $Qui $Quoi] } proc MGILP {{Qui ""} {Quoi ""}} { #From LP: En 2008, tous les MGI n etaient pas present dans [GscopeDatabaseDir UCSCGenomes]/GeneNaming/MRK_Synonym.sql.rpt ??? exemple:ccng2 #FromLP: En 2013, le fichier MRK_Synonym.sql.rpt n existe plus : ne se sert plus de MGILP global MGILP set Qui [string toupper $Qui] if {[info exists MGILP($Qui,$Quoi)]} {return $MGILP($Qui,$Quoi)} if {[info exists MGILP("EstCharge")]} {return ""} set MGILP("EstCharge") 1 #set MGILP(LISTOF,HEADER) [list "MgiId" "GeneName"] set Fichier "[GscopeDatabaseDir UCSCGenomes]/GeneNaming/MRK_Dump1.rpt" foreach Ligne [LesLignesDuFichier $Fichier] { set LesMotsDeLaLigne [split $Ligne "\t"] set Mgi [lindex $LesMotsDeLaLigne 0] set Gn [lindex $LesMotsDeLaLigne 1] set Gn [string toupper $Gn] set MGILP($Mgi,Gn) $Gn set MGILP($Gn,Mgi) $Mgi } return [MGILP $Qui $Quoi] } proc HGNC {{Qui ""} {Quoi ""}} { global HGNC if {[string equal -nocase $Quoi "GeneName"]} { set Quoi "Approved_Symbol" } if {$Qui==""} { set Qui "ListOf" } if {$Quoi=="" && [string equal -nocase $Qui "ListOf"]} { set Quoi "Header" } if {$Quoi==""} { set Quoi "AllTxt" } set Qui [string toupper $Qui] set Quoi [string toupper $Quoi] if {$Quoi=="ALLTXT" || $Quoi=="ALLLIST" || $Quoi=="ALLHTML"} { set LeTout [HGNC $Qui All] if {$LeTout==""} { return "" } foreach T [HGNC ListOf Header] V $LeTout { lappend LeRetour [format "%45s : %s" $T $V] } if {$Quoi=="ALLLIST"} { return $LeRetour } set Retour [join $LeRetour "\n"] if {$Quoi=="ALLHTML" || [PourWscope]} { return "
\n$Retour\n" } if {$Quoi=="ALLTXT"} { return $Retour } return $Retour } if {[info exists HGNC($Qui,$Quoi)]} { return $HGNC($Qui,$Quoi) } if {[info exists HGNC("EstCharge")]} { if {[info exists HGNC($Qui,REFERENCES)]} { set FirstRef [lindex $HGNC($Qui,REFERENCES) 0] return [HGNC $FirstRef $Quoi] } return "" } set HGNC("EstCharge") 1 set FichierHGNC "[GscopeDatabaseDir UCSCGenomes]/GeneNaming/HGNC.txt" set Q [file tail $FichierHGNC] regsub -nocase {\.[^\.]+$} $Q "" Q LoadTxl $FichierHGNC Txl -1 "\t" set HGNC(FILE,NAME) $FichierHGNC set HGNC(FILE,QUEUE) $Q set HGNC(LISTOF,HEADER) $Txl(ListHeaderPlease,$Q) lappend HGNC(LISTOF,HEADER) "Source_of_information" lappend HGNC(LISTOF,HEADER) "HttpReference" set HGNC(LISTOF,INDEX) $Txl(ListAllPlease,$Q) foreach I $Txl(ListAllPlease,$Q) { set HGNCID "$Txl($I,HGNC_ID)" if { ! [regexp {^HGNC\:} $HGNCID]} { set HGNCID "HGNC:$HGNCID" } set Txl($I,HGNC_ID) $HGNCID set AS $Txl($I,Approved_Symbol) if {[info exists Txl($I,Aliases)]} { set Aliases $Txl($I,Aliases) } if {[info exists Txl($I,Synonyms)]} { set Aliases $Txl($I,Synonyms) } lappend HGNC(LISTOF,SYNOTXT) $Aliases set Previous $Txl($I,Previous_Symbols) set HGNC($AS,HGNC_ID) $I if {[info exists DejaVu($AS)]} { FaireLire "I saw already $AS $I $DejaVu($AS)" } set DejaVu($AS) $I lappend HGNC(LISTOF,APPROVED_SYMBOL) $AS set LesAlias [split $Aliases ","] set LesPrevious [split $Previous ","] set LesAliasEtPrevious [lsort -unique [concat $LesAlias $LesPrevious]] set HGNC($HGNCID,SYNONYMS) {} foreach Alias $LesAliasEtPrevious { regsub -all " " $Alias "" Alias lappend HGNC($HGNCID,LISTOFSYNONYM) $Alias lappend HGNC($AS,LISTOFSYNONYM) $Alias set ALIAS [string toupper $Alias] lappend HGNC($ALIAS,REFERENCES) $HGNCID lappend HGNC(LISTOF,ALIAS) $Alias } set LeTout {} foreach T $Txl(ListHeaderPlease,$Q) { lappend LeTout $Txl($I,$T) set HGNC($HGNCID,[string toupper $T]) $Txl($I,$T) set HGNC($AS,[string toupper $T]) $Txl($I,$T) } set HGNC($HGNCID,SOURCE_OF_INFORMATION) "Created by Gscope with download from http://www.genenames.org" lappend LeTout $HGNC($HGNCID,SOURCE_OF_INFORMATION) regsub -all {[^0-9]} $HGNCID "" HGNCIDnu set Ref "http://www.genenames.org/data/hgnc_data.php?hgnc_id=$HGNCIDnu" set TexteRef $Ref if {[PourWscope]} { set TexteRef "$Ref" } set HGNC($HGNCID,HTTPREFERENCE) $TexteRef lappend LeTout $HGNC($HGNCID,HTTPREFERENCE) set HGNC($HGNCID,ALL) $LeTout set HGNC($AS,ALL) $LeTout lappend HGNC(LISTOF,HGNC_ID) $HGNCID } set HGNC(LISTOF,SYNOTXT) [lsort -unique $HGNC(LISTOF,SYNOTXT)] set HGNC(LISTOF,ALIAS) [lsort -unique $HGNC(LISTOF,ALIAS)] set HGNC(LISTOF,SYNONYM) $HGNC(LISTOF,ALIAS) return [HGNC $Qui $Quoi] } proc TestGenoretProteomicsLinks {} { set Nom EVI00520 foreach Ref [GenoretProteomicsLinks $Nom "Ref"] { Espionne $Ref EspionneL [GenoretProteomicsLinks "$Nom$Ref" "Columns"] } exit } proc GenoretProteomicsLinks {{Qui ""} {Quoi ""}} { global GenoretProteomicsLinks if {$Qui == "Reset" && [info exists GenoretProteomicsLinks]} { unset GenoretProteomicsLinks ; return "" } if {$Qui==""} { set Qui "ListOf"; set Quoi "EVI" } if {$Quoi == ""} { set Quoi "All" } if {[info exists GenoretProteomicsLinks($Qui,$Quoi)]} { return $GenoretProteomicsLinks($Qui,$Quoi) } if {[info exists GenoretProteomicsLinks("EstCharge")]} { return "" } set GenoretProteomicsLinks("EstCharge") 1 set GenoretProteomicsLinks(ListOf,EVI) {} foreach Ligne [LesLignesDuFichier "[HomeRipp]/GenoretWww/Proteomics/GenoretGenesLinks.txt"] { scan $Ligne "%s %s" Nom Queue regsub { " $Ligne]} { lappend LeTFA $Ligne continue } if { ! $PremiereFois} { # Espionne "Sauve dans $Nom" # SauveLesLignes $LeTFA dans "[RepertoireDuGenome]/nuctfa/$Nom" } regsub ">" $Ligne "" Ligne if {[regexp "bidon" $Ligne] && ! $YaEuLigne} { FaireLire "Un bidon sans ligne !!!" ; continue } set PtiNom "" if { 0==$Ieme } { set NewNum [expr $N ] ; set NewNom [format "EVI%5.5d" $NewNum] } if { 0 <$Ieme && $Ieme < 10} { set NewNum [expr $N + $Ieme] ; set NewNom [format "EVI%5.5d" $NewNum] } if {10<=$Ieme } { set NewNum [expr $N*100 + $Ieme] ; set NewNom [format "EVI%7.7d" $NewNum] } if {10<=$Ieme } { set PtiNum [expr $N+50000 + $Ieme] ; set PtiNom [format "EVI%5.5d" $PtiNum] } if {$PtiNom!="" && [info exists DejaVu($PtiNom)]} { Espionne "........................................... $PtiNom par $DejaVu($PtiNom)" } set DejaVu($PtiNom) $NewNom set I 0 set NomDeBase [format "EVI%5.5d" [expr $N]] while 1 { set Nom [format "EVI%5.5d" [expr $N+$I]] if { ! [info exists DejaVu($Nom)]} { break } incr I } set DejaVu($Nom) 1 set Tout 1 if {$Tout || $Nom!=$NewNom} { set NewNomDe($Nom) $NewNom set PlaceLibre [expr [string equal $Nom $NewNom] || [string length $NewNom]>8 || [info exists NewNomDe($NewNom)]] set Texte "$Nom [format "%-10s" $NewNom] [format "%2d" $Ieme] $N $PlaceLibre $PtiNom" Espionne $Texte lappend LaCorrespondance "$Nom [expr $N/10] $Ieme" } incr Ieme continue if {$YaEuLigne && [info exists BonNom($Nom)]} { Espionne "$Nom devrait s'appeler $BonNom($Nom)" } if {(0<$I && $I<10) && $PrecedentMerde} { Espionne " ............................... $Nom" } if {$I>9 || $PrecedentMerde} { set Normal 0 set BeauNom [format "EVI%7.7d" [expr $N*100 + $I]] if {$YaEuLigne} { set MeilleurN [expr $N] set MeilleurNom [format "EVI%5.5d" [expr $MeilleurN]] Espionne "$Nom != $BeauNom mais $MeilleurNom" set PrecedentMerde 1 } else { Espionne "$Nom == $BeauNom" set PrecedentMerde 0 } set NbDizaines [expr $I/10] while {$NbDizaines>0} { set Pousse [format "EVI%5.5d" [expr $N + $NbDizaines*10]] # set MauvaisNomDuPousse($Pousse) [format "EVI%5.5d" [expr $N + $I + 1]] # set MauvaisNomPrecedent [format "EVI%5.5d" [expr $N + $I]] # if {[info exists BonNom($MauvaisNomPrecedent)]} { unset BonNom($MauvaisNomPrecedent) } set Decalage 0 set MauvaisNom [format "EVI%5.5d" [expr $Decalage + $N + $I + 1]] set BonNom($MauvaisNom) $Pousse incr NbDizaines -1 continue } } set YaEuLigne 0 continue } SauveLesLignes $LaCorrespondance dans "[Fiches]/NomLigne.txt" exit } proc CompteLesPlusDixAccmRNA {} { set NumeroLigne "" set NbDeFois 0 set Trop 0 set OnALigne 0 foreach Ligne [LesLignesDuFichier "/genomics/link/EVImm/parser/AttriToutVf2"] { if {[regexp "^ligne" $Ligne]} { set OnALigne 1 if {$NbDeFois>10} { Espionne "$NumeroLigne $NbDeFois" incr Trop } set NbDeFois 0 scan $Ligne "%s %s" Bidon NumeroLigne } if {$OnALigne && [regexp "^>" $Ligne]} { incr NbDeFois } } Espionne "trop $Trop" } proc CompulsoryGenesOnWeb {} { return [RetinalGenesSummaryOnWeb [ListOfCompulsoryGenes] "CompulsoryGenes"] } proc CorrigeLesBestCops {} { set Compte 0 set DeCompte 100 foreach Fichier [lsort [glob "[RepertoireDuGenome]/transcriptomique/LesCopainsClusterOld/*lesbestcops"]] { if { ! [incr DeCompte -1]} { Espionne "[incr Compte] $Fichier"; set DeCompte 100 } set Queue [file tail $Fichier] regsub {\-lesbestcops} $Queue "" Queue regsub {\-} $Queue {\\-} QX set LesAutres {} foreach Ligne [LesLignesDuFichier $Fichier] { if {[regexp "nbdecombinaison" $Ligne]} {set Nlu [IntegerApres "nbdecombinaison" dans $Ligne] ; continue} regsub -all "/" $Ligne "-OU-" Ligne if {[regexp "$QX " $Ligne]} { set MoiMeme $Ligne scan $MoiMeme "%d" N if {$Nlu!=$N} { FaireLire "$Queue $N $Nlu $Ligne" } continue } lappend LesAutres $Ligne } set LeNouveau [list $MoiMeme] LConcat LeNouveau $LesAutres SauveLesLignes $LeNouveau dans $Fichier } } proc CopainsDuBlastpEVImmProt {} { foreach Nom [ListeDesPABs] { set Fichier [GscopeFile $Nom "blastpEVImmProt"] if {[FileAbsent $Fichier]} { continue } set lBanqueId {} set lPN {} DecortiqueBlast $Fichier 1.0e-80 20 Query lBanqueId lAccess lDE lProfil lPN set SeqRef [QueLaSequenceDuFichierTFA [GscopeFile $Nom "prottfa"]] foreach BId $lBanqueId PN $lPN { set Hit "" regsub {^[^\:]+\:} $BId "" Hit if {$Hit==$Nom || $Hit==""} { continue } set SeqHit [QueLaSequenceDuFichierTFA [GscopeFile $Hit "prottfa"]] if {[string equal -nocase $SeqHit $SeqRef]} { lappend LesEgaux "$Hit = $Nom" Espionne "$Hit = $Nom" continue } if {[regexp -nocase $SeqHit $SeqRef]} { lappend LesPetits "$Hit < $Nom" continue } if {[regexp -nocase $SeqRef $SeqHit]} { lappend LesPetits "$Nom < $Hit" continue } } } set LesEgaux [lsort -unique $LesEgaux] set LesPetits [lsort -unique $LesPetits] SauveLesLignes $LesEgaux dans "[Fiches]/LesEgaux" SauveLesLignes $LesPetits dans "[Fiches]/LesPetits" return [concat $LesEgaux $LesPetits] } proc NiceWebOfCluster Texte { set Liste {} foreach Ligne [split $Texte "\n"] { set GN "" scan $Ligne "%d %s %s" N Queue GN regsub {\-} $Queue " " NomProbeset scan $NomProbeset "%s %s" Nom Probeset set DE [DefinitionRapide $Nom] lappend Liste $Nom lappend LesPS $Probeset lappend LesN $N } return [RetinalGenesSummaryOnWeb $Liste "BestFriendsInCluster" 1_ProbeSet $LesPS 1_ClusterHit $LesN ] } proc TranscriptomicBestFriendsInClusterDir {} { return "[RepertoireDuGenome]/transcriptomique/LesCopainsCluster" } proc TranscriptomicBestFriendsInCluster {Nom {Quoi ""} {Comment ""}} { set Extension "-lesbestcops" if {$Comment==""} { set Comment "FileContent" } if {$Quoi==""} { set Quoi "All"} set Fichier "[TranscriptomicBestFriendsInClusterDir]/${Nom}-$Quoi$Extension" if {[FileExists $Fichier]} { if {$Comment=="FileContent"} { return [ContenuDuFichier $Fichier] } if {$Comment=="NiceWeb"} { return [NiceWebOfCluster [ContenuDuFichier $Fichier]] } } if {$Quoi!="Filenames" || $Quoi!="All"} { return "" } set Probesets [ExtraitInfo $Nom "ProbeSetId:"] regsub -all "/" $Probesets "-OU-" Probesets regsub -all "," $Probesets " " Probesets set LesPS [LesMotsDeLaLigne $Probesets] set LaSortie {} foreach PS $LesPS { set Fichier "[TranscriptomicBestFriendsInClusterDir]/$Nom-$PS$Extension" if {[FileAbsent $Fichier]} {continue} if {$Quoi=="FileNames"} { lappend LaSortie $Fichier } if {$Quoi=="All"} { lappend LaSortie [ContenuDuFichier $Fichier] } } return [join $LaSortie "\n"] } proc TranscriptomicClustersDir {} { return "[RepertoireDuGenome]/transcriptomique/cluster" } proc TranscriptomicClusters {Nom {Quoi ""}} { if {$Quoi==""} { set Quoi "All"} set Fichier "[TranscriptomicClustersDir]/${Nom}_$Quoi" if {[FileExists $Fichier]} { return [ContenuDuFichier $Fichier] } set Probesets [ExtraitInfo $Nom "ProbeSetId:"] regsub -all "/" $Probesets "-OU-" Probesets regsub -all "," $Probesets " " Probesets set LesPS [LesMotsDeLaLigne $Probesets] set LaSortie {} foreach PS $LesPS { set Fichier "[TranscriptomicClustersDir]/$Nom-$PS" if {[FileAbsent $Fichier]} {continue} if {$Quoi=="FileNames"} { lappend LaSortie $Fichier } if {$Quoi=="All"} { lappend LaSortie [ContenuDuFichier $Fichier] } } return [join $LaSortie "\n"] } proc SignalIntensityDir {} { return "[RepertoireDuGenome]/transcriptomique/SignalIntensity" } proc SignalIntensities {Nom {Quoi ""}} { if {$Quoi==""} { set Quoi "All"} set Fichier "[SignalIntensityDir]/${Nom}_$Quoi" if {[FileExists $Fichier]} { return [ContenuDuFichier $Fichier] } set Probesets [ExtraitInfo $Nom "ProbeSetId:"] regsub -all "/" $Probesets "-OU-" Probesets regsub -all "," $Probesets " " Probesets set LesPS [LesMotsDeLaLigne $Probesets] set LaSortie {} foreach PS $LesPS { set Fichier "[SignalIntensityDir]/$Nom-$PS" if {[FileAbsent $Fichier]} {continue} if {$Quoi=="FileNames"} { lappend LaSortie $Fichier } if {$Quoi=="All"} { lappend LaSortie [ContenuDuFichier $Fichier] } } return [join $LaSortie "\n"] } proc GscopeIdsOfIdAccProt {Iap} { global GscopeIdsOfIdAccProt set IAP [string toupper $Iap] if {[info exists GscopeIdsOfIdAccProt($IAP)]} { return $GscopeIdsOfIdAccProt($IAP) } if {[info exists GscopeIdsOfIdAccProt("EstCharge")]} { return {} } set GscopeIdsOfIdAccProt("EstCharge") 1 foreach Nom [ListeDesPABs] { foreach IapLu [split [ExtraitInfo $Nom "IdAccProt:"] " "] { set IapLu [string trim $IapLu] set IAPLU [string toupper $IapLu] lappend GscopeIdsOfIdAccProt($IAPLU) $Nom lappend GscopeIdsOfIdAccProt(LISTOFIDACCPROTS) $IapLu } } set GscopeIdsOfIdAccProt(LISTOFIDACCPROTS) [lsort -unique $GscopeIdsOfIdAccProt(LISTOFIDACCPROTS)] return [GscopeIdsOfIdAccProt $Iap] } proc GscopeIdsOfIdAccArnm {accarnm} { global GscopeIdsOfIdAccArnm if {[info exists GscopeIdsOfIdAccArnm($accarnm)]} { return $GscopeIdsOfIdAccArnm($accarnm) } if {[info exists GscopeIdsOfIdAccArnm("EstCharge")]} { return {} } set GscopeIdsOfIdAccArnm("EstCharge") 1 foreach Nom [ListeDesPABs] { set Acc [AccessEvi $Nom] lappend GscopeIdsOfIdAccArnm($Acc) $Nom } return [GscopeIdsOfIdAccArnm $accarnm] } proc DefinitionsOfAliasGeneName Gn { set DefinitionsOfAliasGeneName {} foreach Nom [GscopeIdsOfGeneName $Gn] { lappend DefinitionsOfAliasGeneName "$Nom [ValiGN $Nom] [DefinitionRapide $Nom]" } return $DefinitionsOfAliasGeneName } proc GscopeIdsOfProbeSet {Ps} { global GscopeIdsOfProbeSet if {[info exists GscopeIdsOfProbeSet($Ps)]} { return $GscopeIdsOfProbeSet($Ps) } if {[info exists GscopeIdsOfProbeSet("EstCharge")]} { return {} } set GscopeIdsOfProbeSet("EstCharge") 1 foreach Nom [ListeDesPABs] { set LaLigneProbesSet [ExtraitInfo $Nom "ProbeSetId:"] regsub -all "/" $LaLigneProbesSet "-OU-" LaLigneProbesSet set LesProbesSet [split $LaLigneProbesSet ","] foreach PsLu $LesProbesSet { lappend GscopeIdsOfProbeSet($PsLu) $Nom lappend GscopeIdsOfProbeSet(LISTOFProbeSet) $PsLu } } return [GscopeIdsOfProbeSet $Ps] } proc ProbesetsOfGscopeId Nom { set PS [ExtraitInfo $Nom "ProbesetId"] if {[regexp -nocase "no value" $PS]} { return {} } set LesPS [split $PS ", "] return $LesPS } proc ProbesetsOfGeneName {Gn} { set LesProbesetsOfGeneName {} foreach Nom [GscopeIdsOfGeneName $Gn] { LConcat LesProbesetsOfGeneName [ProbesetsOfGscopeId $Nom] } return [lsort -unique $LesProbesetsOfGeneName] } proc GscopeIdsOfGeneName {Gn {WithSynonyms ""}} { global GscopeIdsOfGeneName set WithSynonyms [regexp -nocase "WithSynonym" $WithSynonyms] set GN [string toupper $Gn] if {[info exists GscopeIdsOfGeneName($GN)]} { return $GscopeIdsOfGeneName($GN) } if {[info exists GscopeIdsOfGeneName("EstCharge")]} { return {} } set GscopeIdsOfGeneName("EstCharge") 1 set GscopeIdsOfGeneName(LISTOFGENENAMES) {} foreach Nom [ListeDesPABs] { set ValiGN [ValiGN $Nom] if {$ValiGN==""} {continue} lappend GscopeIdsOfGeneName(LISTOFGENENAMES) $ValiGN lappend GscopeIdsOfGeneName([string toupper $ValiGN]) $Nom set LesAliasGn [AliasGeneNames $Nom] foreach GnLu $LesAliasGn { set GNLU [string toupper $GnLu] lappend GscopeIdsOfGeneName($GNLU) $Nom } lappend GscopeIdsOfGeneName(LISTOFGENENAMES) $GnLu if {$WithSynonyms} { foreach Synonym [SynonymsOfGscopeId $Nom] { set SYNONYM [string toupper $Synonym] lappend GscopeIdsOfGeneName($SYNONYM) $Nom } } } set GscopeIdsOfGeneName(LISTOFGENENAMES) [lsort -unique $GscopeIdsOfGeneName(LISTOFGENENAMES)] return [GscopeIdsOfGeneName $Gn] } proc AliasGeneNames Nom { set LesGn {} foreach PossibleAlias [list "AliasGnRna:" "AliasGnProt:" "AliasGnHuman:"] { LConcat LesGn [split [ExtraitInfo $Nom $PossibleAlias] " "] } set LesAliasGn {} set DejaVu([string toupper [ValiGN $Nom]]) 1 foreach Gn $LesGn { set GN [string toupper $Gn] if {[info exists DejaVu($GN)]} { continue } set DejaVu($GN) $Gn lappend LesAliasGn $Gn } return $LesAliasGn } proc CorrigeAliasGnEVImm {} { foreach Nom [ListeDesPABs] { Espionne $Nom set F [GscopeFile $Nom "infos"] if {[FileExists $F]} { set LesLignes {} foreach Ligne [LesLignesDuFichier $F] { if {[regexp {^(AliasGnRna|AliasGnProt)} $Ligne]} { regsub -all ", " $Ligne " " Ligne regsub -all "," $Ligne " " Ligne while {[regexp " " $Ligne]} { regsub -all " " $Ligne " " Ligne } } lappend LesLignes $Ligne } SauveLesLignes $LesLignes dans $F } set F [GscopeFile $Nom "infosfiche"] if {[FileExists $F]} { set LesLignes {} foreach Ligne [LesLignesDuFichier $F] { if {[regexp {^(RnaAliasGn|ProtAliasGn)} $Ligne]} { regsub -all ", " $Ligne " " Ligne regsub -all "," $Ligne " " Ligne while {[regexp " " $Ligne]} { regsub -all " " $Ligne " " Ligne } } lappend LesLignes $Ligne } SauveLesLignes $LesLignes dans $F } } } proc TranscriptomicSignalIntensity Nom { set Rep "[RepertoireDuGenome]/transcriptomique/SignalIntensity" set LesFichiers [glob -nocomplain "$Rep/$Nom-*"] set LaSortie {} foreach Fichier $LesFichiers { set Queue [file tail $Fichier] set Probeset [StringSuivant "-" dans $Queue] lappend LaSortie "" lappend LaSortie "$Nom $Probeset" foreach Ligne [LesLignesDuFichier $Fichier] { ScanLaListe [split $Ligne "\t"] Ps Ch Ex Sa Si Ca Re So lappend LaSortie "$Ps [format "%6.2f" $Si] [format "%1s" $Ca] $Re [format "%-8s" $So] $Ch $Ex $Sa" } } set Texte [join $LaSortie "\n"] if {[PourWscope]} { return [Html_DuTexteTelQuel $Texte] } return $Texte } proc InterrogeCopainsDesCompulsory {{Qui ""} {Quoi ""}} { global InterrogeCopainsDesCompulsory if {$Quoi==""} {set Quoi "Nom"} if {[info exists InterrogeCopainsDesCompulsory($Qui,$Quoi)]} { #if {[PourWscope]} {return "
[join $InterrogeCopainsDesCompulsory($Qui,$Quoi) "\n"]"} return $InterrogeCopainsDesCompulsory($Qui,$Quoi) } if {[info exists InterrogeCopainsDesCompulsory("EstCharge")]} { return "" } set InterrogeCopainsDesCompulsory("EstCharge") 1 #attention certains n'ont pas gn set Repertoire "[RepertoireDuGenome]/transcriptomique/LesCopainsClusterSsBigClu" set Seuil 8 set I 0 foreach Nom [ListOfCompulsoryGenes] { set LesGnsDuNom {} #Espionne "$Nom" set InterrogeCopainsDesCompulsory($Nom,Boite) {} foreach File [glob -nocomplain "$Repertoire/${Nom}-*-lesbestcops"] { #Espionne "File $File" if {[regexp "AFFX" $File]} {Espionne "Attention AFFX"} set premiereligne 1 foreach Ligne [LesLignesDuFichier $File] { if {$premiereligne} { set premiereligne 0 scan $Ligne "%s %s" nbdecombinaisoncompul bidon set TabCompul($Nom) $nbdecombinaisoncompul } set LesMots [split $Ligne " "] set nb [lindex $LesMots 0] if {$nb < $Seuil} {continue} #Espionne "nb $nb" set EviPs [lindex $LesMots 1] if {[regexp "AFFX" EviPs]} {Espionne "Attention2"} set LesEviPs [split $EviPs "-"] set Boite [lindex $LesEviPs 0] set Gn [lindex $LesMots 2] lappend InterrogeCopainsDesCompulsory($Nom,Boite) $Boite lappend InterrogeCopainsDesCompulsory($Boite,Nom) $Nom set InterrogeCopainsDesCompulsory($Boite,Nom) [lsort -unique $InterrogeCopainsDesCompulsory($Boite,Nom)] #Espionne "$Boite $Gn" } } set InterrogeCopainsDesCompulsory($Nom,Boite) [lsort -unique $InterrogeCopainsDesCompulsory($Nom,Boite)] } return [InterrogeCopainsDesCompulsory $Qui $Quoi] } proc BelleVue {H V Nom} { if {$H=="ProbeSetId" || $H=="ProbeSet"} {return [H_Href $V "http://genoret.igbmc.fr/genoret/Project/igbmc/evimm/testGscopeLaetitia.php?GscopeID=$Nom" "target='_blank'"]} #if {$H=="ProbeSetId"} {return [H_Href $V "[LbgiUrl]/SignalIntensityImage/$Nom*" "target='_blank'"]} if {$H=="GscopeId"} {return [H_Href $V "[WscopeScience]&FileMoi&$Nom" "target='_blank'"]} if {$H=="Description"} {return [H_Href $V "[WscopeScience]&FileMoi¬es&$Nom" "target='_blank'"]} if {$H=="TissueTypes" || $H=="TissueType"} { return [H_Href $V "[LbgiUrl]/jpg_of_TissType/${Nom}_TissType.jpg" "target='_blank'"] } if {$H=="DevStages"} { return [H_Href $V "[LbgiUrl]/jpg_of_DevStage/${Nom}_DevStage.jpg" "target='_blank'"] } if {$H=="AccessmRNA"} { return [H_Href $V [WgetzSurWeb "$V" "" "GetUrl"] "target='_blank'"] } if {$H=="AccessProt"} { return [H_Href $V [WgetzSurWeb "$V" "" "GetUrl"] "target='_blank'"] } if {$H=="CopainsDesCompulsory"} { return [H_Href $V "[WscopeScience]&InterrogeCopainsDesCompulsory&$Nom" "target='_blank'"] } if {$H=="cDNA"} { return [H_Href $V "[WscopeScience]&FileMoi&ResultcDNA/RecapInfoADNc&$Nom" "target='_blank'"] } return $V } proc RetinalGenesSummaryOnWeb {{ListeDesNoms ""} {TitreSummary ""} args} { set LesHeadSup {} set I 0 foreach {PH LesV} $args { regsub "_" $PH " " PH scan $PH "%s %s" Pos Head incr Pos $I lappend LesHeadSup $Head set PosSup($Head) $Pos set K 0 foreach V $LesV { set ValSup($Head,$K) $V incr K } incr I } set LesHeaders [RecapitulatifRetChip "LesHeaders" "GetIt"] foreach Head $LesHeadSup { set LesHeaders [linsert $LesHeaders $PosSup($Head) $Head] } set NbHeaders [llength $LesHeaders] set Titre "Gscope summary for Retinal Genes $TitreSummary" set HeaderDuHtml "" Html_ZeroToBody $Titre $HeaderDuHtml Html_BackTo Html_Append [H_Balise $Titre "h3"] set NbCol $NbHeaders CouleurDegradee $NbCol set Liste {} lappend Liste $NbCol lappend Liste "border='1' cellpadding='3' cellspacing='1'" lappend Liste "" foreach Header $LesHeaders { lappend Liste "bgcolor='[CouleurDegradee]' nowrap='nowrap'" } foreach Header $LesHeaders { lappend Liste $Header } set K 0 foreach Ligne [RecapitulatifRetChip $ListeDesNoms "GetIt"] { Espionne "Debut$Ligne FIN" set LesValeurs [split $Ligne ";"] foreach Head $LesHeadSup { set P $PosSup($Head) set V "" if {[info exists ValSup($Head,$K)]} { set V $ValSup($Head,$K) } set LesValeurs [linsert $LesValeurs $P $V] } incr I set Nom [lindex $LesValeurs 0] if { ! [EstUnPAB $Nom]} { continue } foreach H $LesHeaders V $LesValeurs { set Vue [BelleVue $H $V $Nom] lappend Liste $Vue } incr K } Html_TableFromList $Liste Html_BodyToEnd return [Html_Get "ZeroIt"] } proc RetinalGenesForSelectionOnWeb {{ListeDesNoms ""} {TitreSummary ""} args} { set LesHeadSup {} set I 0 foreach {PH LesV} $args { regsub "_" $PH " " PH scan $PH "%s %s" Pos Head incr Pos $I lappend LesHeadSup $Head set PosSup($Head) $Pos set K 0 foreach V $LesV { set ValSup($Head,$K) $V incr K } incr I } set Fichier "[RepertoireDuGenome]/Reduction/TableauPourReductionSsRedondanceTrie" set LesLignes [LesLignesDuFichier $Fichier] set LigneDeTete [lindex $LesLignes 0] set LesHeaders [split $LigneDeTete ";"] #set LesHeaders [RecapitulatifRetChip "LesHeaders" "GetIt"] foreach Head $LesHeadSup { set LesHeaders [linsert $LesHeaders $PosSup($Head) $Head] } set NbHeaders [llength $LesHeaders] set Titre "Selection of Retinal Genes $TitreSummary" set HeaderDuHtml "" Html_ZeroToBody $Titre $HeaderDuHtml Html_BackTo Html_Append [H_Balise $Titre "h3"] set NbCol $NbHeaders CouleurDegradee $NbCol set Liste {} lappend Liste $NbCol lappend Liste "border='1' cellpadding='3' cellspacing='1'" lappend Liste "" foreach Header $LesHeaders { lappend Liste "bgcolor='[CouleurDegradee]' nowrap='nowrap'" } foreach Header $LesHeaders { lappend Liste $Header } set K 0 foreach Ligne $LesLignes { #foreach Ligne [RecapitulatifRetChip $ListeDesNoms "GetIt"] Espionne "Debut$Ligne FIN" set LesValeurs [split $Ligne ";"] foreach Head $LesHeadSup { set P $PosSup($Head) set V "" if {[info exists ValSup($Head,$K)]} { set V $ValSup($Head,$K) } set LesValeurs [linsert $LesValeurs $P $V] } incr I set Nom [lindex $LesValeurs 0] if { ! [EstUnPAB $Nom]} { continue } foreach H $LesHeaders V $LesValeurs { set Vue [BelleVue $H $V $Nom] #set LongV [string length $V] #if {$LongV>=80} #set Milieu [expr $LongV / 2] #set Vue "[string range $Vue 0 $Milieu]