Changes

From CCP4 wiki
Jump to navigationJump to search
m
added Python version
Line 39: Line 39:  
   if($line =~ /^ATOM/ || $line =~ /^HETATM/) {print OUT "$line"}
 
   if($line =~ /^ATOM/ || $line =~ /^HETATM/) {print OUT "$line"}
 
   }
 
   }
 +
 +
== Python script ==
 +
 +
 +
For this kludgy version using Python 2.x, you need to paste the entire PDB file into the script where it says "PASTE YOUR PDB FILE TEXT HERE".</br>
 +
You can fork [https://github.com/fomightez/structurework/blob/master/python_scripts/super_basic_multiple_model_PDB_file_splitter.py the code here at Github].</br> (Eventually, I hope to have a more full-featured version there that you can just point at your file using an argument at the command line, and after that a web-hosted service to do it for you right on a web page.) 
 +
 +
  PDB_text = """
 +
  PASTE YOUR PDB FILE TEXT HERE
 +
  """
 +
 
 +
  model_number = 1
 +
  new_file_text = ""
 +
  for line in filter(None, PDB_text.splitlines()):
 +
      line = line.strip () #for better control of ends of lines
 +
      if line == "ENDMDL":
 +
          # save file with file number in name
 +
          output_file = open("model_" + str(model_number) + ".pdb", "w")
 +
          output_file.write(new_file_text.rstrip('\r\n')) #rstrip to remove trailing newline
 +
          output_file.close()
 +
          # reset everything for next model
 +
          model_number += 1
 +
          new_file_text = ''
 +
      elif not line.startswith("MODEL"):
 +
          new_file_text += line + '\n'
       
Back to [[Useful scripts (aka smart piece of code)]]
 
Back to [[Useful scripts (aka smart piece of code)]]
6

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Navigation menu