This is my first post so please be kind if my terminology is incorrect!
I've been trying to run a python script that uses the BioPython module Phylo.Paml to try and automate codeml on a number of alignments.
Here is my script (in progress)
#!usr/bin/python import sys from Bio.Phylo.PAML import codeml #USAGE python Practice.py aln tree ctrl output print(sys.argv) cml = codeml.Codeml(alignment = sys.argv, tree = sys.argv, out_file = sys.argv, working_dir = ".") cml.run() ctl_file = sys.argv verbose = TRUE
Wrote as per direction from the BioPython.Phylo.PAML page (https://biopython.org/wiki/PAML)
This code works when I use it singly but not as I want it to. The console freezes as if the script is running indefinitely and does not stop until I cancel it. When I do I get this error message
Traceback (most recent call last): File "Practice2.py", line 14, in <module> cml.run() File "/home/mee/miniconda3/lib/python3.6/site-packages/Bio/Phylo/PAML/codeml.py", line 182, in run Paml.run(self, ctl_file, verbose, command) File "/home/mee/miniconda3/lib/python3.6/site-packages/Bio/Phylo/PAML/_paml.py", line 121, in run result_code = subprocess.call([command, ctl_file], stdout=dn, stderr=dn) File "/home/mee/miniconda3/lib/python3.6/subprocess.py", line 269, in call return p.wait(timeout=timeout) File "/home/mee/miniconda3/lib/python3.6/subprocess.py", line 1457, in wait (pid, sts) = self._try_wait(0) File "/home/mee/miniconda3/lib/python3.6/subprocess.py", line 1404, in _try_wait (pid, sts) = os.waitpid(self.pid, wait_flags) KeyboardInterrupt
But when I check my working directory all the output files of the run are waiting there. Similarly, if I cancel the command quickly enough and initiate codeml I am taken to a working screen where codeml is actively running through the files I have input into the script.