Annotate command drops AttributeError: 'SimpleLocation' object has no attribute 'nofuzzy_start' error
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
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
Just downgrade biopython <1.80.
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?