Package: ncbi-api
安装pip install ncbi_api或者pip install ncbi_api -ihttps://pypi.python.org/simple使用Geo数据下载Accession列表examplefromncbi_api.geoimportAccessionDownloaderdownloader=AccessionDownloader()downloader.start(page_nums=299,display=500)series_matrixexample1：传入accession列表fromncbi_api.geoimportGeoDownloader,GeoDataTypeaccessions=['GSE113138','GSE171935','GSE164612','GSE166066']geo=GeoDownloader(accession_list=accessions)geo.run(data_type=GeoDataType.SeriesMatrix,workers=4)运行-*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-
正在读取 Accession 列表
	--> 共有 Accession 数量：4
-*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-
成功读取并完成过滤 -> takes 0.104 seconds
https://ftp.ncbi.nlm.nih.gov/geo/series/GSE166nnn/GSE166066/matrix/
https://ftp.ncbi.nlm.nih.gov/geo/series/GSE171nnn/GSE171935/matrix/
https://ftp.ncbi.nlm.nih.gov/geo/series/GSE113nnn/GSE113138/matrix/
https://ftp.ncbi.nlm.nih.gov/geo/series/GSE164nnn/GSE164612/matrix/
GSE113138 200
GSE164612 200
GSE171935 200
GSE166066 200
-*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-
正在读取 Accession 列表
	--> 共有 Accession 数量：4, 成功下载：4, 下载失败(404)：0,  还剩：0
-*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-
成功读取并完成过滤 -> takes 0.046 seconds
-*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-
正在读取 url 列表
	--> 共有 url 数量：4
-*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-
成功读取并完成过滤 -> takes 0.004 seconds
正在下载 -> GSE113138_series_matrix.txt.gz -> 3.18 KB: 4KB [00:00, 1999.91KB/s]                   
正在下载 -> GSE166066_series_matrix.txt.gz -> 3.01 KB: 4KB [00:00, 1333.64KB/s]                   
正在下载 -> GSE164612_series_matrix.txt.gz -> 2.21 MB:  21%|█    | 465/2258 [00:31<02:02, 14.60KB/s]example2：传入series_matrix_url列表fromncbi_api.geoimportGeoDownloader,GeoDataTypeseries_matrix_urls={'https://ftp.ncbi.nlm.nih.gov/geo/series/GSE93nnn/GSE93247/matrix/GSE93247_series_matrix.txt.gz','https://ftp.ncbi.nlm.nih.gov/geo/series/GSE64nnn/GSE64216/matrix/GSE64216_series_matrix.txt.gz','https://ftp.ncbi.nlm.nih.gov/geo/series/GSE53nnn/GSE53596/matrix/GSE53596-GPL13534_series_matrix.txt.gz'}geo=GeoDownloader()geo.run(data_type=GeoDataType.SeriesMatrix,series_matrix_urls=series_matrix_urls)example3: 传入series_matrix_url文件路径history/series_matrix_urls.txthttps://ftp.ncbi.nlm.nih.gov/geo/series/GSE41nnn/GSE41032/matrix/GSE41032_series_matrix.txt.gz
https://ftp.ncbi.nlm.nih.gov/geo/series/GSE65nnn/GSE65908/matrix/GSE65908_series_matrix.txt.gz
https://ftp.ncbi.nlm.nih.gov/geo/series/GSE1nnn/GSE1183/matrix/GSE1183_series_matrix.txt.gz
https://ftp.ncbi.nlm.nih.gov/geo/series/GSE130nnn/GSE130755/matrix/GSE130755_series_matrix.txt.gz
https://ftp.ncbi.nlm.nih.gov/geo/series/GSE31nnn/GSE31020/matrix/GSE31020_series_matrix.txt.gz
https://ftp.ncbi.nlm.nih.gov/geo/series/GSE23nnn/GSE23218/matrix/GSE23218_series_matrix.txt.gz
https://ftp.ncbi.nlm.nih.gov/geo/series/GSE34nnn/GSE34117/matrix/GSE34117_series_matrix.txt.gz
...示例代码fromncbi_api.geoimportGeoDownloader,GeoDataTypegeo=GeoDownloader()geo.run(data_type=GeoDataType.SeriesMatrix,workers=4,series_matrix_url_filepath='history/series_matrix_urls.txt')运行-*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-
正在读取 url 列表
	--> 共有 url 数量：4, 成功下载：3, 下载失败(404)：0,  还剩：1
-*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*-
成功读取并完成过滤 -> takes 0.002 seconds

正在下载 -> GSE171935_series_matrix.txt.gz -> 1.86 KB: 2KB [00:00, 666.93KB/s]                     
正在下载 -> GSE113138_series_matrix.txt.gz -> 3.18 KB: 4KB [00:00, 1335.45KB/s]                   
正在下载 -> GSE166066_series_matrix.txt.gz -> 3.02 KB: 4KB [00:00, 14.50KB/s]                     
正在下载 -> GSE164612_series_matrix.txt.gz -> 2.21 MB:  49%|█▉  | 1105/2258 [00:46<00:28, 41.07KB/s]Geo数据解压缩example1fromzyf.fileimportscan_directory_contentsfromncbi_api.compressimportGzipfile_list=scan_directory_contents('download')gzip=Gzip()gzip.batch_file_unzip(file_list,unzip_dir='unzip')example2fromncbi_api.geoimportGeoDownloader,GeoDataTypefromzyf.fileimportscan_directory_contentsimportosimportrefromncbi_api.compressimportGzipdefstart_unzip():file_list=set(scan_directory_contents('download'))unzip_dir='unzip'history_dir='history'success_filepath,error_filepath=f'{history_dir}/unzip_success.txt',f'{history_dir}/unzip_error.txt'whileTrue:gzip=Gzip(history_dir=history_dir,success_filepath=success_filepath,error_filepath=error_filepath)gzip.batch_file_unzip(file_list,unzip_dir=unzip_dir)ifos.path.exists(error_filepath):series_matrix_urls=set()withopen(error_filepath,mode='r')asf:forlineinf:accession=re.search(r'download\\(.*?)_series_matrix.txt.gz',line).group(1)url=f'https://ftp.ncbi.nlm.nih.gov/geo/series/{accession.split("-")[0][:-3]}nnn/{accession.split("-")[0]}/matrix/{accession}_series_matrix.txt.gz'series_matrix_urls.add(url)ifseries_matrix_urls:print('正在对解压失败文件进行重新下载')geo=GeoDownloader(success_filepath='history/download_unzipfailed_success.txt',error_filepath='history/download_unzipfailed_error.txt')geo.run(data_type=GeoDataType.SeriesMatrix,series_matrix_urls=series_matrix_urls)else:returnif__name__=='__main__':start_unzip()Geo数据解析examplefromzyf.fileimportscan_directory_contentsfromncbi_api.geoimportGeoParser,GeoDataTypefile_list=scan_directory_contents('unzip')parser=GeoParser(file_list=file_list)parser.run(GeoDataType.SeriesMatrix,workers=8)