#!/usr/bin/tclsh # # to match pdb sequence: set match 0 if {$argc != 1} \ { puts stderr "usage: bmrb2talos file.in > file.out" exit } set inFile [lindex $argv 0] set inFileID [open $inFile r] set list "N HN HA HA1 HA2 HA3 CA CB C" while { [eof $inFileID] == 0} \ { gets $inFileID line set test [lindex $line 0] if {$test == "_Mol_residue_sequence"} \ { gets $inFileID line set count 0 set end 0 set dlist "" while { $end == 0 } \ { gets $inFileID line set first [string trim [lindex $line 0] ] set seq_1 [string trim [string range $line 0 9] ] set seq_2 [string trim [string range $line 10 end] ] if {$first != ";"} \ { incr count lappend seqList $seq_1 if {$seq_2 != ""} \ { lappend seqList $seq_2 } append dlist "[string length [string trim $line]] " } if {$first == ";"} \ { set end 1 } } set last [lindex $dlist [expr [llength $dlist] - 1]] set len [expr ceil($last/10.0)] if {$len == 1} \ { set string_no [expr $count*2 - 1] } \ elseif {$len == 2} \ { set string_no [expr $count*2] } set final [expr ceil($string_no/5.0)] for {set i 0} {$i < $final} {incr i} \ { set j [expr $i*5] set row [expr $j + 4] puts "DATA SEQUENCE [lrange $seqList $j $row]" } } if {$test == "_Chem_shift_ambiguity_code"} \ { puts "" puts "VARS RESID RESNAME ATOMNAME SHIFT" puts "FORMAT %4d %1s %4s %8.3f" puts "" gets $inFileID line while {[gets $inFileID line] > 0} \ { set resID [expr [lindex $line 1] + $match] set resType [lindex $line 2] set atName [lindex $line 3] if {$atName == "H"} {set atName HN} set shift [lindex $line 5] switch $resType \ { "ALA" {set resType "A"} "ARG" {set resType "R"} "ASN" {set resType "N"} "ASP" {set resType "D"} "CYS" {set resType "C"} "GLN" {set resType "Q"} "GLU" {set resType "E"} "GLY" {set resType "G"} "HIS" {set resType "H"} "ILE" {set resType "I"} "LEU" {set resType "L"} "LYS" {set resType "K"} "MET" {set resType "M"} "PHE" {set resType "F"} "PRO" {set resType "P"} "SER" {set resType "S"} "THR" {set resType "T"} "TRP" {set resType "W"} "TYR" {set resType "Y"} "VAL" {set resType "V"} } if {[lsearch $list $atName] >= 0 && $shift != "-"} \ { puts [format "%-3s %1s %-3s %-5s" $resID $resType $atName $shift] } } } } exit