nextgenusfs / funannotate

Eukaryotic Genome Annotation Pipeline
http://funannotate.readthedocs.io
BSD 2-Clause "Simplified" License
300 stars 82 forks source link

Annotate command drops AttributeError: 'SimpleLocation' object has no attribute 'nofuzzy_start' error #1032

Open UmerFarooq17 opened 2 months ago

UmerFarooq17 commented 2 months ago

Are you using the latest release? yes. version 1.8.17

Describe the bug When tunning funannotate annotate command with required options, it drops in errors within the python library.py file. AttributeError: 'SimpleLocation' object has no attribute 'nofuzzy_start'

What command did you issue? funannotate annotate --input ./ --fasta 47514_clean_sort.fna --species 'Fusarium oxysporum' --strain 47514 --isolate 47514 --cpus 16 2>&1 | tee -a 07.annotate.log

Logfiles

[Apr 22 09:30 AM]: OS: Ubuntu 22.04, 32 cores, ~ 264 GB RAM. Python: 3.8.15
[Apr 22 09:30 AM]: Running 1.8.17
[Apr 22 09:30 AM]: No NCBI SBT file given, will use default, however if you plan to submit to NCBI, create one and pass it here '--sbt'
[Apr 22 09:30 AM]: Parsing input files
[Apr 22 09:30 AM]: Existing tbl found: ./update_results/Fusarium_oxysporum_47514.tbl
-------------------------------------------------------
Traceback (most recent call last):
  File "/scratch/miniconda_envs/funannotate/bin/funannotate", line 8, in <module>
    sys.exit(main())
  File "/scratch/miniconda_envs/funannotate/lib/python3.8/site-packages/funannotate/funannotate.py", line 717, in main
    mod.main(arguments)
  File "/scratch/miniconda_envs/funannotate/lib/python3.8/site-packages/funannotate/annotate.py", line 816, in main
    GeneCounts = lib.gb2nucleotides(
  File "/scratch/miniconda_envs/funannotate/lib/python3.8/site-packages/funannotate/library.py", line 3978, in gb2nucleotides
    gb_feature_add2dict(f, record, genes)
  File "/scratch/miniconda_envs/funannotate/lib/python3.8/site-packages/funannotate/library.py", line 4144, in gb_feature_add2dict
    start = f.location.nofuzzy_start + 1
AttributeError: 'SimpleLocation' object has no attribute 'nofuzzy_start'

OS/Install Information

Checking dependencies for 1.8.17
-------------------------------------------------------
You are running Python v 3.8.15. Now checking python packages...
biopython: 1.83
goatools: 1.2.3
matplotlib: 3.4.3
natsort: 8.4.0
numpy: 1.24.4
pandas: 1.5.3
psutil: 5.9.8
requests: 2.31.0
scikit-learn: 1.3.2
scipy: 1.10.1
seaborn: 0.13.2
All 11 python packages installed

You are running Perl v b'5.032001'. Now checking perl modules...
Carp: 1.38
Clone: 0.46
DBD::SQLite: 1.72
DBD::mysql: 4.046
DBI: 1.643
DB_File: 1.858
Data::Dumper: 2.183
File::Basename: 2.85
File::Which: 1.24
Getopt::Long: 2.54
Hash::Merge: 0.302
JSON: 4.10
LWP::UserAgent: 6.67
Logger::Simple: 2.0
POSIX: 1.94
Parallel::ForkManager: 2.02
Pod::Usage: 1.69
Scalar::Util::Numeric: 0.40
Storable: 3.15
Text::Soundex: 3.05
Thread::Queue: 3.14
Tie::File: 1.06
URI::Escape: 5.12
YAML: 1.30
local::lib: 2.000029
threads: 2.25
threads::shared: 1.61
All 27 Perl modules installed

Checking Environmental Variables...
$FUNANNOTATE_DB=/scratch/miniconda_envs/funannotate/database/
$PASAHOME=/scratch/miniconda_envs/funannotate/opt/pasa-2.5.3
$TRINITY_HOME=/scratch/miniconda_envs/funannotate/opt/trinity-2.8.5
$EVM_HOME=/scratch/miniconda_envs/funannotate/opt/evidencemodeler-1.1.1
$AUGUSTUS_CONFIG_PATH=/scratch/miniconda_envs/funannotate/config/
$GENEMARK_PATH=/home/ufarooq/tools/gmes_linux_64_4/
All 6 environmental variables are set
-------------------------------------------------------
Checking external dependencies...
PASA: 2.5.3
CodingQuarry: 2.0
Trinity: 2.8.5
augustus: 3.5.0
bamtools: bamtools 2.5.1
bedtools: bedtools v2.31.1
blat: BLAT v37x1
diamond: 2.1.9
emapper.py: 2.1.12
ete3: 3.1.3
exonerate: exonerate 2.4.0
fasta: 36.3.8g
glimmerhmm: 3.0.4
gmap: 2024-03-15
hisat2: 2.2.1
hmmscan: HMMER 3.4 (Aug 2023)
hmmsearch: HMMER 3.4 (Aug 2023)
java: 11.0.1
kallisto: 0.46.1
mafft: v7.525 (2024/Mar/13)
makeblastdb: makeblastdb 2.15.0+
minimap2: 2.28-r1209
pigz: 2.8
proteinortho: 6.3.1
pslCDnaFilter: no way to determine
salmon: salmon 0.14.1
samtools: samtools 1.18
signalp: 5.0b
snap: 2006-07-28
stringtie: 2.2.1
tRNAscan-SE: 2.0.12 (Nov 2022)
tantan: tantan 49
tbl2asn: 25.8
tblastn: tblastn 2.15.0+
trimal: trimAl v1.4.rev15 build[2013-12-17]
trimmomatic: 0.39
        ERROR: gmes_petap.pl not installed
vinsondoyle commented 1 month ago

This is caused by a change in Biopython I believe:

"propertynofuzzy_start Start position (integer, approximated if fuzzy, read only) (OBSOLETE).

This is now an alias for int(feature.start), which should be used in preference – unless you are trying to support old versions of Biopython.

propertynofuzzy_end End position (integer, approximated if fuzzy, read only) (OBSOLETE).

This is now an alias for int(feature.end), which should be used in preference – unless you are trying to support old versions of Biopython."

This problem seems to be fixed by a simple find and replace of nofuzzy_start and nofuzzy_end

Ex: sed -i.bak "s/nofuzzy_start/start/g" /home/vinson/miniconda3/envs/funannotate/lib/python3.8/site-packages/funannotate/library.py

sed -i.bak "s/nofuzzy_end/end/g" /home/vinson/miniconda3/envs/funannotate/lib/python3.8/site-packages/funannotate/library.py

nextgenusfs commented 1 month ago

Just downgrade biopython <1.80.

ydanylko commented 1 month ago

Just downgrade biopython <1.80.

Is remote phobius stopping at about 90% of the way also a known issue caused by this incompatibility with biopython < 1.80?