ksamuk / pixy

Software for painlessly estimating average nucleotide diversity within and between populations
https://pixy.readthedocs.io/
MIT License
117 stars 14 forks source link

No such file #12

Closed konopinski closed 3 years ago

konopinski commented 3 years ago

Hi, I've tried to run a quick analysis on my vcf, but I get a following error: Traceback (most recent call last): File "/home/qnick/anaconda3/bin/pixy", line 11, in <module> sys.exit(main()) File "/home/qnick/anaconda3/lib/python3.8/site-packages/pixy/__main__.py", line 220, in main os.mkdir(re.sub(r"[^\/]+$", "", args.outfile_prefix)) FileNotFoundError: [Errno 2] No such file or directory: ''

My command is as follows: pixy --vcf subSample_SNP_VarFiltr.annotated.locFlt.recode.vcf --populations SubSampl.SG.txt --outfile_prefix test --stats pi --zarr_path zarr --bypass_filtration yes --bypass_invariant_chec yes I just wanted to test whether it works. I still need to create another VCF with invariant sites for this run. I work on Ubuntu 20.04.1 LTS, 64-bit on Vbox, and python 3.8

ksamuk commented 3 years ago

Hi there! That error message is saying that the outfile prefix directory does not exist (this check message is more explicit in the upcoming version). Try creating a 'test' and 'zarr' directory in the folder where you are running pixy, and then rerunning the command.

konopinski commented 3 years ago

Thanks for your prompt answer! The problem is probably somewhere else. I did create these two folders in the same directory. I have also tested running it in a different folder (the previous attempt was done in a folder shared with Windows which may be problematic sometimes) and still didn't work. By the way, did you think of programming it in R? I could help if you would like me to ;)

ksamuk commented 3 years ago

Right, yes, seeing the issue now. The outfile_prefix parameter is expecting a prefix, not just a folder. The final output files are named like [outfolder]/[prefix]_pi.txt. So in your case, you'll need to have it set as '--output_prefix test/test_output' or something to that effect. 'test/' (with the slash) will also work, but all your files will be named [outfolder]/_pi.txt (i.e. no trailing prefix). We'll look into changing this behavior for the next version. Perhaps setting those as different arguments will be clearer!

Re: your other question, we'd like to open up community code contributions (with instructions) after the next version, which contains major performance updates. Pixy is written in python, however!