ablab / IsoQuant

Transcript discovery and quantification with long RNA reads (Nanopores and PacBio)
https://ablab.github.io/IsoQuant/
Other
144 stars 13 forks source link

issuesTraceback (most recent call last): File "/lustre/home/jianghao/mambaforge/envs/isoquant/bin/isoquant.py", line 808, in <module> main(sys.argv[1:]) #221

Open JhinJhinJhin opened 1 month ago

JhinJhinJhin commented 1 month ago

i check all of requirements.txt, so what's wrong? isoquant.py --test commond line: ~/mambaforge/envs/isoquant/bin/isoquant.py --test === Running in test mode === Any other option is ignored 2024-08-02 21:01:57,137 - INFO - Running IsoQuant version 3.4.2 2024-08-02 21:01:57,265 - INFO - Novel unspliced transcripts will not be reported, set --report_novel_unspliced true to discover them 2024-08-02 21:01:57,265 - INFO - === IsoQuant pipeline started === 2024-08-02 21:01:57,265 - INFO - gffutils version: 0.13 2024-08-02 21:01:57,265 - INFO - pysam version: 0.22.1 2024-08-02 21:01:57,266 - INFO - pyfaidx version: 0.8.1.1 2024-08-02 21:01:57,286 - INFO - Checking input gene annotation 2024-08-02 21:01:57,305 - INFO - Gene annotation seems to be correct 2024-08-02 21:01:57,305 - INFO - Converting gene annotation file to .db format (takes a while)... 2024-08-02 21:01:57,331 - CRITICAL - IsoQuant failed with the following error, please, submit this issue to https://github.com/ablab/IsoQuant/issuesTraceback (most recent call last): File "/lustre/home/jianghao/mambaforge/envs/isoquant/bin/isoquant.py", line 808, in main(sys.argv[1:]) File "/lustre/home/jianghao/mambaforge/envs/isoquant/bin/isoquant.py", line 797, in main args, parser = parse_args(args) File "/lustre/home/jianghao/mambaforge/envs/isoquant/bin/isoquant.py", line 254, in parse_args args = parser.parse_args(cmd_args, namespace) File "/lustre/home/jianghao/mambaforge/envs/isoquant/lib/python3.8/argparse.py", line 1768, in parse_args args, argv = self.parse_known_args(args, namespace) File "/lustre/home/jianghao/mambaforge/envs/isoquant/lib/python3.8/argparse.py", line 1800, in parse_known_args namespace, args = self._parse_known_args(args, namespace) File "/lustre/home/jianghao/mambaforge/envs/isoquant/lib/python3.8/argparse.py", line 2006, in _parse_known_args start_index = consume_optional(start_index) File "/lustre/home/jianghao/mambaforge/envs/isoquant/lib/python3.8/argparse.py", line 1946, in consume_optional take_action(action, args, option_string) File "/lustre/home/jianghao/mambaforge/envs/isoquant/lib/python3.8/argparse.py", line 1874, in take_action action(self, namespace, argument_values, option_string) File "/lustre/home/jianghao/mambaforge/envs/isoquant/bin/isoquant.py", line 779, in call main(options) File "/lustre/home/jianghao/mambaforge/envs/isoquant/bin/isoquant.py", line 802, in main run_pipeline(args) File "/lustre/home/jianghao/mambaforge/envs/isoquant/bin/isoquant.py", line 741, in run_pipeline args.genedb = convert_gtf_to_db(args) File "/lustre/home/jianghao/mambaforge/envs/isoquant/share/isoquant-3.4.2-0/src/gtf2db.py", line 145, in convert_gtf_to_db gtf_filename, genedb_filename = convert_db(gtf_filename, genedb_filename, gtf2db, args) File "/lustre/home/jianghao/mambaforge/envs/isoquant/share/isoquant-3.4.2-0/src/gtf2db.py", line 303, in convert_db convert_fn(gtf_filename, genedb_filename, args.complete_genedb, args.gtf_check) File "/lustre/home/jianghao/mambaforge/envs/isoquant/share/isoquant-3.4.2-0/src/gtf2db.py", line 130, in gtf2db gffutils.create_db(gtf, db, force=True, keep_order=True, merge_strategy='error', File "/lustre/home/jianghao/mambaforge/envs/isoquant/lib/python3.8/site-packages/gffutils/create.py", line 1401, in create_db c.create() File "/lustre/home/jianghao/mambaforge/envs/isoquant/lib/python3.8/site-packages/gffutils/create.py", line 542, in create self._init_tables() File "/lustre/home/jianghao/mambaforge/envs/isoquant/lib/python3.8/site-packages/gffutils/create.py", line 466, in _init_tables self.set_pragmas(self.pragmas) File "/lustre/home/jianghao/mambaforge/envs/isoquant/lib/python3.8/site-packages/gffutils/create.py", line 457, in set_pragmas c.executescript(";\n".join(["PRAGMA %s=%s" % i for i in self.pragmas.items()])) sqlite3.OperationalError: disk I/O error

andrewprzh commented 1 month ago

This looks like a disk I/O problem. Is there a chance your run IsoQuant on some network disk, e.g. NFS share?

Best Andrey

JhinJhinJhin commented 1 month ago

This looks like a disk I/O problem. Is there a chance your run IsoQuant on some network disk, e.g. NFS share?

Best Andrey

thank you! i don't know why, Maybe it was caused by lustre? Best wish for you. Jhin

andrewprzh commented 1 month ago

I guess it can. IsoQuant uses gffutils, which creates and SQL database from the gene annotation on disk. Unfortunately, it is not possible to create a database connection on network disks.

Thus, I suggest to run test in some other location, i.e. local storage. If you need to run IsoQuant using lustre, you may use --genedb_output <local folder> option. This will create a database in a local folder, but the rest of the output will be in main output folder.

Best Andrey

JhinJhinJhin commented 1 month ago

I guess it can. IsoQuant uses gffutils, which creates and SQL database from the gene annotation on disk. Unfortunately, it is not possible to create a database connection on network disks.

Thus, I suggest to run test in some other location, i.e. local storage. If you need to run IsoQuant using lustre, you may use --genedb_output <local folder> option. This will create a database in a local folder, but the rest of the output will be in main output folder.

Best Andrey

I understand, it can be used after I specify the dir in the /tmp directory. Thank you very much!!!

JhinJhinJhin commented 1 month ago

I guess it can. IsoQuant uses gffutils, which creates and SQL database from the gene annotation on disk. Unfortunately, it is not possible to create a database connection on network disks.

Thus, I suggest to run test in some other location, i.e. local storage. If you need to run IsoQuant using lustre, you may use --genedb_output <local folder> option. This will create a database in a local folder, but the rest of the output will be in main output folder.

Best Andrey

I'm getting this error again and using --genedb_output <local folder>option doesn't help. Can I provide the .db file input converted with gfftuils? How to do that? I only saw the sentence You can also provide gffutils database manually , but I don’t know how to do it.

andrewprzh commented 1 month ago

@JhinJhinJhin

You can provide the database using the same --genedb option.

Best Andrey

andrewprzh commented 1 month ago

Also, IsoQuant contains a script for GTF <-> database conversion: src/gtf2db.py