Hi Oliver, If you don't get any better suggestions/offers, and if having the same value for all atoms in a given residue is acceptable, below is an ancient, dirty perl script that might do the trick for you. - Mark =========== Script: ========== #!/usr/bin/perl # # Number2TempFactInPDB.pl # USAGE: Number2TempFactInPDB.pl pdbfile temperaturefile > out_file.pdb # # Takes a standard PDB file and a tab (or space)-delimeted text file of the form: # Res# Value (value range = 0 to 100.0) # and for each residue, inserts the value into the temperature (B)-factor # column of the PDB file, sending the result to standard output # # the information can then be used to color code a molecular image in most # molec. graphics programs # # 12/31/02 mg $PDBfile = $ARGV[0]; $TempFile = $ARGV[1]; open(TEMPFILE, $TempFile) or die "can't open Temperature file"; while(<TEMPFILE>) { @line = split; $Temper{$line[0]} = $line[1]; } close(TEMPFILE); open(PDBFILE, $PDBfile) or die "can't open PDB file"; while(<PDBFILE>) { $line = $_; @modified_line = readAtomLine($line); if (($modified_line[0] ne "ATOM ")) { print $line; next } $resnum = $modified_line[8]; $modified_line[14] = $Temper{$resnum}; printAtomLine(@modified_line); } close(PDBFILE); # Functions below: #call as: @output_string = readAtomLine(input_line_as_string); sub readAtomLine { $OuT[0] = substr $_[0], 0, 6; #atom 1-6 $OuT[1] = int(substr $_[0], 6, 5); #atom serial number 7-11 $OuT[2] = substr $_[0], 7, 1; #??? $OuT[3] = substr $_[0], 12, 4; #atom name 13-16 $OuT[4] = substr $_[0], 16, 1; #alt loc indicator 17 $OuT[5] = substr $_[0], 17, 3; #res name 18-20 $OuT[6] = substr $_[0], 20, 1; #??? 21 $OuT[7] = substr $_[0], 21, 1; #chain ID 22 $OuT[8] = int(substr $_[0], 22, 4); #res seq number 23-26 $OuT[9] = substr $_[0], 26, 4; #icode for insert of residues 27 + $OuT[10] = substr $_[0], 30, 8; #X 8.3 31-38 $OuT[11] = substr $_[0], 38, 8; #Y 8.3 39-46 $OuT[12] = substr $_[0], 46, 8; #Z 8.3 47-54 $OuT[13] = substr $_[0], 54, 6; # Occupancy 6.2 55-60 $OuT[14] = substr $_[0], 60, 6; # B-factor 6.2 61-66 $OuT[15] = substr $_[0], 66, 10;# Element right-justif (2) 77-78 $OuT[16] = substr $_[0], 76, 2; # Element right-justif (2) 77-78 $OuT[17] = substr $_[0], 78, 2; # Charge (right-just string(2) 79-80 return @OuT; } sub printAtomLine { printf("%-6s%5d%1s%4s%1s%3s%1s%1s%4d%4s%8.3f%8.3f%8.3f%6.2f%6.2f%10s%2s%2s\n", @_); } ========== end of script ======== ________________________________________ From: chimera-users-bounces@cgl.ucsf.edu [chimera-users-bounces@cgl.ucsf.edu] on behalf of Oliver Clarke [olibclarke@gmail.com] Sent: Tuesday, August 26, 2014 11:52 AM To: chimera-users@cgl.ucsf.edu Subject: [Chimera-users] Assigning pre-calculated attribute to B-factor column of pdb Hi all, Is there an easy way to assign a pre-calculated attribute (for example, ramachandran probability) to the b-factor (or occupancy) column of a pdb file using chimera? I’d like to do this so I can color a pdb by ramachandran probability (or other custom attributes, e.g map-model correlation) and use it as a guide while rebuilding in Coot (which has options for coloring by b-factor or occupancy, but no other capacity for custom coloring of molecules). Best, Oliver. _______________________________________________ Chimera-users mailing list Chimera-users@cgl.ucsf.edu http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users