Skip to main content

Column exchange script in Python

This script allows one to exchange two columns in a file.And it do so for all the files in a directory. The python script is :

----------------------------

#script to read and execute column exchange for all files in the directory
import os
listing=os.listdir("/home/K/Documents/PY/column_exchange")
for infile in listing:
 print infile
 if infile !="column_interchange_script.py":
  fi=open(infile).readlines()
  fo=open(infile +'_output','w')
  space="   "
  for line in fi:
   first,second=line.split()
   fo.write('%s%s%s\n'%(second,space,first))
 else:
   print "This is not interesting file"
   
----------------------------------------------------
 
 Some expert might simplify it a lot more, but for new python user like me, this is a big leap.
So, how does it work:

Create a directory where in all the files for which column exchange need to be done are stored.
Keep this python script also in the same directory.
The path shown in bold  need to be replaced with the proper path of the directory.
$python column_interchange_script.py command shoulf carry out column exchange for all the files in the directory.



One problem I was facing was the script was reading itself also and collapsing with an error. So I added exception using "!=" returning result for it with else statement.


One precaution: if you modify the script using editor, then it creates a temprary file column_interchange_script.py~ sometimes. This could create problem. script reads this file also and collapses. So either modify it in terminal or delete this file.

Why I needed this?
The Umbrella Sampling calculations yield files with values in two columns. For plotting individual histograms corresponding to each file we need to exchange columns. Number of such files might be large enough to motivate you to write a script to do so.
I have few things in mind to improvise on it, but since my task is fulfilled with this script, I might not modify it any further
 

Comments

Popular posts from this blog

Material Studio - selective molecule movement

So, working with Material Studio is awesome. You get to handle bigger, complicated and even unimaginable system. But I am facing problems in very minute functioning. I recently faced two problems, but managed to resolve on my own. Somehow, tutorials doesn't help in resolving them and you end up doing some exercise on your own to get the solution. Among these, the problem of bringing two molecular structures in one window and then adjusting one molecule by moving it around, while other structure remains untouched, as it is. Actually, this should not be a problem to do. There is a simple way of doing this. Select the molecule to be moved and then there is a symbol (button) to select, which allows you to selectively move that molecule only. This is the same way it can be done in Material studio too.  But among all the dozens of symbols, the new person handling MS, kind of gets lost. So, what he does is check the tutorials, for any help. But the tutorials don't talk about suc...

Using Packmol

Packmol is a software that allows you to generate a single combined PDB file for all the molecules you are considering. It is a free software and can be downloaded from this link: http://www.ime.unicamp.br/~martinez/packmol/ The installation guide is also provided on the page and its really easy to follow. http://www.ime.unicamp.br/~martinez/packmol/ You can also find some examples but I tried on my own. Anyway what you need is an input file which looks like: ------------------ tolerance 2.0 output trial.pdb add_amber_ter filetype pdb structure 2a.pdb   number 1   inside cube 0. 0. 0. 10. end structure structure 2d.pdb   number 1   inside cube 0. 0. 0. 10. end structure --------------------------------- IT includes some information like: how close the molecules considered can be.(tolerance) name of output pdb file "add_amber_ter" adds term "TER" after every molecule thus defining the start and end of every molecule. After mentioning the...

How would COVID bahave in August - few projections

Entering August with COVID by side   Entering in the month of August, COVID is still here by our side. Situation seems grim, worse than earlier, as number of active cases as well as the count of deceased patients are increasing day by day. Yesterday we crossed the mark of 50,000 cases in a day. Closely competing with Brazil with US counts also in range now. On the other side, few other numbers like reduced mortality rate to 2.18%, recovery rate of 64.6% and slightly increased doubling rate of 21 days can reduce the anxiety. My projections of 16.75 lakhs for India might be crossed by coupe of thousands of more cases after today’s count is added. This number would reach to a huge count of 28.5 lakhs by August 15. Maharashtra just doesn’t like competition. Just like what Delhi tried few days back, Andhra Pradesh also managed to cross Maharashtra’s per day count for2 consecutive days. Seems like not a good idea. Maharashtra immediately went to the next zone. The state which w...