That's a little more complicated. The below simple Python script should do what you want, assuming all your MolProbity outputs are e.g. xxxx.pdb.log, are all in the same directory, and are the *only* files with the .log extension in the directory. Just copy the script into a file (e.g. mp_parse.py), put it in your working directory and run: python mp_parse.py You should end up with a file called results.csv with the stats tabulated and readable by your favourite spreadsheet program. Cheers, Tristan #!/bin/python import glob from os import path results = {} files = glob.glob('*.log') for file in files: name = path.basename(file).split('.')[0] props = {} results[name] = props with open(file, 'rt') as f: # Bypass details lines = f.read().split('\n') i = 0 for line in lines: i += 1 if 'Summary' in line: break lines = lines[i+1:] for line in lines: #Skip blanks if not line or '=' not in line: continue line = line.strip().split('=') # Throw away whitespace and percent signs props[line[0].strip()] = line[1].strip().split()[0] keys = ( 'Ramachandran outliers', 'favored', 'Rotamer outliers', 'C-beta deviations', 'Clashscore', 'RMS(bonds)', 'RMS(angles)', 'MolProbity score' ) with open('results.csv', 'wt') as out: out.write('Name,') out.write(','.join(keys)+'\n') for name, data in results.items(): out.write(name+',') out.write(','.join([data[key] for key in keys])+'\n') On 2018-06-26 14:42, CPMAS Chen wrote:
Thanks!
I used the bash scripts you two provided. It works great.
A further question, how do I extract the output summary of the molprobity results from all 100 files into a single file. Ideally, I would like to make the data into a table.
Appreciate your help!
=================================== Summary ===================================
Ramachandran outliers = 0.38 % favored = 95.27 % Rotamer outliers = 0.00 % C-beta deviations = 10 Clashscore = 184.98 RMS(bonds) = 0.0193 RMS(angles) = 2.77 MolProbity score = 3.06
On Mon, Jun 25, 2018 at 5:32 PM Oleg Sobolev
wrote: Hi Charles,
I would use any scripting language you are familiar with - python, bash, csh. Here is a bash script adapted from
https://stackoverflow.com/questions/10523415/bash-script-to-execute-command-...
[2]
for file in *.pdb do echo $file phenix.molprobity "$file" > "$file"_results.txt done
On mac - make a file mpscript put it in a directory with your .pdb, then run chmod a+x mpscript ./mpscript
Hope it helps.
Best regards, Oleg Sobolev.
On Mon, Jun 25, 2018 at 1:39 PM, CPMAS Chen
wrote: Hi, All,
I have about 100 structures needs be validated and optimized. what will be a fast way to do so? Can I somehow put phenix.molprobity in a circle?
Thanks!
--
***************************************************
Charles Chen
Research Instructor
University of Pittsburgh School of Medicine
Department of Anesthesiology
******************************************************
_______________________________________________ phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb [1] Unsubscribe: [email protected]
--
***************************************************
Charles Chen
Research Instructor
University of Pittsburgh School of Medicine
Department of Anesthesiology
******************************************************
Links: ------ [1] http://phenix-online.org/mailman/listinfo/phenixbb [2] https://stackoverflow.com/questions/10523415/bash-script-to-execute-command-...
_______________________________________________ phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb Unsubscribe: [email protected]