abacus-gene / paml

PAML is a program package for model fitting and phylogenetic tree reconstruction using DNA and protein sequence data. Please report only **technical issues** on this repository (e.g., compiling, programs abort or do not run at all, etc.). Problems with input data and general questions should be posted at https://groups.google.com/g/pamlsoftware?pli
GNU General Public License v3.0
103 stars 19 forks source link

Errors when running codeml 4.10.7 for mac M1 #35

Open sungya opened 1 year ago

sungya commented 1 year ago

Hello,

Recently, I started running codeml using M7 and M8 to detect positive selection from the latest release PAML 4.10.7 for mac M1. Model 7 was running with no problems, but M8 kept giving me the same error:

# seqs in tree file does not match.  Read as the nexus format.
Error: tree err1: EOF.

However, when I run codeml using the same control file, tree file, and sequence alignment file using 4.10.7 for linux, it ran smoothly without errors. I wonder if there is any issue specific for the mac M1 release. Could you please check? Thanks so much!

Best, Sung-Ya

sabifo4 commented 7 months ago

Hi Sung-Ya,

We have updated the developmental branch and tested that, once Mac M1/M2 users compile it, there are no crashes.

Could you please download the source code from the dev branch and try to run codeml binaries you will compile? First, press the green button <> Code you will see when you access the URL above, click "Download Zip", and then the download shall start (i.e., once you do that, you will download a file called paml-dev.zip). Now, decompress the zip file and go to directory src. Once there, run make -f Makefile (installation instructions are also given on our PAML Wiki). All the binaries for the PAML programs will be generated. Please try to now use the codeml executable file you will get with your dataset to run CODEML with your dataset.

If you are still experiencing issues, please check the format of your input files as this is what the error you shared in your previous message points to. Remember that the names that you give for your sequences need to be the same in both the alignment and the tree files. For instance, if your alignment file has 4 sequences named seq1, seq2, seq3, and seq4, your tree file will also need to have these names. Remember that both alignment and tree files need to be in PHYLIP format and the tree topology is expected to be given in Newick format. If you wrote the wrong PHYLIP header (e.g., you said that there are 6 sequences but you only have 4, as in 4 <num_base_pairs), that will also stop the program. You have more information about the format the input files need to have in the PAML Wiki.

Hope this helps!