2.2.8
error "mismatched tag" at line 1287 character 2
" }
      


    

OUTPUT BUFFER:

#!/usr/local/bin/tclsh puts "[package require WS::Client]" source PrettyPrint.tcl proc pdict { d {i 0} {p " "} {s " -> "} } { set errorInfo $::errorInfo set errorCode $::errorCode set fRepExist [expr {0 < [llength\ [info commands tcl::unsupported::representation]]}] while 1 { if { [catch {dict keys $d}] } { if {! [info exists dName] && [uplevel 1 [list info exists $d]]} { set dName $d unset d upvar 1 $dName d continue } return -code error "error: pdict - argument is not a dict" } break } if {[info exists dName]} { puts "dict $dName" } set prefix [string repeat $p $i] set max 0 foreach key [dict keys $d] { if { [string length $key] > $max } { set max [string length $key] } } dict for {key val} ${d} { puts -nonewline "${prefix}[format "%-${max}s" $key]$s" if { $fRepExist && ! [string match "value is a dict*"\ [tcl::unsupported::representation $val]] || ! $fRepExist && [catch {dict keys $val}] } { puts "'${val}'" } else { puts "" pdict $val [expr {$i+1}] $p $s } } set ::errorInfo $errorInfo set ::errorCode $errorCode return "" } proc main_db {} { # NCBI eUtils WSDL set ret [::WS::Client::GetAndParseWsdl "http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/v2.0/eutils.wsdl"] puts "WSDL Utils" if {0} { puts "\n######\n# Bank Info\n" set ddb [::WS::Client::DoCall eUtilsService run_eInfo [list db protein]] pdict $ddb } puts "\n######\n# Summary\n" set ddb [::WS::Client::DoCall eUtilsService run_eSummary [list db protein id 269926066,289432555,57234484,295403272,148656111,156743714,163847874,222525749]] puts "[PrettyPrintResult eUtilsService run_eSummary $ddb]" set Lr [eSummaryProcess $ddb acc] puts "$Lr" #set ddb [::WS::Client::DoCall eUtilsService run_eSummary [list db protein id "xp_570076"]] #pdict $ddb return } proc eSummaryProcess {Lsum {what all}} { set Lfd [list acc def cross id cdate rdate tmp tmp tmp tmp] set Ls [dict get $Lsum DocSum] foreach p $Ls { lappend Lid [lindex $p 1] set Lit [lindex $p 3] foreach it $Lit fd $Lfd { lassign $it k v if {$fd eq "def"} { lappend T($fd) "{*}$v" } else { lappend T($fd) $v } } } if {$what eq "all"} { return [array get T] } else { return [set T($what)] } } proc main_seq {{id ""}} { # WSDL address for fetch service puts "\n########" puts "# Fetch IDs in NCBI through WS" puts "" set ret [::WS::Client::GetAndParseWsdl "http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/v2.0/efetch_seq.wsdl"] pdict $ret # query data for a given Id set ft [::WS::Client::DoCall eFetchSequenceService run_eFetch [list db protein id "xp_570076,xp_002295841"]] foreach k [dict keys $ft] { puts "$k !" puts "------" set Lres [dict get $ft $k] puts "nbr res [llength $Lres]" foreach res $Lres { puts " res de res [llength $res]" foreach val $res { puts " nb val [llength $val]" foreach {c v} $val { puts "\t - $c $v" } } } } puts "" puts "dict" set nft [dict filter $ft value "GBSeq*"] pdict $nft #pdict $ft return } main_db exit main_seq exit 269926066,289432555,57234484,295403272,148656111,156743714,163847874,222525749