我需要知道每个物种ls
目录的内容:ftp://ftp.ncbi.nlm.nih.gov/genomes/genbank/bacteria/
换句话说,我需要bacteria/*/latest_assembly_versions/GCA*
匹配此模式的每个文件:def get_latest_assembly_versions(genbank_mirror, species):
latest_dir = os.path.join(species, "latest_assembly_versions")
latest_assembly_versions = os.path.join(info_dir, "latest_assembly_versions.csv")
try:
complete_ids = [complete_id.split("/")[-1] for complete_id in ftp.nlst(latest_dir)]
print(species, len(complete_ids))
short_ids = ["_".join(accession_id.split("_")[:2]) for accession_id in complete_ids]
complete_and_short = zip(complete_ids, short_ids)
with open(latest_assembly_versions, "a") as f:
for item in complete_and_short:
complete_id = item[0]
short_id = item[1]
f.write("{},{},{}\n".format(species, short_id, complete_id))
except error_temp:
continue
并将结果写入文件。
我将使用此信息组织文件,一旦我全部下载,就可以复制他们在相应文件夹中组织文件的方式。
可能使这一点变得棘手的事情是latest_assembly_versions目录中的文件是符号链接。
目前,我正在为每个物种运行此项目,但效率非常低,需要几个小时才能完成:
virtualenv -p /usr/bin/python venv
建议非常感谢。谢谢!