RepeatMasker数据库更新(Dfam3.6数据库与RepBase的合并)解决 famdb.py:TypeError: ‘NoneType’ object is not iterable报错问题
nym 2022-09-22
数据库更新:
1.Dfam数据库的下载(https://www.dfam.org/home)
DOWNLOAD➡families➡Dfam-p1.h5.gz)(下载链接:https://www.dfam.org/releases/Dfam_3.6/families/Dfam-p1.h5.gz)
2.Dfam数据库。解压缩,改名,替换~/RepeatMasker/Libraries中的Dfam.h5
gunzip Dfam-p1.h5.gz
3.Repbase数据库。解压缩并将两个文件拷贝至~/RepeatMasker/Libraries文件夹中(Repbase数据库收费,现在网络上可以找到一些旧版本,RepBaseRepeatMaskerEdition-20181026.tar)
tar -xvf RepBaseRepeatMaskerEdition-20181026.tar
4.编译
cd ~/biosoft/RepeatMasker
perl ./configure
报错 famdb.py:TypeError: ‘NoneType’ object is not iterable
File "/home/nieyimeng/biosoft/RepeatMasker/famdb.py", line 1841, in
main()
File "/home/nieyimeng/biosoft/RepeatMasker/famdb.py", line 1834, in main
args.func(args)
File "/home/nieyimeng/biosoft/RepeatMasker/famdb.py", line 1623, in command_families
print_families(args, families, True, target_id)
File "/home/nieyimeng/biosoft/RepeatMasker/famdb.py", line 1565, in print_families
buffer=buffer_spec
File "/home/nieyimeng/biosoft/RepeatMasker/famdb.py", line 398, in to_fasta
for clade_id in self.clades:
TypeError: 'NoneType' object is not iterable
原因:
因为NCBI分类法的更新将一些学名转换为了同义词。而RM没有在*h5导出中存储同义词,导致在合并特定的RepBase条目时出现问题,这一报错常出现在Dfam3.6与RepBsae20181026合并过程中。
4. 解决Dfam3.6与Repbase20181026版本冲突,编译RepeatMasker合并数据库过程中 famdb.py:TypeError: ‘NoneType’ object is not iterable报错问题。(参见:https://github.com/rmhubley/RepeatMasker/issues/141)
4.1 下载修改过的 RMRBMeta.embl 文件(RepeatMasker: https://github.com/rmhubley/RepeatMasker/blob/development/Libraries/RMRBMeta.embl.)
4.2 替换RepeatMasker软件文件夹中 “Libraries/RMRBMeta.embl” RMRBMeta.embl文件。
4.3 删除RepeatMasker文件“Libraries/RMRB.embl”、“Libraries/RepeatMaskerLib.h5”、“Libraries/RepeatMasker.lib*” ,这些在重新编译过程中将自动重新生成。
4.4 重新编译
perl ./configure