liguowang / CrossMap

CrossMap is a python program to lift over genome coordinates from one genome version to another.
https://crossmap.readthedocs.io/en/latest/
Other
73 stars 24 forks source link

vcf failed in python 3.10 #46

Closed aitgon closed 2 years ago

aitgon commented 2 years ago

This command

CrossMap.py vcf out/download/ftp.ensembl.org/pub/assembly_mapping/homo_sapiens/GRCh37_to_GRCh38.chain.gz in.vcf.gz out/download/ftp.ensembl.org/pub/release-95/fasta/homo_sapiens/dna/Homo_sapiens.GRCh38.dna_sm.primary_assembly.fa t.vcf

failed in an environment with python 3.10

but worked using python 3.9 and 3.8

liguowang commented 2 years ago

Hi Could you please provide more information? what errors did you see? Thanks

Liguo

aitgon commented 2 years ago

Hi, the full error in a conda environment with python 3.10:

(py310) $ CrossMap.py vcf --compress out/download/ftp.ensembl.org/pub/assembly_mapping/homo_sapiens/GRCh37_to_GRCh38.chain.gz out/download/gwas.mrcieu.ac.uk/files/ieu-a-1006/ieu-a-1006.vcf.gz out/download/ftp.ensembl.org/pub/release-95/fasta/homo_sapiens/dna/Homo_sapiens.GRCh38.dna_sm.primary_assembly.fa t.vcf 2022-03-01 06:27:29 [INFO] Read the chain file "out/download/ftp.ensembl.org/pub/assembly_mapping/homo_sapiens/GRCh37_to_GRCh38.chain.gz" Traceback (most recent call last): File "/home/user/Software/miniconda/envs/py310/bin/CrossMap.py", line 318, in (mapTree, targetChromSizes, sourceChromSizes) = read_chain_file(chain_file) File "/home/user/Software/miniconda/envs/py310/lib/python3.10/site-packages/cmmodule/utils.py", line 287, in read_chain_file for line in ireader.reader(chain_file): File "/home/user/Software/miniconda/envs/py310/lib/python3.10/site-packages/cmmodule/ireader.py", line 27, in reader for l in nopen(fname): ValueError: readline of closed file

In another environment with python 3.9, the commands works.

Thanks

liguowang commented 2 years ago

This is a bug in Python 3.10 (https://bugs.python.org/issue45475) when reading a gzipped file. If you are using Python 3.10, please uncompress chain file before running CrossMap.