GalaxyにFTPでファイルを登録する

# Galaxy ServerにFTP(sftp)を利用してファイルを登録する

webブラウザのインターフェイスを利用して巨大なファイルを登録する事はあんまりおすすめできない事とされている
これにはブラウザ側の制限(設定の変更が必要)とサーバー側の負荷の問題等が有り、巨大ファイルの転送には他のプロトコルの利用が推奨されている

NGSのデータ等はファイルサイズがどうしても数GBというサイズになりがちなので、Galaxyでも大きなファイルを転送する際にはFTPやSFTP(Secure File Transfer Protocol)の利用が推奨されている

ここでは、SFTPを利用してGalaxyにファイルを登録してみよう

## Galaxy Serverの起動
ここでは下記の設定で起動したDocker版のGalaxyを利用する

```bash
$ docker run -d --rm \
    -p 8080:80 -p 8021:21 -p 8022:22 -p 8800:8800 \
    --volumes-from galaxy-store \
    --privileged=true  \
    -e GALAXY_CONFIG_ENABLE_BETA_MULLED_CONTAINERS=True \
    -e GALAXY_CONFIG_REQUIRE_LOGIN=True \
    -e GALAXY_CONFIG_ALLOW_USER_CREATION=False \
    -e ENABLE_TTS_INSTALL=True \
    bgruening/galaxy-stable
```

## ファイルの転送

ここでは、OS X上でsftpコマンドを利用してファイルの転送を行う
(GUIで行いたい場合には、ユーザーフレンドリーなGUIを備えたFTP/SFTPクライアントは色々有るので、好みのものを利用して貰えれば良いと思う)
OS Xのバージョンは下記の通り

```bash
$ SW_VERS
ProductName:	Mac OS X
ProductVersion:	10.14.2
BuildVersion:	18C54
```

カレントディレクトリに在る`2.shuffled.bam`という巨大(と想定した)bamファイルを転送してみよう

`sftp -P 8022 -o User=admin@galaxy.org localhost`を実行すると`admin@galaxy.org`のパスワードの入力が促される
適切なパスワードを入力した後で`put` *転送するファイル名* でファイルを転送する


```bash
$ sftp -P 8022 -o User=admin@galaxy.org localhost 
admin@galaxy.org@localhost's password: 
Connected to localhost.
sftp> put 2.shuffled.bam
Uploading 2.shuffled.bam to /export/ftp/admin@galaxy.org/2.shuffled.bam
2.shuffled.bam                                                                                                         100%   58KB  10.9MB/s   00:00    
sftp> ls
2.shuffled.bam 
sftp> quit
```

sftpのオプションについて

| オプション | 機能 | この環境での値 | 概要 |
|:--|:--|:--|:--|
|-P|接続先ポート|8022|Dockerの指定でポート8022をGalaxy Serverの22版にしている|
|-o|認証に関わる設定|`User=admin@galaxy.org`|galaxyに登録しているユーザーのID|

## 転送したファイルの確認
無事転送できたので、ブラウザーでGalaxyに接続してみるが
![Screen Shot 2018-12-26 at 11.07.30.png](https://qiita-image-store.s3.amazonaws.com/0/213053/d5e48d50-1477-d38a-c072-c5148caa4946.png)
Historyには何も反映されていない
ちょっと戸惑ってしまうかもしれないが、FTPされたファイルをHistory上で利用できるようにするためには、`Get Data`でファイルを取得するという手順が必要になる

# ftpしたファイルの取得
それではftpしたファイルを利用できるようにしてみよう
まずは”Tools”のメニュー部分右のアイコンをクリック
![Screen Shot 2018-12-26 at 11.07.30.png](https://qiita-image-store.s3.amazonaws.com/0/213053/d99f1c12-1fdd-d5c8-c66b-6b8f7b82f433.png)
表示されたパネルの"Choose ftp File"ボタンをクリック
![Screen Shot 2018-12-26 at 11.10.51.png](https://qiita-image-store.s3.amazonaws.com/0/213053/37667af9-88d4-67b0-be28-ea7820597954.png)
"FTP files"というパネルが表示され、ファイルがリスト形式で一覧表示されるので、その中から利用するファイル(ここでは2.shuffled.bam)の左端に表示されているチェックボックスをクリックして✔を入力する
![Screen Shot 2018-12-26 at 11.11.04.png](https://qiita-image-store.s3.amazonaws.com/0/213053/d94bbf8b-d608-85d1-bb16-352ee36e43dc.png)
どれか一つでもチェックボックスに✔が入ると"Start"ボタンが利用できるようになるので、"Start"をクリック
![Screen Shot 2018-12-26 at 11.11.16.png](https://qiita-image-store.s3.amazonaws.com/0/213053/871ce129-ec57-2ab2-774a-5e1d6c72ea27.png)
"Status"表示が100%になったら、"Close"ボタンをクリックしよう
![Screen Shot 2018-12-26 at 11.11.23.png](https://qiita-image-store.s3.amazonaws.com/0/213053/836ef4b8-a012-50a2-dcbd-de3ff6baadbf.png)
Historyペインにアップロードしたファイルが表示されて利用できるようになる
![Screen Shot 2018-12-26 at 11.11.31.png](https://qiita-image-store.s3.amazonaws.com/0/213053/f5a59c7e-aeb0-2441-9c6b-9b07829a6442.png)

今回はココまで:smile: