rpy2によるRの実行
下記コードを実行せよと書かれている
!rm sequence.index 2>/dev/null
!wget -nd ftp://ftp.1000genomes.ebi.ac.uk/vol1/ftp/historical_data/former_toplevel/sequence.index -O sequence.index
winでwgetが使えないので、しょうがなく普通にDL
普通に長いので経過を表示するプログラムも借りて作成
DL.py
import urllib.request
from colorama import init, Fore, Back, Style
# 進捗を表示させるためのコールバック関数
# イメージ:[=====> ] 50.54% ( 1050KB )
def progress_print(block_count, block_size, total_size):
percentage = 100.0 * block_count * block_size / total_size
# 100より大きいと見た目が悪いので……
if percentage > 100:
percentage = 100
# バーはmax_bar個で100%とする
max_bar = 50
bar_num = int(percentage / (100 / max_bar))
progress_element = '=' * bar_num
if bar_num != max_bar:
progress_element += '>'
bar_fill = ' ' # これで空のとこを埋める
bar = progress_element.ljust(max_bar, bar_fill)
total_size_kb = total_size / 1024
print(
Fore.LIGHTCYAN_EX,
f'[{bar}] {percentage:.2f}% ( {total_size_kb:.0f}KB )\r',
end=''
)
def download(url, filepath_and_filename):
init()
print(Fore.LIGHTGREEN_EX, 'download from:', end="")
print(Fore.WHITE, url)
# コールバックでprogress_printを呼んで進捗表示
urllib.request.urlretrieve(url, filepath_and_filename, progress_print)
print('') # 改行
print(Style.RESET_ALL, end="")
url = 'ftp://ftp.1000genomes.ebi.ac.uk/vol1/ftp/historical_data/former_toplevel/sequence.index'
download(url, './sequence.index')
なんか矢印が動いているのを見ると楽しい。