OUTPUT BUFFER:
#!/usr/local/bin/tclsh proc ContenuDuFichier {{Fichier ""}} { if { $Fichier == "" } {return ""} set f [open $Fichier r] set Texte [read -nonewline $f] close $f return $Texte } proc LesLignesDuFichier {{Fichier ""}} { return [split [ContenuDuFichier $Fichier] "\n"] } proc MultAli {argv} { set f [lindex $argv 0] set Ll [LesLignesDuFichier $f] foreach m $Ll { puts "Traite $m" set AMuter [string index $m 0] set Mutation [string index $m end] set Position [string range $m 1 end-1] while {! [string index $Position 0]} { set Position [string range $Position 1 end] } puts "Mute $AMuter en $Mutation pos $Position" set flali [file join "mutations" $m "tnap-mult.ali"] set Lali [LesLignesDuFichier $flali] set n -1 foreach l $Lali { incr n if {! [regexp {^>P1;tnap} $l]} {continue} set Deba [expr $n+2] break } set Nl {} set p 0 set Trouve 0 foreach l [lrange $Lali $Deba end] { set i 0 while {$i < 60 && ! $Trouve} { if {[string index $l $i] != "-"} {incr p} if {$p == $Position} { puts "p= $p Position : $Position , AA= [string index $l $i]" set l [string replace $l $i $i $Mutation] set Trouve 1 } incr i } lappend Nl $l } set f [open $flali w] set d [expr $Deba-1] foreach l [lrange $Lali 0 $d] { puts $f $l } foreach l $Nl { puts $f $l } close $f puts "" } } MultAli $argv