---
# System prepended metadata

title: Microbiome Datahub

---

## Microbiome Datahub: 2023~2024年度ログ

Microbiome Datahub: 2025年度~は以下に移行
https://hackmd.io/@himori/HysOsIaGge

## 2025-XX 論文のゴール
- MAG検索改善 → セットアップ`setup_genome.py`の完成
    - Umbrella プロジェクトのBSの手動選抜 → BP/BSメタデータのアサイン 
    - NCBI Taxonomy/GTDBとその上位Taxonアサイン
- 単離菌の新規投入



## 2025-3-12 zoomミーティング
- GTDB Taxonの埋め込み　（大石）
    - create_index_genome.pyを改修しステージング環境のtest用インデックスに埋め込みのテストを行いました
    - "_gtdb_taxon"としてjsonのルートに配置されます
```
"_source" : {
          "_gtdb_taxon" : [
            "d__Bacteria",
            "p__Nitrospirota_A",
            "c__Leptospirillia",
            "o__Leptospirillales",
            "f__Leptospirillaceae",
            "g__Leptospirillum_A",
            "s__Leptospirillum_A rubarum"
          ]
        }
```
- __の前を削ったものもJSONに入れる。_genome_taxon: []に、gtdb_taxonを加工したものと、NCBI Taxonomyのorganism nameを入れる
    - Leptospirillum rubarumをhitさせたい。また、Leptospirillumでもhitさせたい。Leptospirillum_Aでもhitさせたい。g__Leptospirillum_Aで検索してもhitさせたい。

- GCF_*のDL機能修正（大石）
    - dfastディレクトリが無いケースで,cds.fna, protein.faaが存在しないため空のzipが返っている
    - genome.fnaはgenomeディレクトリにも有る様であったためdfast/が無いケースではgenomeのルートのファイルを取得し返すように修正した
- サーバサイドクエリ生成の試作（大石）
    - Elasiticsearchのsearch, aggsクエリをrestで呼ぶためのAPI試作（途中）
    - converter: https://github.com/ddbj/ddbj-ld-proxy/blob/dev-2025/docker/simple_es_query/simple_query_generator.py
    - API: https://github.com/ddbj/ddbj-ld-proxy/blob/cb1a96c022441b0aedc916e491b90394b72b9ec4/docker/proxy-api/main.js#L556C1-L580C3
## 2025-2-10_13 MDB開発合宿@静岡
### まとめ
- 星加点条件のための統計量分布を集計。Top pageでグラフ表示
    - 案
        - contamination < 10
        - completeness > 60
        - completeness > 90
        - rrna_count > 2
        - sequence_count < 30
        - Total Sequence Length > 500 kb & < 15 MB
        - N50 > 10 kb

#### TODO
- スプレッドシートの課題解決
- refseq 4504件dfast実行→mbgd解析（森）
    * `grep GCF /work1/mdatahub/private/check_all.txt |grep "db+" |grep "dfast-" |cut -f1 > /work1/mdatahub/private/refseq-20250115-no-dfast`
- SRA由来のBioSampleをMAGに手動で紐付ける→BioSample属性の集計（森、藤澤）
- host organismの検索向上のためのNCBI taxonomyの上位taxonやsynonymのラベルを取得しgenome.jsonに追加
- ⭐️4,5がない問題に起因してまずは条件の値の分布を確認する→ 加点ロジックの見直し
### WebページUIの要望など
- Search Keyword窓は一番上にすべきではない。この検索窓で全部の項目へのキーワード検索ができると思ってしまう。
- SUBMITボタンは一番上と一番下に1つずつつける。
- 詳細ページで検索フォームを入力しても検索結果の表示に移動しない。詳細ページで検索した場合の挙動について検討する。
- RefSeqデータなどでcompletenessが存在しない場合エラー表示される。completenessは２箇所あるがどちらを見ているか、また値が0やNoneで合った場合OKか確認する。
- Bac2Feature、MBGDのデータが無いケースでの表示を確認する。
- Project検索ページで、データサイズとBioSample数は検索画面で表示しない。
- Quality 5と4がデータとして無いので、検索の選択肢は1-3までにする。
- 窓にキーワードが入力されたら、トグルをONにしていなくてもONにする。というより、数値バー系以外はトグルは不要では？
- Search選択された際に、Projectではなく、Genomeをデフォルトにする。
- Genome taxon検索でGTDBでの系統名でも検索できるようにする
- 各MAGのページで、Description, Publication, Propertiesは不要。MetadataのTableを位置させる。Metadataという文字は消す。
- Genome詳細ページに行くとサイドバーが変（おそらくProject検索のサイドバーになっている）


### 進捗
#### BP-BS関係情報
- 1) UmbrellaBPがない場合
    - BP-ASMに関係するBS-SRAがない場合、BS-ASMで確定
    - BP-ASMに関係するBS-SRAがある場合、
        - BS-ASM = BS-SRA の場合、BS-ASMで確定
        - BS-ASM != BS-SRA の場合、目で見る
- 2) UmbrellaBPがある場合
    - Umbrella BPに関係するBS-SRAがない場合、BS-ASMで確定
    - BP-ASMに関係するBS-SRAが1個ある場合、BS-SRAが確定
    - BP-ASMに関係するBS-SRAがN個ある場合、目で見る

TODO: 
- 1) 以下のINSDCのBP-BSの関係情報をとって、SQLiteに投入する
    - bioproject_bioproject (sqlite:bioproject_umbrella2bioproject)
        - https://ddbj.nig.ac.jp/public/rdf/dblink/bioproject_umbrella-bioproject/bioproject_umbrella2bioproject.tsv
    - bioproject_biosample ( sqlite:bioproject2biosample + bioproject_biiosample_SRA_Accessions.tab由来)
        - cat assembly_summary_genbank-20230420.txt |cut -f2,3 |grep PRJ | grep SAM |sort |uniq  > /work1/mdatahub/private/sra/reports/Metadata/bioproject_biosample-assembly_summary_genbank-20230420.txt
        - egrep "RUN|EXPERIMENT" SRA_Accessions.tab |cut -f18,19 |grep SAM |grep PRJ | sort |uniq > biosample_bioproject-SRA_Accessions.tab
    - biosample_assembly
        - cat assembly_summary_genbank-20230420.txt |cut -f1,3 |grep SAM > /work1/mdatahub/private/sra/reports/Metadata/assembly_biosample
    - submission_biosample
        - egrep "RUN|EXPERIMENT" SRA_Accessions.tab |cut -f2,18|grep SAM | sort |uniq > submission_biosample-SRA_Accessions.tab
    
        

以下は、今回はいらない
    - bioproject_assembly
    - bioproject_submission
    
    - bioproject_experiment
    - bioproject_run
    - biosample_experiment
    - biosample_run

今回はMetagenoのBioSample取得が目的なので、SRA_Accessions.tabから追加で関係をとってくる。それ以外はDDBJ Searchのスコープ。
- SRA_Accessions.tabから
    - BioProject-BioSample
    - BioProject-SRA-Submissionを
- assembly_summary_genbank.txt から
    - BioProject-BioSample
    - BioSample-Assembly Accession
- Metabobank 
    - BioProject-BioSample
    - BioProject-MetaboBank study
- dbSNP/dbVar
    - BioProject-BioSample


- 2) summaryファイルを作る
    - MAG、BP-ASM、BS-ASM, BP-SRA, BS-SRA, {Umbrella BP -- BP -- BS}のtree 

#### Umbrella プロジェクトのBSの手動選抜（森）


#### 集計データ
staging　localhsot:8081 

| dataset| version | 対象レコード |     db+ |biosample+/-| dfast+/-   | mbgd+/-  |memo |
| ------ | ------- | ---------- | ------- |  --------  | --------   | -------- |-------- |
| insdc  |20230420 | 218653     |  218653 |   218651/2 | 218462/191 | 218163/490| |
| refseq |20250115 |  26076     |   26076 |      26076 |  21572/4504 |   0/26076 | |
| 合計    |---      | 244729     |  244729 |   244727/2 |  240034/4703 |218163/26566 | |
| refseq |20230420 |  21035     | ------- |   -------- |   ----      |     --- |参考|


* 対象レコードは、assembly_summary の対象件数
    * insdc: `(dataset == "insdc" and "derived from metagenome" in columns[20]) `
        * `grep "derived from metagenome" assembly_summary_genbank-20230420.txt |wc -l`
    * refseq: `(dataset == "refseq" and relation_to_type_material.startswith("assembly"))`
        * `grep -v "^#" assembly_summary_refseq-20230420.txt |cut -f22 |grep "^assembly" |wc -l `

* 集計スクリプト
```
[mdb_dev@cs9 tmp]$ cd /work1/mdatahub/private/
[mdb_dev@cs9 private]$ pyhon check_all.py > check_all.txt 
```
- TODO: 件数の整合性をとる → Done: 対象データとDBデータの整合性をとり、集計スクリプトで存在しないデータを確認するようにした。
    - ~~insdc: BS jsonが2件多い
    - ~~refseq: DFAST結果が存在する件数に揃える、20250115は、dfastを実行して結果を取得

dfast結果があって移動できた 21765 できなかった 34
```
GCF_000143945.1
GCF_000177595.1
GCF_000248295.1
GCF_000258595.1
GCF_000209935.1
GCF_000717315.1
GCF_000988235.1
GCF_000662035.2
GCF_001643395.1
GCF_003052455.1
GCF_004195775.1
GCF_004195755.1
GCF_004195885.1
GCF_004143605.1
GCF_006094475.1
GCF_008993435.1
GCF_008993375.1
GCF_015209785.1
GCF_016820445.1
GCF_016820535.1
GCF_016820495.1
GCF_021654635.1
GCF_024347235.1
GCF_025913575.1
GCF_029504145.1
GCF_030161175.1
GCF_030161855.1
GCF_030551255.1
GCF_031316495.1
GCF_032595875.1
GCF_032595915.1
GCF_032597935.1
GCF_900110795.1
GCF_027922045.1
```

#### BioSample属性の集計

```
[mdb_dev@cs9 tmp]$ python test.py 
Enter the directory path to scan: /work1/mdatahub/public/genome/GCA

Summary of JSON field occurrences:
sample_count: Empty = 0, Non-Empty = 218655
sample_organism: Empty = 143, Non-Empty = 218512
sample_taxid: Empty = 143, Non-Empty = 218512
sample_host_organism: Empty = 175533, Non-Empty = 43122
sample_host_organism_id: Empty = 218655, Non-Empty = 0
sample_host_disease: Empty = 218552, Non-Empty = 103
sample_host_disease_id: Empty = 218655, Non-Empty = 0
sample_host_location: Empty = 5014, Non-Empty = 213641
sample_host_location_id: Empty = 218655, Non-Empty = 0
data_size: Empty = 0, Non-Empty = 218655
sample_ph_range.min: Empty = 209394, Non-Empty = 9261
sample_ph_range.max: Empty = 209394, Non-Empty = 9261
sample_temperature_range.min: Empty = 206484, Non-Empty = 12171
sample_temperature_range.max: Empty = 206484, Non-Empty = 12171
```

- TODO: 以下を確認する
    - sample_organismのEmpty
    - sample_host_organismの頻度

#### 不具合データの修正

以下、BioSample XMLを取得しなおした。GCFについては全件とりなおし、GCAについては、mv, cpで退避後、dfast, dfastqcの結果を含めて手動で配置しなおした。
| Direcotry | Column 2 |
| -------- | -------- | 
| cd /work1/mdatahub/public/genome/GCF/004/341/385/ | `mv GCF_004341385.1 GCF_004341385.1.tmp` |
| cd /work1/mdatahub/public/genome/GCF/028/858/535/ | `mv GCF_004341385.1 GCF_004341385.1.tmp` |
| cd /work1/mdatahub/public/genome/GCF/900/099/685/ | `mv GCF_900099685.1 GCF_900099685.1.tmp` |
| cd /work1/mdatahub/public/genome/GCA/002/049/785/ | `mv GCA_002049785.1 GCA_002049785.1.tmp` |
| cd /work1/mdatahub/public/genome/GCA/002/295/585/ | `mv GCA_002295585.1 GCA_002295585.1.tmp` |
| cd /work1/mdatahub/public/genome/GCA/017/881/085/ | `mv GCA_017881085.1 GCA_017881085.1.tmp` |
| cd /work1/mdatahub/public/genome/GCA/020/427/155/ | `mv GCA_020427155.1 GCA_020427155.1.tmp` |
| cd /work1/mdatahub/public/genome/GCA/938/045/925/ | `cp -r GCA_938045925.1 GCA_938045925.1.tmp` |
| cd /work1/mdatahub/public/genome/GCA/947/301/925/ | `cp -r GCA_947301925.1 GCA_947301925.1.tmp` |

BS jsonの重複確認
```
[mdb_dev@cs9 925]$ tree /work1/mdatahub/public/genome/GCA |grep "SAM" | grep ".json" |sort |uniq -d
│   │           ├── SAMN00998488.json
│   │           ├── SAMN01813472.json
│   │           ├── SAMN02316559.json
│   │           ├── SAMN02954240.json
│   │   │       ├── SAMEA6866732.json
│   │   │       ├── SAMEA7074294.json
│   │   │       ├── SAMN01940911.json
│   │   │       ├── SAMN02316559.json
│   │   │       ├── SAMN02347633.json
│   │   │       ├── SAMN02445066.json
│   │   │       ├── SAMN02954240.json
│   │   │       ├── SAMN02954272.json
│   │   │       ├── SAMN03436306.json
│   │   │       ├── SAMN03742521.json
│   │   │       ├── SAMN03778948.json
```

`GCF_005925325.1`, `GCF_005925345.1` は現在、配列が取得できない
```
[mdb_dev@cs9 dataflow_prototype]$ python bin/setup_genome.py refseq
Downloading https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/005/925/325/GCF_005925325.1_ASM592532v1/GCF_005925325.1_ASM592532v1_genomic.fna.gz to /work1/mdatahub/public/genome/GCF/005/925/325/GCF_005925325.1/genome.fna.gz...
HTTP Error: 404 while downloading https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/005/925/325/GCF_005925325.1_ASM592532v1/GCF_005925325.1_ASM592532v1_genomic.fna.gz
Failed to decompress /work1/mdatahub/public/genome/GCF/005/925/325/GCF_005925325.1/genome.fna.gz: [Errno 2] No such file or directory: '/work1/mdatahub/public/genome/GCF/005/925/325/GCF_005925325.1/genome.fna.gz'
Downloading https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/005/925/345/GCF_005925345.1_ASM592534v1/GCF_005925345.1_ASM592534v1_genomic.fna.gz to /work1/mdatahub/public/genome/GCF/005/925/345/GCF_005925345.1/genome.fna.gz...
HTTP Error: 404 while downloading https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/005/925/345/GCF_005925345.1_ASM592534v1/GCF_005925345.1_ASM592534v1_genomic.fna.gz
Failed to decompress /work1/mdatahub/public/genome/GCF/005/925/345/GCF_005925345.1/genome.fna.gz: [Errno 2] No such file or directory: '/work1/mdatahub/public/genome/GCF/005/925/345/GCF_005925345.1/genome.fna.gz'

```


#### GTDB結果の加工と表示追加（大石）
- genome.jsonにgtdb_taxonomyを持っているが、フロントで表示するために、さらにパースして、genome.jsonを更新する
- "gtdb_taxonomy":
    - "d__Bacteria;p__Patescibacteria;c__Paceibacteria;o__UBA10092;f__UBA10092;g__JACPHB01"
- "gtdb_species": "s__JACPHB01 sp016188835"
- Link "https://gtdb.ecogenomic.org/tree?r=o__Methanofastidiosales"

```
  "_gtdb_taxon": [
  "d__Bacteria",
  "p__Patescibacteria",
  "c__Paceibacteria",
  "o__UBA10092",
  "f__UBA10092",
  "g__JACPHB01"
  ]
```

```
  "_dfastqc": {
    "tc_result": [

    ],
    "cc_result": {
      "completeness": 34.97,
      "contamination": 0.0,
      "strain_heterogeneity": 0.0
    },
    "gtdb_result": [
      {
        "accession": "GCA_016188835.1",
        "gtdb_species": "s__JACPHB01 sp016188835",
        "ani": 85.6359,
        "matched_fragments": 66,
        "total_fragments": 80,
        "gtdb_taxonomy": "d__Bacteria;p__Patescibacteria;c__Paceibacteria;o__UBA10092;f__UBA10092;g__JACPHB01",
        "ani_circumscription_radius": 95.0,
        "mean_intra_species_ani": "N/A",
        "min_intra_species_ani": "N/A",
        "mean_intra_species_af": "N/A",
        "min_intra_species_af": "N/A",
        "num_clustered_genomes": 1,
        "status": "-"
      }
    ]
  },
```
#### ファイルの配置先を変更（藤澤、大石）
- 以下の変更方針に従って、スクリプトを修正する https://docs.google.com/spreadsheets/d/1K7dL0NnWLfLe01Bd_ZufITHGfowAIRsY_q2RPCx9IAU/edit?gid=63930746#gid=63930746

```
[mdb_dev@cs9 private]$ pwd
/work1/mdatahub/private
[mdb_dev@cs9 private]$ tree insdc/
insdc/
├── b2f
├── dfast
├── dfastqc
└── mbgd

4 directories, 0 files
[mdb_dev@cs9 private]$ tree refseq/
refseq/
├── b2f
├── dfast
├── dfastqc
└── mbgd
```

#### `setup_genome.py` 更新（藤澤）
- 1) assmebly_summaryファイル 配置先を決めて移動する [OK]
- 2) BioSample JSONまで対応 [OK]
- 2) `create_mbgd_genome.py`を統合
- 3) dfast, dfast-qcの実行とダウンロード配置 の未完成を仕上げる or 実装する
 

#### `create_index_genome.py` 更新 (大石）
- 1) 入力パスを変更する
- 2) setup_genomeでBioSample JSONまで変換後修正する
- 4) insdc/refseq対応
    - bac2featureの全件データの存在の有無のチェック
    - ゲノム毎のディレクトリの存在、biosample.json、dfastの結果、dfast-qcの結果の存在のチェック
    - パースして、MAG/単離菌共通のgenome.jsonの生成




#### 来年度計画書書き（森）
- 書いて分担者全員に送った
- NBDCに提出完了

#### ユーザマニュアル書き（森）

### 具体的なゴール
- 単離菌ゲノムおよび検索改善のためのMAG更新対応
- （完）来年度計画書完成とNBDCへの提出
- 論文ドラフト
- できれば dev.mdatahub.orgで検証環境アクセスのための環境セットアップ

### スケジュール
- 2/10
    - 13:00- ブレスト
    - 18:00-　森さん合流
- 2/11
    - スクリプト実装
    - 計画書
    - 次年度のDFAST開発相談（RefSeq Protein → Chemical Compound）
- 2/12
    - 13:30- 16:00 GIオフライン＠代々木上原（森）
    - 13:30- スパコン定例（藤澤）
    - 17:00- DDBJ Search -coverter（藤澤、大石）
- 2/13
    - AM論文ドラフト試作
    - 9:00- ヒトゲノムDB運用（藤澤）
    - 13:00- 15:00 スパコンph4（藤澤）
    - 14:00- mdatahub開発ミーティング（森、藤澤、大石、インフォラウンジ）
    - ~17:00 撤収

---

## 2025-1-29 ミーティング
### 進捗　スプレッドシートを見つつ確認
- トップページ・マニュアルの改良 
    マークダウンで設定したデザイン（空白行や文字色等）をこれらのページだけcssあてて反映されるようにした　https://github.com/microbiomedatahub/microbiome-datahub/blob/develop/package.json
- 単離菌ゲノムデータを検索可能にするためにはもう少しフロントエンドで改良必要

## 2025-1-15_17 MDB開発合宿@静岡
### まとめ
- トップページ・マニュアルのコンテンツ拡充
- データ追加・更新のためのcreate_index_genome.pyでINSDC-MAG, Isolate Genomeの対応完了
- ゲノムデータ配置等の事前準備 setup_genome.pyでIsolate Genomeの対応
#### 今後のTODO
- 論文のゴールに必要な内容を進める
-- `create_index_genome.py`でMAG検索改善の対応
-- `setup_genome.py`で dfast, dfast-qcの実行とダウンロード配置は未対応

### 進捗
- トップページの改良 -hmori
    - マークダウンで設定したデザイン（空白行や文字色等）が反映されない
- マニュアルの追記 -hmori
- データ追加・更新に関して今後のリリース計画およびそれに関わるタスクのスケジュール確認 -all
    - 論文のゴール
        - MAG検索改善 → セットアップ`setup_genome.py`の完成
            - Umbrella プロジェクトのBSの手動選抜
            - → BP/BSメタデータのアサイン 
            - NCBI Taxonomy/GTDBとその上位Taxonアサイン
        - 単離菌の新規投入
    - その他のプロセス
        - projectデータ新規追加・更新見直し
            -  ~~`setup_project.py`, 　`create_index_project.py`実装 ~~
            -  DDBJ Searchの処理系で代用 + Environment検索のみ拡張
        - ゲノムデータ新規追加・更新（MGnify）
            - summary_mgnify.txt用意とgenome_pathにデータ配置
        - dfast,dfast-qc, bac2feature, mbgd 更新系

    - 議論
        - project検索でのRefSeq, MGnifyレコードの議論を経て発展的解消を目指す

- genome件数が少ない問題の解決 -oec [Done]
    - 以前は、218653件だったが、現在、本番・ステージングともに218248
    - mdatahub_index_genome-XXXXXX.jsonlファイルは218653件のため、ESロードに失敗している可能性が高い
    - bulk API実行時のエラーログを出力するようにする
- BioSample XML関連のエラーの解決
    - 6件
- MGnify調査 -all [Done]
    - DFAST, DFAST_QC結果は/work1/mdatahub/private/mgnify/output/に環境ごとに存在。MGYG000086664等が個々のMAGのID。
    - human_gutだけhuman_gut_00000_19999_1、human_gut_020000_039999_1のようにディレクトリが分かれている
    - Projectどうするか問題。MGnify_human_gut等のprojectを作るのもありだが、とりあえずprojectは放っておく
    - API https://www.ebi.ac.uk/metagenomics/api/v1/ でMGYSやBPなどの関係は頑張れば取得できそう
    - [mdb_dev@cs9 genome]$ ls MGYG/000/307/600/MGYG000307600
- 単離菌RefSeq調査 -all [Done]
    - DFAST, DFAST_QC結果は//work1/mdatahub/public/genome/GCF/に存在。例えば、GCF_963396225　であれば、/work1/mdatahub/public/genome/GCF/963/396/225/ というディレクトリにdfast、dfastqcの2ディレクトリが存在
    - INSDC（/work1/mdatahub/public/genome/GCA/000/192/595/GCA_000192595.1/）に揃えて、RefSeqはゲノムIDのディレクトリを作り直す必要がある
    - genome.jsonをAssembly reportからデータとってきて作る必要がある。このタイミングでinput_path output_pathをレポジトリルートの外側に作り、スクリプトを修正する。
```
[mdb_dev@cs9 genome]$ ls GCF/000/003/925/
dfast  dfastqc
```

- ゲノムデータ新規追加・更新（単離菌、 INSDC-MAG）-oec, tf
    - 方針: https://github.com/microbiomedatahub/dataflow_prototype/blob/main/bin/create_index_genome.py
        - 1. ChaGPT＋αで genome.json生成スクリプトcreate_index_genome.rbをpython化して、INSDC-MAGを再現する [Done]
            - assembly_summary_genbank.txtを取得 [OK]
            - BioSample.xmlからメタデータ取得 [OK]
            - DFAST結果から取得 [OK]
            - DFASTQC結果から取得 [OK]
            - 配列ファイルから取得 [OK]
            - 星　contamination, completeness, sequence number, rRNA gene  [OK]
            - 構造が異なるので、確認・修正 [OK]
                - rubyとpythonの差異 2025-01-15 17:00時点 → https://difff.jp/kyx5n.html
                - has_analysis falseがtrueに値がかわった
        - 2. mdatahub_index_genome-#{today}.jsonl を出力の代わりにesへbulkロードするように出力を変更する [Done]
            - genome.json出力 [現在、コメントアウト]
            - https://github.com/microbiomedatahub/dataflow_prototype?tab=readme-ov-file#5-elasticsearchへの全長jsonlのbulk-import 相当
        - 3. pathを整理する [Done]
            - genome_path= `/work1/mdatahub/public/genome` # 現状維持
            - input_path = `/work1/mdatahub/private/genomes` # /work1/mdatahub/app/dataflow_prototype/genome からmv
            - output_path =`/work1/mdatahub/private/genomes` # /work1/mdatahub/app/dataflow_prototype/ からファイルを mv
        - 4. 上記スクリプトで単離菌でも実行してステージング環境へのロード [Done]
            - 各種修正対応
                - "_bac2feature": null → "_bac2feature"
                - "data_type": "MAG"　→ "data_type": "G"
                    - どこで使われているかの確認
                    - (isolate) genome (G) - MIGS
                    - metagenome-assembled genome (MAG) - MIMAG
                    - single amplified genome (SAG) - MISAG
                - "data_source": "INSDC" → "data_source": "RefSeq",
                - DFAST/DFAST-QCの結果がない時の星のロジック確認
                - ESロードの解決
                - Date型候補  seq_rel_date, annotation_dateでgenebank/refseqでハイフン、スラッシュが異なる

- 単離菌ゲノムセットアップ -tf
    - プロセス
        1. assembly_summary_refseq.txtを取得 [OK]
        2. genome_path ディレクトリを作る [OK]
        3. 配列をダウンロードする [OK]
        4. biosample.xmlをダウンロードする [OK]
        5. dfast/dfast-qcを実行して、結果をダウンロードする（今回は実行結果をmvする）[On-going]
        6. (create_index_genome.pyを実行する)
     - 方針
         - pythonで書く
         - 単離菌を1レコードずつ作成してみる（プロセス2-6）
         - mget_asm, mget_biosample_from_asmを置き換える
     - `setup_genome.py` スクリプトを書いた。
         - 2-4はOKで実行中
         - 5の処理を追加しイカでジョブ投入までOK。
             - `USERNAME="dfast-dev-user" PASSWORD="dfast-dev-password" python3 setup_genome.py`
         - 課題
             - genome.fna.gzは受け付けない
             - ダウンロード処理をどうするか。1件ずつ処理するなら同一スクリプトで面倒見る？
         -　https://github.com/microbiomedatahub/dataflow_prototype/blob/main/bin/setup_genome.py


### BioSample XML関連のエラー
```[mdb_dev@cs9 dataflow_prototype]$ python3 bin/create_index_genome.py 
Error processing BioSample XML: /work1/mdatahub/public/genome/GCA/002/049/785/GCA_002049785.1/SAMN06236442.xml
Exception: no element found: line 2, column 2558
Error processing BioSample XML: /work1/mdatahub/public/genome/GCA/002/295/585/GCA_002295585.1/SAMN06450578.xml
Exception: no element found: line 2, column 3335
Error processing BioSample XML: /work1/mdatahub/public/genome/GCA/017/881/085/GCA_017881085.1/SAMN16072740.xml
Exception: no element found: line 2, column 3307
Error processing BioSample XML: /work1/mdatahub/public/genome/GCA/020/427/155/GCA_020427155.1/SAMN14564045.xml
Exception: no element found: line 2, column 4658
Error processing BioSample XML: /work1/mdatahub/public/genome/GCA/938/045/925/GCA_938045925.1/SAMEA14085093.xml
Exception: no element found: line 2, column 5073
Error processing BioSample XML: /work1/mdatahub/public/genome/GCA/947/301/925/GCA_947301925.1/SAMEA111560500.xml
Exception: no element found: line 2, column 4842
```

### TODOの未完了を確認
- BP/BS検索改善 (現状MAG検索では環境検索を消している)
    - データ不整合の確認をする＋BP/BSの関係情報を表示するためにMAGごとの`dblink.json`を生成するスクリプト実装 -tf 
    - 更新系の単純化のためにUmbrella-BP-BPおよびBP-BSの関係情報を取得する（DDBJ Searchの日次更新に組み込む形で）- oec 
- データ追加・更新処理系改善
    - 初期セットアップのElasticsearchのインデックス設定についてindex_templateの設定等の説明をREADME追加する - oec

MGnifyのMAG取得スクリプト
```
cat AllWgetMGnify2.sh 
wget -r -np -A faa,fna,gff,tsv,fasta -w2 --random-wait -e robots=off http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/cow-rumen/v1.0.1/species_catalogue/
wget -O /sdat5/hmori/MDB4/MGnify/cow-rumen.genomes-all_metadata.tsv http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/cow-rumen/v1.0.1/genomes-all_metadata.tsv
wget -r -np -A faa,fna,gff,tsv,fasta -w2 --random-wait -e robots=off http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/honeybee-gut/v1.0.1/species_catalogue/
wget -O /sdat5/hmori/MDB4/MGnify/honeybee-gut.genomes-all_metadata.tsv http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/honeybee-gut/v1.0.1/genomes-all_metadata.tsv
wget -r -np -A faa,fna,gff,tsv,fasta -w2 --random-wait -e robots=off http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/human-gut/v2.0.2/species_catalogue/
wget -O /sdat5/hmori/MDB4/MGnify/human-gut.genomes-all_metadata.tsv http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/human-gut/v2.0.2/genomes-all_metadata.tsv
wget -r -np -A faa,fna,gff,tsv,fasta -w2 --random-wait -e robots=off http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/human-oral/v1.0.1/species_catalogue/
wget -O /sdat5/hmori/MDB4/MGnify/human-oral.genomes-all_metadata.tsv http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/human-oral/v1.0.1/genomes-all_metadata.tsv
wget -r -np -A faa,fna,gff,tsv,fasta -w2 --random-wait -e robots=off http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/human-oral/v1.0.1/species_catalogue/
wget -O /sdat5/hmori/MDB4/MGnify/human-oral.genomes-all_metadata.tsv http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/human-oral/v1.0.1/genomes-all_metadata.tsv
wget -r -np -A faa,fna,gff,tsv,fasta -w2 --random-wait -e robots=off http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/human-vaginal/v1.0/species_catalogue/
wget -O /sdat5/hmori/MDB4/MGnify/human-vaginal.genomes-all_metadata.tsv http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/human-vaginal/v1.0/genomes-all_metadata.tsv
wget -r -np -A faa,fna,gff,tsv,fasta -w2 --random-wait -e robots=off http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/marine/v1.0/species_catalogue/
wget -O /sdat5/hmori/MDB4/MGnify/marine.genomes-all_metadata.tsv http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/marine/v1.0/genomes-all_metadata.tsv
wget -r -np -A faa,fna,gff,tsv,fasta -w2 --random-wait -e robots=off http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/non-model-fish-gut/v2.0/species_catalogue/
wget -O /sdat5/hmori/MDB4/MGnify/non-model-fish-gut.genomes-all_metadata.tsv http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/non-model-fish-gut/v2.0/genomes-all_metadata.tsv
wget -r -np -A faa,fna,gff,tsv,fasta -w2 --random-wait -e robots=off http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/pig-gut/v1.0/species_catalogue/
wget -O /sdat5/hmori/MDB4/MGnify/pig-gut.genomes-all_metadata.tsv http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/pig-gut/v1.0/genomes-all_metadata.tsv
wget -r -np -A faa,fna,gff,tsv,fasta -w2 --random-wait -e robots=off http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/zebrafish-fecal/v1.0/species_catalogue/
wget -O /sdat5/hmori/MDB4/MGnify/zebrafish-fecal.genomes-all_metadata.tsv http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/zebrafish-fecal/v1.0/genomes-all_metadata.tsv
wget -O /sdat5/hmori/MDB4/MGnify/chicken-gut.protein_catalogue-100.tar.gz http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/chicken-gut/v1.0/protein_catalogue/protein_catalogue-100.tar.gz
wget -O /sdat5/hmori/MDB4/MGnify/cow-rumen.protein_catalogue-100.tar.gz http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/cow-rumen/v1.0/protein_catalogue/protein_catalogue-100.tar.gz
wget -O /sdat5/hmori/MDB4/MGnify/honeybee-gut.protein_catalogue-100.tar.gz http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/honeybee-gut/v1.0/protein_catalogue/protein_catalogue-100.tar.gz
wget -O /sdat5/hmori/MDB4/MGnify/human-gut.protein_catalogue-100.tar.gz http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/human-gut/v2.0.1/protein_catalogue/uhgp-100.tar.gz
wget -O /sdat5/hmori/MDB4/MGnify/human-oral.protein_catalogue-100.tar.gz http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/human-oral/v1.0/protein_catalogue/protein_catalogue-100.tar.gz
wget -O /sdat5/hmori/MDB4/MGnify/human-vaginal.protein_catalogue-100.tar.gz http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/human-vaginal/v1.0/protein_catalogue/protein_catalogue-100.tar.gz
wget -O /sdat5/hmori/MDB4/MGnify/marine.protein_catalogue-100.tar.gz http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/marine/v1.0/protein_catalogue/protein_catalogue-100.tar.gz
wget -O /sdat5/hmori/MDB4/MGnify/non-model-fish-gut.protein_catalogue-100.tar.gz http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/non-model-fish-gut/v2.0/protein_catalogue/protein_catalogue-100.tar.gz
wget -O /sdat5/hmori/MDB4/MGnify/pig-gut.protein_catalogue-100.tar.gz http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/pig-gut/v1.0/protein_catalogue/protein_catalogue-100.tar.gz
wget -O /sdat5/hmori/MDB4/MGnify/zebrafish-fecal.protein_catalogue-100.tar.gz http://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/zebrafish-fecal/v1.0/protein_catalogue/protein_catalogue-100.tar.gz
```

## 2024-12-24 zoomミーティング
今週後半のMicrobiome Datahub正式公開でどこまで出して何を妥協するかを決めた


## 2024-12-17 zoomミーティング
追加するデータの表示形式
- Bac2Feature
  - 表示形式
  　　- 現状のgenomeのDFAST,DFASTQCと同様のテーブルを描画する
  　　- Phenotype, 値の２列x27行のテーブルとなる
  - APIレスポンス
      - Elasiticsearchのレスポンスの"_bac2feature"属性に27のkey:valueが記述されます
      - "_bac2feature": {"key1": value1, "key2": value2,,,}
      - 例） "_bac2feature": {"cell_diameter": -0.301,"cell_length": 0.234,"doubling_h": 0.2788,"growth_tmp": 34.523,"optimum_tmp": 33.200,"optimum_ph": 7.493,"genome_size": 2798729.147, "gc_content": 47.341, , ,,,} 
- MBGD
　- MBGDのURL https://mbgd.nibb.ac.jp/htbin/hcluster?clustid=10000
    - 表示形式
      - metastanzaのPagination tableの雰囲気で（より実装しやすいtableがあれば一旦それでもOK）
      - URLリンクを埋める
  - API
      - Elasticsearchのレスポンスとは別にAPIからデータを返します（大きなサイズに育つことが今後予想されるため）
      - https://mdatahub.org/api/genome/mbgd/{genome id}
      - 例） https://mdatahub.org/api/genome/mbgd/GCA_018662945.1
  - APIレスポンス
      - [{ id: "1.50", count: 1, ko: ""K02010",", description: ""}, , ,]
      - 元のデータはidが重複している場合があるためその場合はjsonに変換する際にcountとして集計する



## 2024-12-16~20 柏の葉キャンパス
- create_index系スクリプト名を変更 [Done] 12/16
- データ不整合の確認をする＋BP/BSの関係情報を表示するためにMAGごとの`dblink.json`を生成するスクリプト実装 [On-going]
    - Umbrellaの種別
        - <ProjectTypeTopAdmin subtype="eFundingInitiative"/>
        - <ProjectTypeTopAdmin subtype="eMetagenome">
    - Umbrella BPが複数あるBPは2件
        - {"assembly":{"assembly_accession":"GCA_000770195.1","bioproject":"PRJNA196996","biosample":"SAMN02795945","taxid":"1318617","species_taxid":"1318617","organism_name":"Candidatus Malacoplasma girerdii"},"bioproject":[["PRJNA28331","PRJNA196996"],["PRJNA51443","PRJNA196996"]]}
        - {"assembly":{"assembly_accession":"GCA_005465875.1","bioproject":"PRJNA46877","biosample":"SAMN08378381","taxid":"699240","species_taxid":"699240","organism_name":"Clostridiales genomosp. BVAB1"},"bioproject":[["PRJNA46305","PRJNA46877"],["PRJNA51443","PRJNA46877"],["PRJNA74947","PRJNA46877"]]}
- PZLAST-MAGによるMicrobiome datahub 218,653 MAG由来proteins (454,799,346本) vs MBGD default Ortholog cluster proteins (12,093,450本) の配列相同性検索結果から、1行1MAGのOrtholog ID listのtsv作成 [Done] 12/17
    - 例　`GCA_018662945.1_ASM1866294v1_genomic.fna    1.50  1.77  1.77  1.77  1.77  1.77  1.77  1.77  1.77  1.77  1.77      1.77  2.17  2.37  2.42  2.42  2.42  2.42  2.42  2.42  2.42  2.42 ` 
    - ゲノムIDの後にOrtholog IDリストがタブ区切りで1行1MAGで並んでいます。
1MAGで同じオーソログを複数個持っている場合もあるので、371 371のように同じIDが並んでいることもあります。クラスタ番号の後に . があり、その後にサブクラスタ番号があります。サブクラスタ番号が無いものもあります。
    - 内山さんから今日Ortholog IDごとの追加情報も送ってもらった 12/17
        - mbgdcluster.tsv
            1    ABC transporter ATP-binding protein
            2    Response regulator protein domain DNA-binding protein
            のようにtsvファイル
        - MBGDサブクラスタとKOとの対応表ももらった
            21万MAGのKO組成のTSVも作った
            MDB.pzlast.out.txt.id.txt.mbgd2.txt.ko.txt
                
            
    - Orthologごとのページは作らないのかと提案あり。そのOrthologを持っているMAGのリストや系統のリスト、Orthologの基本情報等載せるページ
    - https://togostanza.github.io/metastanza/pagination-table.html
    

- Bac2Featureの結果1000MAG分を受け取ったので1行1MAGのphenotype listのtsv作成 [Done] 12/16
    - 11 数値データ (cell_diameter, cell_length, doubling_h, growth_tmp, optimum_tmp, optimum_ph, genome_size, gc_content, coding_genes, rRNA16S_genes, tRNA_genes)
    - 16 0/1データ (gram_stain, sporulation, motility, range_salinity, facultative_respiration, anaerobic_respiration, aerobic_respiration, mesophilic_range_tmp, thermophilic_range_tmp, psychrophilic_range_tmp, bacillus_cell_shape, coccus_cell_shape, filament_cell_shape, coccobacillus_cell_shape, vibrio_cell_shape, spiral_cell_shape)
    - 27 phenotype 全部載せる
    - ハッシュテーブルを作って放り込む？　Mdatahubの他で使っているTableと同じ形式にする？
    - "_bac2feature": { 


## 2024-12-05 遺伝研W棟5階W507
- MBGD Ortholog cluster IDとBac2Featureデータを入れた拡張イメージ https://github.com/microbiomedatahub/dataflow_prototype/commit/5dbfb20bdb11d3b0187b846d31526035e5a678ed
    - クラスターIDはキーワード検索のために、"mbgd:10000" としてJSONに格納する
    - MBGDのリンク先は、https://mbgd.nibb.ac.jp/htbin/hcluster?clustid=10000
    - MBGD APIの場合は、https://mbgdapi.nibb.ac.jp/ortholog-group/top/10000　（まだ動いていない）
- microbiomedatahubにはやめに移動してdocker-microbiome-datahubのcomposeに組み込む
    - https://github.com/ddbj/ddbj-ld-proxy
- create_index系スクリプトの動作確認 [Done]
    - create_index_genome_prototype → mdatahub_index_genome-20241205.jsonl 
        - 再現がとれたら、create_index_genome.rbにリネーム
    - create_indexes.rb  → mdatahub_index_project-20241205.jsonl
        - 再現がとれたら、create_index_project.rbにリネーム
- データ不整合の確認をする＋BP/BSの関係情報を表示するためにMAGごとの`dblink.json`を生成するスクリプトcreate_dblink_project.rb, create_dblink_genome.rb設計 -tf
    - 入力：assembly_summary_genbank.txtからBP-BS-GCAのIDリレーションからグラフを作成する
    - 入力：umbrellaBP-BPの関係ファイルからグラフに追加する
    - 入力：BP-BSの関係ファイルからグラフに追加する
    - 入力：BSのmodel/packageからGenome/Metagenomeの型を用意する、必要に応じてBS(Metagenome)-BS(Genome)のエッジを立てる
    - 出力：project/dblink.json, genome/dblink.jsonを各ディレクトリに配置する
    - BS（Metagenome）の属性をproject.json, genome.jsonにトランスファーを検討する

### Todo
- データ不整合の確認をする＋BP/BSの関係情報を表示するためにMAGごとの`dblink.json`を生成するスクリプト実装 -tf
- 更新系の単純化のためにUmbrella-BP-BPおよびBP-BSの関係情報を取得する（DDBJ Searchの日次更新に組み込む形で）- oec 
- dataflow_prototypeのREADMEの追記
    - 系統組成データ生成スクリプトのkraken2plotlyjson.pyの入出力の仕様についての仕様を記述する（入力としてrunごとのcsvを配置するディレクトリを指定し一括変換するのでその旨と書き出しディレクトリの自動生成についての記述）- oec
    - Elasticsearchのインデックス設定についてindex_templateの設定等の説明を追加する - oec
    - mdatahub_index_genome-20241205.jsonlとmdatahub_index_project-20241205.jsonlをステージング環境ESにロード後、bulk_import.sh/split.shのドキュメントも必要に応じて更新


## 2024-11-26
- production環境のディレクトリ名を変更
    - 本番環境が"docker-microbiome-datahub-staging"に置かれていたため"docker-microbiome-datahub"に変更した
- staging環境の設定 (cs9上)　ポート番号8081を使用
    - let's encryptでドメイン名持っているもののどれかを設定してnginx confでcs9 stagingに飛ばす[森]
    - "docker-microbiome-datahub-staging"ディレクトリを新しく作りstaging環境を構築した
    - ポートフォーワードでweb環境が構築されているところまで確認した
    - apiからElasticsearchのリクエストでリクエストエラーが発生中
- TODO: MAG-MBGDのtsvファイルの例を共有する[森]
    - mbgd.json
        - ファイルが無ければ未解析
        - 解析したけど結果がない場合もある
        - アサインされたMBGD ortholog IDの件数を書きたい
    - MAG ID - MAG protein ID - MBGD ortholog ID
        - MAG protein IDがまともかをまずチェック
        - 内山さんにMBGD ortholog cluster IDのリンク先をどうするか確認
- Phenotype情報ファイルの例を共有する[森]
    - bac2feature.json
        - ファイルが無ければ未解析
        - 解析したけど予測できない場合もある
        - アサインされたphenotype IDの件数を書きたい
    - MAG ID - 系統名 - phenotype ID or phenotype text
        
    
## 2024-11-20 17:00-
- Microbiome Datahub 12月末正式版公開
- cs9上でのStaging環境用意[大石]
    - composeファイルもう一個作る？
    - ポート・名前衝突回避
    - 本番データの一部をStaging環境
- 新規追加データ用のUIの開発はデータ揃う前に並行してやってもらわないと間に合わないので、12/5の話し合いの際に下記のデータのUI案を森から提案する[森]
    - Bac2Featureデータ
        - Phenotype 25項目の情報でキーワード検索
            - 松井さんに例をリクエストする
            - Assembly_ReportのOrganism nameを取れば良い
            - grep 'derived from metagenome'　で、218653 MAG取れる
                - 松井さんにリスト送ってリクエスト済み(11/21)
    - MBGDデータ
        - MBGD Cluster IDで検索して、そのMBGD Clusterを持っているMAG一覧が得られればOK
        - MAGごとのMBGD Cluster IDリスト

## 2024-11-14 17:00-
- Microbiome Datahub改善点スプレッドシート https://docs.google.com/spreadsheets/d/1K7dL0NnWLfLe01Bd_ZufITHGfowAIRsY_q2RPCx9IAU
    - 各項目の対応のための調査
    - front/API/ES等でセキュリティ関連のアップデートが必要かの調査
- 本番環境cs8サーバのOSをCentOS7からAlmaLinux 9.4に変えた[森]
    - firewall設定
    - nginxのconfファイルの設定(cs9へのproxy_pass設定等)
    - let's encryptによるSSL証明書
    - nginx logrotate設定

- cs9 Dockerイメージの更新について：以下のアップデートをローカル環境で試して起動と挙動の確認を行う[大石]
    - datahub
        - node:18 -> node23
      (node18.20.4であればアップデートがかかっている。node23が動かない場合18が継続して使えるか確認する）
    - web
      - niginx1.24.0 ->1.27.2 もしくは1.26.2
    - es01
        - elasticsearch 7.15.0 -> 7.17.25 // 問題無さそう
    - api
        - node: 16 -> node:23  
        - nodeのpackage.jsonに記述される依存モジュール
          - fastify 3.29.0 ->
          - @fastify/cors -> 
          - @elastic/elastisearch ->
          - 
![mdatahub_org_構成](https://hackmd.io/_uploads/HyKO2lXMyg.png)

## 2024-6-11
- BioSample -MEO のChatGPT APIを利用したアサイン
    - https://ftp.ncbi.nlm.nih.gov/genomes/ASSEMBLY_REPORTS/assembly_summary_refseq.txt
- 系統組成データ追加分のTSV変換
    - 前回とあわせて計 5804プロジェクトについてDLできるようになりました
    - 例）https://mdatahub.org/api/dl/project/composition/PRJNA464990,PRJNA464992,PRJNA464993
## 2024-5-24
- 系統組成データのtsv変換[大石]
    - taxonomy空間をプロジェクトのサンプルに含まれるのtaxonomyの和集合として変換スクリプトを修正しました
        - https://github.com/dogrun-inc/kraken2composition
        - 入力がKraken2形式のcsv、出力がtsv
    - ファイル名について
        - compostion.zip
        - phylum.tsv, family.tsv, genus.tsv, species.tsvが展開したディレクトリに含まれる
        - class, order, superkingdomも一応ファイルとして出したい。
        - API実行した場合ファイルが無いときにどうするか
    - 系統組成データが有るか無いか、それをUIにどう反映するかの検討が必要
    - 系統組成データのzipファイルの有無についてはメタデータJSONにhas analysis等で書き込んでおく。
        - それをファセット検索できるようにしたい
- ページ遷移の際に検索語のパラメータが外れてしまう問題
    - 例えばThermotogaで検索すると、絞り込みが有効なページのURLは
https://mdatahub.org/genomes?genomeTaxon=Thermotoga&sort=dstaCreated-
ですが、このページで表示されるpagerのハイパーリンク先が2ページ目の場合
https://mdatahub.org/genomes?page=2
になる。
https://mdatahub.org/genomes?genomeTaxon=Thermotoga&page=2&sort=dstaCreated-
とすると絞り込みが有効な状態で2ページ目に遷移できるはず。
- MicrobeDB.jpからMicrobiome Datahubへのリダイレクト[森]
    - cs8のnginxにリダイレクト設定を書き込んで完了
    - NBDCからMicrobiome Datahubについてリリース予定

### TODO
- ChatGPT APIを用いた環境メタデータのMEOアノテーション -hmori
    - BioSample IDのリストがあれば環境メタデータ取ってきて自動アノテーションする 
    - まずはリファレンスゲノムでやる
    - https://ftp.ncbi.nlm.nih.gov/genomes/ASSEMBLY_REPORTS/assembly_summary_refseq.txt　のメタデータを使う
- kraken2結果をcs9に配置する -mori
    - 6/11進捗: /work1/mdatahub/private/megap/　に配置した。
        - +16000Run
- kraken2結果のSRR IDからProject 単位でファイルcompostion.zipを生成する -oec
    - 6/11進捗: 12000件は変換済み
    - データが追加されたのでこちらを合わせて変換、配置する
- metadata,genomeの download APIはコミット済み、　compostion download APIもコミットする -oec (〜6月1週目)
    - 6/11進捗: 実装はコミット済み、API経由でもできる
    -
- kraken2結果のあるなしの情報をProject indexのhas_analysis ?などに反映する -oec, tf
    - 6/11進捗: なし
    - TODO: レポジトリ整理dataflow_prototypeを整理して、dataflowに昇格するためにREADME.mdを更新してcs9のinput/outputを確認して最新にする（BH24.6）
- 系統組成データDL API
    - APIを一般に公開した
    - https://mdatahub.org/api/dl/project/composition/PRJNA261473
- ページ遷移の際に検索語のパラメータが外れてしまう不具合の解消 - info
    - 6/13の会議で確認
- スパコンにdownload API/対応するフロントの検証環境を用意する -tf
    - フロントにダウンロード機能UIをmainブランチに既に反映されている
    - 現在公開されているソースはpublic版GitHubではこちらのコミットhash　https://github.com/microbiomedatahub/microbiome-datahub/commit/588b7495cb297696e49d13ee31148d328710e725
    - 6/11進捗: なし、スパコンでdocker-compose up してみる。本環境は先々nextcloud と mdatahub.org の非公開ゲノムのフローGI検証用に転用することを確認。 
- 6/11-13:00-藤澤さんと大石さんと森で会議
- 6/13-13:30にweb会議
- 

## 2024-4-26
- マニュアル作成[森]
    - https://github.com/microbiomedatahub/microbiome-datahub/blob/main/docs/help.md　に書いていっている。GWの宿題
- 系統組成データのJSON変換
    - 一旦大石のレポジトリにおきました
    - プロジェクトにまとめてなんらかの形で提供する処理はこれから実装
    - https://github.com/dogrun-inc/kraken2json
    - 先にrunごとのKraken2結果をprojectごとに束ねてJSONに変換して置いておく
    - https://mdatahub.org/api/dl/project/composition/
    - JSONでダウンロードしてもユーザは辛い。TSVがありがたい
    - taxonomic compisitionは、phylum, class, order, family, genusを選択させる
    - 選択された系統階層についてJSON -> TSVにしてダウンロード？
    - 各行が各系統（EscherichiaやBacillus等）、各列が各サンプルの存在量（50%等）。そのサンプルに存在しない系統は空行になるので、0にするしかない。行数、つまり系統数は固定した方が良い。
    - 森の方でphylum、class、order、family、genus、speciesの並び順のリストを作る -> genusだと2.5万属、speciesだと10万種なので非現実的。比較したいサンプルセットの中でのsort | uniqで系統名リスト作って系統組成のtsvにする

## 2024-4-12
### ダウンロードAPIの開発結果整理
- cs8のssl証明の更新
    - nginxの再起動が自動ではうまくいっていないのでなんとかする[森]
    - /etc/crontab について、
        - 0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew
        - を
        - 0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew --post-hook "systemctl reload nginx"
        - に修正して証明書更新された場合に自動でnginx再起動するように設定しておいた。

- メタデータAPI
    -  https://mdatahub.org/api/dl/project/metadata/PRJNA13694,PRJNA13696
    -  https://mdatahub.org/api/dl/genome/metadata/GCA_029762495.1,GCA_000208265.2
- シークエンスAPI
    - zip圧縮やファイルのストリーミングDL機能について開発済
    - クエリのIDとファイルパスのDL対象のファイルのマッピング機能も開発済
    
- Microbiome Datahubの正式公開に向けての準備
    - Top pageのheaderに検索エンジン用のデータを埋める。
    - [マニュアル作成](https://mdatahub.org/document)[森]
        - FAQはGithub 
        - https://github.com/togoid/togoid-config/blob/main/docs/help.md
https://raw.githubusercontent.com/togoid/togoid-config/main/docs/help.md
    https://github.com/microbiomedatahub/microbiome-datahub/blob/main/docs/help.md　として書く。
    - [検索エンジン対策](https://developers.google.com/search/docs/appearance/structured-data/intro-structured-data)
    - JST-NBDCからGW明けにニュースリリースをしてもらう



## 2024-3-6
### ダウンロードAPIについて

* projectページかgenomeページでダウンロードしたいサンプルを選択する
* projectページかgenomeページで検索結果の全サンプルを選択する
* ダウンロード件数は数百件を上限
* ダウンロードさせる際には、データの種類を選択するステップが必要
    * projectの場合は2択（metadata・taxonomic composition）
    * genomeの場合は4択（metadata・genome sequence・gene sequence・protein sequence)
* genomeデータは、IDにピリオドが入る（含めない形も不可能では無いが可能なら含めたい）
* リンクにアクセスしてストリーミングでダウンロードする

project

1. メタデータAPI: zip(tsv) 
- /dl/project/metadata/{ ids }

2.  系統組成API: zip(json)
- /dl/project/composition/{ ids }
    - Kraken2のreportファイルを捜査&クラスごとパースしDB(現状mongodbが候補)に格納する処理をあらかじめ行っておく
    - ネストする構造なのでタイプはjsonが良いと思うが要検討 { BioSample: {rank(type: ["phylum", "family", "genus", "species"]それぞれ): [{taxonomy: value}]}}}
    

genome


1. メタデータAPI: zip(tsv)

- /dl/genome/metadata/{ ids }
    - /dl/genome/metadata/aaa,bbb,ccc
    - /dl/genome/metadata?ids=aaa,bbb,ccc
    - /dl/genome/metadata?ids[]=aaa&ids[]=bbb&ids[]=ccc


2. シークエンスデータAPI: zip(fna)

- /dl/genome/sequence/genome/{ ids }
- /dl/genome/sequence/cds/{ ids }
- /dl/genome/sequence/protein/{ ids }

インフォラウンジさんが開発したUIの配置場所・渡すパラメータについて確認
- 全て検索結果ページでOKか？
- max件数

## 2023-11-20
#### 今後の開発について
1. ステージング環境の構築
    * cs9にステージング環境docker-compose構築（大石）
        * ポートが激突しないように注意が必要
        * ブランチ切る
    * cs8のnginx設定＋SSL証明　s.mdatahub.org（大石、藤澤）
2. データ拡充（MAG）、データ更新
    * RefSeqから単離菌ゲノムのデータダウンロード
        * TogoGenomeが使えるかどうか
        * Representative genomeを使う
    * MGnifyから下記のスクリプトでMAGデータダウンロード完了
    * ステージング環境にインデックス作成＋投入（大石）
3. 検索結果のデータ群のダウンロード機能の追加
    * 大石さんと仕様＋実装の相談
        * dfast/*のデータをダウンロード
            * dfast/の下にあるディレクトリgenbank/等はダウンロード不要
        * MAG詳細ページの属性情報をTSVでダウンロード
        * Project詳細ページの属性情報をTSVでダウンロード
    * https://mdatahub.org/data配下からかき集める or Elasticsearchから取り出す
    * APIの実装場所はfastAPIを拡張 or Plotly周辺ですでにあればPython APIで実装
    * プロトタイプ　or モックAPI
    * 1月に合宿の必要性。守屋さん達も誘うのも良さそう。
    

```
wget -r -np -A gff.gz -w1 --random-wait -e robots=off https://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/chicken-gut/v1.0.1/all_genomes/
wget -r -np -A gff.gz -w1 --random-wait -e robots=off https://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/cow-rumen/v1.0.1/all_genomes/
wget -r -np -A gff.gz -w1 --random-wait -e robots=off https://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/honeybee-gut/v1.0.1/all_genomes/
wget -r -np -A gff.gz -w1 --random-wait -e robots=off https://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/human-gut/v2.0.2/all_genomes/
wget -r -np -A gff.gz -w1 --random-wait -e robots=off https://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/human-oral/v1.0.1/all_genomes/
wget -r -np -A gff.gz -w1 --random-wait -e robots=off https://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/human-vaginal/v1.0/all_genomes/
wget -r -np -A gff.gz -w1 --random-wait -e robots=off https://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/marine/v1.0/all_genomes/
wget -r -np -A gff.gz -w1 --random-wait -e robots=off https://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/non-model-fish-gut/v2.0/all_genomes/
wget -r -np -A gff.gz -w1 --random-wait -e robots=off https://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/pig-gut/v1.0/all_genomes/
wget -r -np -A gff.gz -w1 --random-wait -e robots=off https://ftp.ebi.ac.uk/pub/databases/metagenomics/mgnify_genomes/zebrafish-fecal/v1.0/all_genomes/
```
* 結果は各ゲノムgffファイルになっている
5. デプロイ方法の確認


## 2023-10-26
#### 今後の開発について
1. ステージング環境
2. 検索結果のデータ群のダウンロード機能の追加
    * ProjectとMAG。
    * Projectのメタデータtsvファイル、系統組成のtsvファイル
    * MAGのゲノムDNAのfastaファイル、アミノ酸配列のfastaファイル、アノテーションのGFFファイル、メタデータtsvファイル
    * サーバ上のファイルパスのリスト(/data/の下)を発行するメソッドを開発する形になりそうだが検証が必要
    * データbulkダウンロードは別経路でできるようにするので、大量ダウンロードに対応する必要は無い。
3. データ拡充（MAG）、データ更新
4. デプロイ方法の確認


## 2023-10-10
#### info-laungeさんへリクエストまとめ
1. not review --> not reviewed　に変更
2. フッターのMicrobeDB.jp project team 2019 --> Microbiome Datahub　に変更
11. Project検索で星1-5のQualityの検索は非表示
12. Genome Category, MAG sourceを非表示、代わりにGenome Quality新規ファセット
    * マルチセレクト
13. 森さんがこれから作るjsonの項目→詳細ページに反映
    * JSONからデータを参照して反映してもらう → [対応表](https://togothon.slack.com/files/U015N7G3EUV/F05T655FZ8U/magdetailpagedesire.xlsx)
14. データ更新後、機能してないメニューの実装を確認してもらう
     * Genome taxon　→ "Methanocalculus"で機能してない
        * "organism_name":を検索対象にする。例: "Candidatus Parvarchaeum acidiphilum ARMAN-4_'5-way FS'",
15. keywordの検索対象を示して反映してもらう。
    * "title", "assembly_accession", "bioproject", "biosample", "identifier"


## BH23.9
### 作業
- Mdatahubインデックス更新（藤澤）
- 最終チェックリスト作成と対応（ALL）
    - MdatahubのページフッターのMicrobeDB .JP project team 2019を、Microbiome Datahub project teamに変更
    - 

## 2023-09-07~10

### ゴール
- [x] /data/genomeデータの配置とgenome index更新
* ~~再配置スクリプト~~
* ~~mdatahub_index_genome.jsonldを更新する~~
* metagenomeの系統組成データを配置する

## TODO
* bioprojectのbiosample属性をgenomeに反映
* project検索のデータおよびファセットの仕様と動作確認（Envなど）
* 更新を考慮した投入データの配置先を決めて移動する
* [README.md](https://github.com/microbiomedatahub/dataflow_prototype/blob/main/README.md) を更新
* BH


### 2023-09-10
#### info-laungeさんへリクエストまとめ
1. ファセットメニューの仕様がデフォルトONになっているのをデフォルトOFF→できれば選択or入力時ONに（project/genome両方）
2. keywordの検索対象を示して反映してもらう。
    * "title", "assembly_accession", "bioproject", "biosample"
3. Genome Category, MAG sourceを非表示、代わりにGenome Quality新規ファセット
    * quality/quality_labeleの値で条件でインターフェースは相談
4. 森さんがこれから作るjsonの項目→詳細ページに反映
5. データ更新後、機能してないメニューの実装を確認してもらう
     * Genome taxon　→ "Methanocalculus"で機能してない
        * "organism_name":を検索対象にする。例: "Candidatus Parvarchaeum acidiphilum ARMAN-4_'5-way FS'",
#### 相談事項
* assembly_summary記載のBioSampleから属性取得できてない問題(※1)
    * https://api.togoid.dbcls.jp/convert?ids=GCA_029762495.1&route=assembly_insdc,bioproject,biosample&report=all&format=csv
    * Projectに紐づくBioSample全件から取得したEnvironment、Host、disease、Host Locationはproject indexにあるので引っ張ってくるか、BioSampleを選別するか...
        * BioProjectのメタデータをtransferする
* キーワード、ファセットメニューとデータとリリースのゴールを確認
    * キーワード検索 → "Methanocalculus"で機能してない
        * 以下の対象を指定する。 
            * "title": "Candidatus Parvarchaeum acidiphilum ARMAN-4_'5-way FS'"
            * "assembly_accession": "GCA_000192595.1",
            * "bioproject": "PRJNA63555",
            * "biosample": "SAMN02954274",
    * Environment →  CVの寄せ方、(※1)
        * NCBITaxMEOEnvo.tsvを使う。JSONでの参照先を確認する。
    * Genome taxon　→ "Methanocalculus"で機能してない
        * "organism_name":を検索対象にする。例: "Candidatus Parvarchaeum acidiphilum ARMAN-4_'5-way FS'",
    * Genome Category　→ リリース時にどうするか？High|Low-quality MAGと星評価
        * High|Low-qualityはやめてMAGにする [Done]
        * 現在MAG("data_type": "low-quality MAG")しかないのでとじる
    *　"Genome quality"のメニューを新設する
            *　evaluation → quality_label[Done]
            *　quality は数字にする　[Done]
    * MAG source　→ リリース時にどうするか？
        * 現在INSDC("data_source": "INSDC")しかないので非表示にする
    * MAG completeness　→ データ投入後動作確認
    * Host taxon　→　"Human"でヒットしない → 機能してない and/or (※1)
    * Host disease　→ "disease"でヒットしない → 機能してない and/or (※1)
    * Host Location　→ "Japan" で9件、"Japan" で4948件
    * Temperature　→ "25"でヒットしない → 機能してない and/or (※1)
    * pH → "7"でヒットしない → 機能してない and/or (※1)


### 2023-09-09
* mdatahub_index_genome-20230910.jsonldを作成
    * 配列、DFAST, DFASTQCの結果を入力し、completeness, contamination, strain_heterogeneity, data_sizeを正しい値を反映
    * MAG評価を追加 "evaluation": "⭐️⭐️⭐️⭐️⭐️"
        * DFASTの結果がある
        * contamination <10(%)
        * completeness >60(%)
        * sequence number <30
        * rRNA gene number >2

* metagenomeの系統組成データをcs9に配置した
    * cs9:/work1/mdatahub/private/megap/　にDRR/ERR/SRRごとの系統組成csvファイルを配置した
        * /work1/mdatahub/private/megap/54/*.csv
        * 44-54のディレクトリが存在
        * 大石さんに伝えてjsonに変換してもらう

### 2023-09-08
* /data/genomeデータの配置
    * 配列ファイル＋MAG BioSample.xmlを配置 `ruby bin/rebuild_directory_genome.rb`
    * DFAST `ruby bin/copy_MAGoutput_dfast_218655.rb `
    * DFASTQC `ruby bin/copy_MAGoutput_dfastqc_218655.rb`
 
#### 下準備
* sc9 screenセッション棚卸し
```
[mdb_dev@cs9 bin]$ screen -ls
There are screens on:
	2502218.bioproject_mget	(Detached) #bin/bioproject_mget.rb 実行用 →exit 
	2484516.pts-1.cs9	(Detached) #bin/create_project_accessions.rb 実行用→ exit
	970717.mget_asm	(Detached) #ruby bin/mget_asm 実行用 → exit
	134111.pts-2.cs9	(Detached)　#oecさん？そのまま
```
* /data/genomeデータの配置の仕様の再確認
    * https://hackmd.io/hG_r4YW8TeGyGtWQ8ovHLA?view#genome-indexの入力データをcs9に配置--tf

* 現在のディレクトリ構成の確認
```
[mdb_dev@cs9 dataflow_prototype]$ tree /work1/mdatahub/public/genome/GCA/001/000/715/
/work1/mdatahub/public/genome/GCA/001/000/715/
└── GCA_001000715.1_ASM100071v1
    └── GCA_001000715.1_ASM100071v1_genomic.fna.gz
```
* dfast解析データの確認
```
[mdb_dev@cs9 MAGoutput_dfastqc_218655]$ cd /work1/mdatahub/repos/dataflow_prototype/dfast/MAGoutput_dfast_218655/
[mdb_dev@cs9 MAGoutput_dfast_218655]$ ls -la
合計 4
drwxr-xr-x. 14 mdb_dev mdb_dev 4096  7月  5 11:39 .
drwxr-xr-x.  3 mdb_dev mdb_dev   44  6月 16 13:55 ..
drwxr-xr-x.  3 mdb_dev mdb_dev   28  6月 16 13:57 GCA_under10Maa_02000_04000
lrwxrwxrwx.  1 mdb_dev mdb_dev   34  7月  5 11:37 aa -> dfast_GCA_under10M_dfast_1_2_19_aa
lrwxrwxrwx.  1 mdb_dev mdb_dev   34  7月  5 11:38 ab -> dfast_GCA_under10M_dfast_1_2_19_ab
lrwxrwxrwx.  1 mdb_dev mdb_dev   34  7月  5 11:38 ac -> dfast_GCA_under10M_dfast_1_2_19_ac
lrwxrwxrwx.  1 mdb_dev mdb_dev   34  7月  5 11:38 ad -> dfast_GCA_under10M_dfast_1_2_20_ad
lrwxrwxrwx.  1 mdb_dev mdb_dev   34  7月  5 11:38 ae -> dfast_GCA_under10M_dfast_1_2_20_ae
lrwxrwxrwx.  1 mdb_dev mdb_dev   34  7月  5 11:38 af -> dfast_GCA_under10M_dfast_1_2_20_af
lrwxrwxrwx.  1 mdb_dev mdb_dev   34  7月  5 11:38 ag -> dfast_GCA_under10M_dfast_1_2_20_ag
lrwxrwxrwx.  1 mdb_dev mdb_dev   34  7月  5 11:39 ah -> dfast_GCA_under10M_dfast_1_2_20_ah
lrwxrwxrwx.  1 mdb_dev mdb_dev   34  7月  5 11:39 ai -> dfast_GCA_under10M_dfast_1_2_20_ai
lrwxrwxrwx.  1 mdb_dev mdb_dev   34  7月  5 11:39 aj -> dfast_GCA_under10M_dfast_1_2_20_aj
lrwxrwxrwx.  1 mdb_dev mdb_dev   34  7月  5 11:39 ak -> dfast_GCA_under10M_dfast_1_2_20_ak
drwxr-xr-x.  3 mdb_dev mdb_dev   28  6月 19 09:33 dfast_GCA_under10M_dfast_1_2_19_aa
drwxr-xr-x.  3 mdb_dev mdb_dev   28  6月 19 17:50 dfast_GCA_under10M_dfast_1_2_19_ab
drwxr-xr-x.  3 mdb_dev mdb_dev   28  6月 19 22:12 dfast_GCA_under10M_dfast_1_2_19_ac
drwxr-xr-x.  3 mdb_dev mdb_dev   28  6月 20 11:34 dfast_GCA_under10M_dfast_1_2_20_ad
drwxr-xr-x.  3 mdb_dev mdb_dev   28  6月 20 14:59 dfast_GCA_under10M_dfast_1_2_20_ae
drwxr-xr-x.  3 mdb_dev mdb_dev   28  6月 21 09:10 dfast_GCA_under10M_dfast_1_2_20_af
drwxr-xr-x.  3 mdb_dev mdb_dev   20  6月 22 15:48 dfast_GCA_under10M_dfast_1_2_20_ag
drwxr-xr-x.  3 mdb_dev mdb_dev   28  6月 23 07:01 dfast_GCA_under10M_dfast_1_2_20_ah
drwxr-xr-x.  3 mdb_dev mdb_dev   28  6月 23 07:03 dfast_GCA_under10M_dfast_1_2_20_ai
drwxr-xr-x.  3 mdb_dev mdb_dev   28  7月  3 09:29 dfast_GCA_under10M_dfast_1_2_20_aj
drwxr-xr-x.  3 mdb_dev mdb_dev   28  6月 26 14:20 dfast_GCA_under10M_dfast_1_2_20_ak

[mdb_dev@cs9 MAGoutput_dfast_218655]$ tree aa/output/GCA_001000715.1_ASM100071v1_genomic.fna/
aa/output/GCA_001000715.1_ASM100071v1_genomic.fna/
├── application.log
├── cds.fna
├── ddbj
│   ├── mss.ann
│   └── mss.fasta
├── genbank
│   ├── genbank.fsa
│   └── genbank.tbl
├── genome.embl
├── genome.fna
├── genome.gbk
├── genome.gff
├── protein.faa
├── pseudogene_summary.tsv
├── rna.fna
└── statistics.txt
```
* dfastqc解析データの確認
```
[mdb_dev@cs9 MAGoutput_dfastqc_218655]$ pwd
/work1/mdatahub/repos/dataflow_prototype/dfastqc/MAGoutput_dfastqc_218655
[mdb_dev@cs9 MAGoutput_dfastqc_218655]$ ls -la
合計 4
drwxr-xr-x. 14 mdb_dev mdb_dev 4096  7月  5 11:40 .
drwxr-xr-x.  3 mdb_dev mdb_dev   46  6月 16 13:56 ..
lrwxrwxrwx.  1 mdb_dev mdb_dev   23  7月  5 11:39 aa -> dfastqc_GCA_under10M_aa
lrwxrwxrwx.  1 mdb_dev mdb_dev   23  7月  5 11:39 ab -> dfastqc_GCA_under10M_ab
lrwxrwxrwx.  1 mdb_dev mdb_dev   23  7月  5 11:39 ac -> dfastqc_GCA_under10M_ac
lrwxrwxrwx.  1 mdb_dev mdb_dev   23  7月  5 11:39 ad -> dfastqc_GCA_under10M_ad
lrwxrwxrwx.  1 mdb_dev mdb_dev   23  7月  5 11:39 ae -> dfastqc_GCA_under10M_ae
lrwxrwxrwx.  1 mdb_dev mdb_dev   23  7月  5 11:40 af -> dfastqc_GCA_under10M_af
lrwxrwxrwx.  1 mdb_dev mdb_dev   23  7月  5 11:40 ag -> dfastqc_GCA_under10M_ag
lrwxrwxrwx.  1 mdb_dev mdb_dev   23  7月  5 11:40 ah -> dfastqc_GCA_under10M_ah
lrwxrwxrwx.  1 mdb_dev mdb_dev   23  7月  5 11:40 ai -> dfastqc_GCA_under10M_ai
lrwxrwxrwx.  1 mdb_dev mdb_dev   23  7月  5 11:40 aj -> dfastqc_GCA_under10M_aj
lrwxrwxrwx.  1 mdb_dev mdb_dev   23  7月  5 11:40 ak -> dfastqc_GCA_under10M_ak
drwxr-xr-x.  3 mdb_dev mdb_dev   28  6月 17 18:11 dfastqc_GCA_under10M_aa
drwxr-xr-x.  3 mdb_dev mdb_dev   28  6月 17 18:13 dfastqc_GCA_under10M_ab
drwxr-xr-x.  3 mdb_dev mdb_dev   28  6月 17 21:49 dfastqc_GCA_under10M_ac
drwxr-xr-x.  3 mdb_dev mdb_dev   28  6月 18 09:07 dfastqc_GCA_under10M_ad
drwxr-xr-x.  3 mdb_dev mdb_dev   28  6月 26 15:13 dfastqc_GCA_under10M_ae
drwxr-xr-x.  3 mdb_dev mdb_dev   28  6月 30 10:25 dfastqc_GCA_under10M_af
drwxr-xr-x.  3 mdb_dev mdb_dev   28  7月  2 09:52 dfastqc_GCA_under10M_ag
drwxr-xr-x.  3 mdb_dev mdb_dev   28  6月 29 08:58 dfastqc_GCA_under10M_ah
drwxr-xr-x.  3 mdb_dev mdb_dev   28  6月 28 09:06 dfastqc_GCA_under10M_ai
drwxr-xr-x.  3 mdb_dev mdb_dev   28  6月 29 19:39 dfastqc_GCA_under10M_aj
drwxr-xr-x.  3 mdb_dev mdb_dev   28  7月  2 09:54 dfastqc_GCA_under10M_ak
drwxr-xr-x.  3 mdb_dev mdb_dev   28  6月 16 14:13 dfastqc_GCA_under10Maa_02001_04000

[mdb_dev@cs9 MAGoutput_dfastqc_218655]$ tree aa/output/GCA_001000715.1_ASM100071v1_genomic.fna/
aa/output/GCA_001000715.1_ASM100071v1_genomic.fna/
├── application.log
├── cc_result.tsv
├── checkm.log
├── dqc_result.json
├── marker.summary.tsv
├── markers.fasta
├── result_gtdb.tsv
├── target_genomes.txt
├── target_genomes_gtdb.txt
└── tc_result.tsv

```



## Togothon131 8/24-25
- [ ] 解析データの移動・変換などの処理系の確認と実施

- [ ] megapの解析結果10000件をcs9にコピー -hmori
- [ ] jsonへの変換プログラム実行と公開ディレクトリに配置 -oec
    - 出力パス生成ロジックの参考）https://github.com/microbiomedatahub/dataflow_prototype/blob/main/bin/mdatahub.rb#L12-L40

## 2023-08-23
* cs7の解析結果はcsvをcs9にコピー先、プロジェクトに紐づける処理系＋公開先をTogothonで決める
    * cs9:/work1/mdatahub/private/megap/　にcs7 もしくはスパコンからコピー
        * /work1/mdatahub/private/megap/53/*.csv
        * /work1/mdatahub/private/megap/54/*.csv 
    * jsonへの変換プログラムし、project毎のjsonデータを出力
        * cs9:/work1/mdatahub/public/project/PRJDB/002/PRJEB002054/
            * analysis_species.json
                * https://mdatahub.org/data/project/PRJEB002054/analysis_species.json
            * analysis_genus.json
            * analysis_family.json
            * analysis_phylum.json


    
*  csvからjsonへの変換プログラム(python)は、[大石さんのGitHubに存在](https://github.com/microbiomedatahub/dataflow_prototype/tree/main/bin/plotly)
*  内部でTogoIDのAPIを叩いてRun IDからBioProject ID・BioSample IDを紐付けている。
*  Metagenomeの系統組成について、1プロジェクトあたり、以下の4ファイルができる
        * analysis_species.json
        * analysis_genus.json
        * analysis_family.json
        * analysis_phylum.json
```
// プロジェクトの静的ファイルのディレクトリはBioProjectの数字部分を6桁に0埋め下した文字列を含みます。
// https://mdatahub.org/data/project/PRJEB009576/analysis_species.json
// 例えば、BioProject IDがPRJEB2054の場合、最終的な静的ファイルを含むディレクトリ名（PRJEB009576）は
// JavaScriptでは以下のように取得できます。
var bpid = "PRJEB2054"
var id_strings = bpid.match(/^([A-Z]{5})([0-9]+)$/)
var num_part = id_strings[2]
var dir_name = id_strings[1] + num_part.padStart(6, "0") 
```
*  グラフ表示の際のタブ名を決める(Species, Genus, Family, Phylum)
*  仕様書作成(TODO)

## Togothon 7/14
* MAG
    * DFAST&DFASTQCの結果からElasticsearchのindexに突っ込む（＝G. genome indexデータの以下の中身を確認およびDFAST/DFAST-QCの結果も取り込んで、更新する）- Environment, Host taxon, BioSamples, Data size (GB), Date Created
* Metagenome
    * 系統組成推定パイプライン完成。スパコンで計算実行中。
        * 使用メモリ30-40GB、実行時間数十分以内
        * Max 273,552 サンプル(run)
        * 現状1万サンプルくらいは計算完了
        * SRR1460118等のRun単位でファイルが存在
    * 系統組成はKraken2の結果のような出力(種-Domainまで1ファイル)
    * plotly用JSONのサンプルファイルをCS9に配置しました
        * https://mdatahub.org/data/project/PRJEB009576/analysis.json
        - https://mdatahub.org/data/project/PRJEB002054/analysis.json
    * plotly用JSONファイルをplotlyで取得するためにNginxにCORS設定を追加しました
    * https://github.com/microbiomedatahub/dataflow_prototype/tree/main/bin/plotly
    * jsonが無い場合もあるので、その場合の処理もする必要がある
    * 1プロジェクトあたり、以下の4ファイルができる
        * analysis_species.json
        * analysis_genus.json
        * analysis_family.json
        * analysis_phylum.json
* elasticsearch設定 
    * aliasの永続化
        * 1. mdatahub_project.json、mdatahub_genome.jsonファイルとしてtemplateを作る
            * https://discuss.elastic.co/t/index-alias/207991/2
        * 2. curlでESにロードする
            * `curl -H "Content-Type: application/json" -XPUT localhost:9200/_template/mdatahub_project -d @mdatahub_project.json`
            * `curl -H "Content-Type: application/json" -XPUT localhost:9200/_template/mdatahub_genome -d @mdatahub_genome.json`
        * 3. indexを入れ直す
        * 4. dataflow_prototypeにjsonをコミットしてやり方を記載する
        * (上記でダメな場合は、/usr/share/elasticsearch/config/elasticsearch.ymlファイルwのホストでの永続化を検討する) → docker/elasticsearch/elasticsearch.yml ですでに永続化されていた
        
```
## mdatahub_project.json　叩き台
{
  "index_patterns": ["bioproject"],
  "aliases": {
    "project": {}
  }, 
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 0,
    "max_result_window": 300000
  }
}

## mdatahub_genome.json
{
  "index_patterns": ["genome"],
  "aliases": {
    "project": {}
  }, 
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 0,
    "max_result_window": 300000
  }
}

# 設定の確認方法
curl localhost:9200/_component_template |jq
curl localhost:9200/_template |jq
curl localhost:9200/_template/general_template
curl localhost:9200/_template/general_template |jq
curl localhost:9200/_index_template |jq
curl localhost:9200/_aliases|jq

```

    * MDB v3の例
 ```
 [mdb_dev@cs9 20210222]$ ls -l $PWD/facet_sample_template_2019_11_25_1.json
-rw-r--r--. 1 19454 19454 6574  2月 22  2021 /work1/MDB/data/text_search/20210222/facet_sample_template_2019_11_25_1.json
[mdb_dev@cs9 20210222]$ curl -H "Content-Type: application/json" -XPUT localhost:19200/_template/facet_sample_template -d @facet_sample_template_2019_11_25_1.json
```



## BioHackathon 2023中のフィードバック 7/7
* SlackでのC(projectと同様にgenomeページネーションの最後が空になっている問題: サイズ)とF(APIのbioprojectをprojectに変更する)の永続化についてTogothonで検討
    * もしかするとDの対応(返却するJSONをprojectに合わせる)が影響している可能性もある

## BioHackathon 2023
* 2023 6/28
* INSDCからかき集めた色々な環境からの21万MAGのDFAST、CheckM、GTDB-Tk完了。
* MAG精度評価
    星　contamination, completeness, sequence number, rRNA gene
    * contamination <10(%)
    * completeness >60(%)
    * sequence number <30
    * rRNA gene number >2

* DFAST
    * statistics.txt
Total Sequence Length (bp)      2743039
Number of Sequences     101
Longest Sequences (bp)  148094
N50 (bp)        51383
GCcontent (%)   58.4
Number of CDSs  2357
Number of rRNAs 0

* DFASTQC
    * cc_result.tsv
Bin Id  Marker lineage  # genomes       # markers       # marker sets   0       1       2       3       4       5+      Completeness    Contamination   Strain heterogeneity
query   Prokaryote (-1) 5656    56      24      4       49      3       0       0       0       92.59   5.09    33.33
右から2つめと3つめがCompletenessとContamination

    * result_gtdb.tsv
accession       gtdb_species    ani     matched_fragments       total_fragments gtdb_taxonomy   ani_circumscription_radius      mean_intra_species_ani  min_intra_species_ani    mean_intra_species_af   min_intra_species_af    num_clustered_genomes   status
GCA_900321275.1 s__Limivicinus sp900321275      100.0   857     862     d__Bacteria;p__Firmicutes_A;c__Clostridia;o__Oscillospirales;f__Oscillospiraceae;g__Limivicinus 95.0     97.70   95.66   0.85    0.80    7       conclusive

左から2列目のgtdb_species	s__Limivicinus sp900321275
左から6列目のgtdb_taxonomy
d__Bacteria;p__Firmicutes_A;c__Clostridia;o__Oscillospirales;f__Oscillospiraceae;g__Limivicinus


* 2023 6/29
    * NAR投稿TODO
        * NAR DB issue editorにメールを書いた。6/30に送った。 -hmori
        * コンテンツページの叩き台とURLを決めてリンクを変更依頼 -tf
        * ヘルプ・コンテンツを書く -hmori
        * genome検索、詳細ページを仕上げる - all







## Togothon129
* Plotlyの結果の生成
    * 解析結果の配置はRunごとにSRR RunIDファイルを配置する -hm
        * /work1/mdatahub/repos/dataflow_prototype/megap/20230616/
    * pythonスクリプト実装 -oec
        * 入力：/work1/mdatahub/repos/dataflow_prototype/megap/20230616/
        * 出力：/work1/mdatahub/repos/dataflow_prototype/megap/20230616/output/
            * /work1/mdatahub/repos/dataflow_prototype/megap/20230616/output/[project_id]/analysis.json
            * /work1/mdatahub/repos/dataflow_prototype/megap/20230616/output/[project_id]/analysis-status.json
        * RUN→BioSample→BioProjectの関連づけ
        * 結果のBioProject単位マージとJSON変換
        * Plotlyが解釈できる情報としてproject単位status情報を出力する（解析済みの値あり:ANALYSIS_DONE_VALUE_EXIST、解析済み値なし: ANALYSIS_DONE_VALUE_NA、未解析:NO_ANALYSIS、ファイルサイズ0: FILESIZE_ZERO）
            * projectごとにanalysis.json
                * {"status": "true|false|na"}

    * public/project配下のディレクトリコピーするrubyスクリプト実装 -tf
* dfast/dfastqc#ishii 質問
    * dfast, dfastqcの結果ディレクトリの名前が現在両方ともoutputなのですが、なにか配置時にわけるひつようがありますか？
        * GCA_under10Maa_02000_04000とかの部分が、dfastとdfastqcそれぞれで同じに置いてあれば良い。
            * コピー先は、`genome indexの入力データをcs9に配置`　にある
            * おわったものをはじからコピーしていく。
    * 移した後、けしてもよいですか？
        * たくさん持っていると、クォータにひっかかる（かもしれない、結果がとれたものは、中間ファイルを消しておりそれからはクォータにひっかかっていない。）
* MAGの表示ページ
    * 項目ごとに、星がつく、つかないの加点方式(この４つは硬い)、LODのような名前をつけるMOD（MAG-Optimal-Data？
        * コンタミネーションレートdfastqc
            * 10%以下が星１つ。
                * １０%以上は、だめだろう。
        * コンプリートネスdfastqc
            * 60%以上が星１つ。
                * 厳しい人80%、もう１つ
        * 配列の本数、数十は星１つ、数百は０、理想は１（dfast）。
            * 配列３桁以上は、星０
            * 配列が２桁以下なら、星１。
                * 一桁の場合は、すごいよいか、すごくだめかであるが、とりあえず１。
        * rrnaが０じゃないと、星をつけない。
            * ０なら星がつく。dfast
    * あとは、環境でひとつか



## 6/16 開発ミーティング&
* 進捗
    * 新規データ投入の整理と単純化および2023-06-12時点での全件データ反映 -tf
* フィードバック
    * sample_count → BioSample件数表示
    * ページネーションの最終ページが空
        * https://mdatahub.org/projects?page=10218&sort=dateCreated-

## 6/12-15
### project毎にIDに0埋めした固定長ディレクトリを作成と配置先見直す -tf (Done 6/12)
* ディレクトリ作成と移動のためのスクリプトを作成して実行した
    * [bin/rebuild_directory_project.rb](https://github.com/microbiomedatahub/dataflow_prototype/blob/main/bin/rebuild_directory_project.rb)
        * acc2pathメソッドを再利用のためbin/mdatahub.rb外部ファイル化
### project index再作成とES投入 -tf (On-going 6/13)
* 可能な限りスクリプトを統合し、最新のbioprojec.xmlからmicrobiomeプロジェクトのみを取得し、indexを作成する
    * [bin/bioprojectxml2json.rb](https://github.com/microbiomedatahub/dataflow_prototype/blob/main/bin/bioprojectxml2json.rb)
        * bioproject.xmlからESロード用jsonl変換（6/12動作確認）
    * [bin/bioproject_plus.rb](https://github.com/microbiomedatahub/dataflow_prototype/blob/main/bin/bioproject_plus.rb)
        * annotation追加処理、入出力ともにESロード用jsonl
    * [bin/mget_bioproject](https://github.com/microbiomedatahub/dataflow_prototype/blob/main/bin/mget_bioproject)
        * perlからrubyに書き換え（Done 6/12)
        * microbiomeのbioproject_accessionsリストを取得（Done 6/12）
            * 93910件 project_accessions-20230314
            * 102176件 project_accessions-20230612
    * [bin/mget](https://github.com/microbiomedatahub/dataflow_prototype/blob/main/bin/mget)
        * bioproject_accessionsごとの.xml, -biosampleset.xml .dblinkを取得
            * そもそもperlスクリプトだったので、acc2pathメソッドを再利用してrubyに書き直し→ [bin/bioproject_mget.rb](https://github.com/microbiomedatahub/dataflow_prototype/blob/main/bin/bioproject_mget.rb)（Done 6/13）
            * 最新の差分データ取得 （XMLのデータ形式が変わっている可能性を考慮してあとにする（6/14 On-going）
                * screen -S bioproject_mget で以下を実行
                * `ruby bin/bioproject_mget.rb project_accessions-20230612 /work1/mdatahub/public/project`
    * create_indexes.rbスクリプト作成(6/14 Done)
        * 仕様：bioprojectxml2json.rbとbioproject_plus.rbの統合
        * 仕様：bioproject_accessions (102176件) かつ `/work1/mdatahub/public/project/` にデータ取得されたaccessionsがindex対象
        * 検討：projectとgenomeのindexを一緒に作った方がよいかもしれない
        * working directory: /work1/mdatahub/repos/dataflow_prototype
        * 入力: bioproject.xml (bioproject-20230612.xml)
        * 入力: project_accessions (project_accessions-20230612)
        * 入力: /work1/mdatahub/public/project/
            * ln -s /work1/mdatahub/public/project で対応
        * 出力: mdatahub_index_project.jsonl (mdatahub_index_project-20230612.jsonl)
    * ESに投入（6/14 Done）
        * `/work1/mdatahub/repos/dataflow_prototype/mdatahub_index_project-20230612.jsonl`
            * 102174/102176件
            * PRJDB11833, PRJDB15377, 2件分足りないのは公開ファイルとEntrez Directが叩くAPIのタイムラグ？
    * TODO: 入力データ配置後にcreate_indexes.rbスクリプト拡張後、ES投入（次回の合宿？）
        * genome_count、has_analysis
            * [bioproject_plus.rb#L489-L505](https://github.com/microbiomedatahub/dataflow_prototype/blob/main/bin/bioproject_plus.rb#L489-L505) のあたり
        * data_sizeの反映
        * genome index作成
        * ES投入

* 実装やテストデータを整理してREADME.mdを更新して、ES投入までの操作手順を記載する(6/14 On-going)
    * [README.md](https://github.com/microbiomedatahub/dataflow_prototype/blob/main/README.md)に記載

### genome indexの入力データをcs9に配置 -tf
* 仕様の確認
    * https://hackmd.io/hG_r4YW8TeGyGtWQ8ovHLA?view#517-進捗
* Assembly mirror 配列ヘッダーの確認
    * ``>LCMR01000001.1 MAG: Candidatus Azambacteria bacterium GW2011_GWD2_46_48 UX56_C0001, whole genome shotgun sequence`

* dfast_qc結果の一部をcs9にコピーする（6/16）
    * `mkdir -p dfastqc/MAGoutput_dfastqc_218655/dfastqc_GCA_under10Maa_02001_04000`
    * `scp -r /home/manabu/work/MAG/cwl/MAGoutput_dfastqc_218655/dfastqc_GCA_under10Maa_02001_04000/output cs9:/work1/mdatahub/repos/dataflow_prototype/dfastqc/MAGoutput_dfastqc_218655/dfastqc_GCA_under10Maa_02001_04000/`
        * dqc_result.json のみまずは利用
* dfast結果の一部をcs9にコピーする
    * `mkdir -p dfast/MAGoutput_dfast_218655/GCA_under10Maa_02000_04000`
    * `scp -r /home/manabu/work/MAG/cwl/MAGoutput_dfast_218655/GCA_under10Maa_02000_04000/output cs9:/work1/mdatahub/repos/dataflow_prototype/dfast/MAGoutput_dfast_218655/GCA_under10Maa_02000_04000/`
        * genome.fnaのヘッダーは`>sequence01` なのでassembly由来の解析には利用しない
        * statistics.txt のみまずは利用
* TODO: データ配置の処理スクリプトを作成する
    * NCBI genomesのミラーデータを起点からディレクトリ名、配列ファイル名を変更
    * DFASTおよびDFAST-QCをディレクトリに格納
    * MAG　BioSample.xmlを取得
    * genome.jsonを作成する

```
genomes
├── ASSEMBLY_REPORTS
│   ├── CheckM_report_prokaryotes.txt
│   ├── assembly_summary_genbank.ttl
│   ├── assembly_summary_genbank.txt
│   ├── assembly_summary_refseq.ttl
│   └── assembly_summary_refseq.txt
└── all
    ├── GCA
    │   ├── 000
    │   │   ├── 192
    │   │   │   ├── 595
    │   │   │   │   └── GCA_000192595.1_ASM19259v1
    │   │   │   │       └── GCA_000192595.1_ASM19259v1_genomic.fna.gz
    │   │   │   └── 615
    │   │   │       └── GCA_000192615.1_ASM19261v1
    │   │   │           └── GCA_000192615.1_ASM19261v1_genomic.fna.gz
    │   │   ├── 205
    │   │   │   ├── 145
    │   │   │   │   └── GCA_000205145.2_ASM20514v2
    │   │   │   │       └── GCA_000205145.2_ASM20514v2_genomic.fna.gz
    │   │   │   ├── 525
    │   │   │   │   └── GCA_000205525.2_ASM20552v2
    │   │   │   │       └── GCA_000205525.2_ASM20552v2_genomic.fna.gz
    │   │   │   └── 985
    │   │   │       └── GCA_000205985.2_ASM20598v2
    │   │   │           └── GCA_000205985.2_ASM20598v2_genomic.fna.gz

```

### メタゲノム系統組成推定パイプライン作成と計算実行 -hm
* ショットガンメタゲノムからk-mer組成で高速に系統組成を計算するプログラムの選定
    * [STAT](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8450716/)
    * 
* 系統組成推定パイプラインの構築
### ウェブコンテンツの用意と配置
* レポジトリを作成して、コンテンツの用意 -hm
    * [webcontents](https://github.com/microbiomedatahub/webcontents)
* cs9にhtmlレンダリングしたコンテンツを配置する -tf

### nginxの設定 - dogrun

### 差分追加の検討
* efilterで絞る
    * https://www.ncbi.nlm.nih.gov/books/NBK179288/#_chapter6_Searching_and_Filtering_
## 6/7 ディレクトリ階層とアクセスアクセスURLの確認
### 現状
```
── PRJDA
│   ├── 046
│   │   ├── PRJDA46243-biosampleset.xml
│   │   ├── PRJDA46243.dblink
│   │   └── PRJDA46243.xml
│   ├── 053
│   │   ├── PRJDA53873-biosampleset.xml
│   │   ├── PRJDA53873.dblink
│   │   └── PRJDA53873.xml
│
```

### ディレクトリ構成
* 現状: `PRJDA/046/PRJDA46243.xml`
* 変更： `PRJDA/046/PRJDA046243/PRJDA46243.xml`
* URL: https://mdatahub.org/data/project/PRJDA46243/
  * TODO: project毎にIDに0埋めした固定長ディレクトリを作成する -tf → 6/12 Done
      * https://mdatahub.org/data/project/PRJDA/046/PRJDA046243/PRJDA46243.xml
  * TODO: nginxの設定 -dogrun

### 配置先がおかしい例
* 現状: `PRJDB/998/PRJDB9987.xml`
* 変更： `PRJDB/009/PRJDB009987/PRJDB9987.xml`
* URL: https://mdatahub.org/data/project/PRJDB009987/
  * TODO: 配置先見直す -tf → 6/12 Done
      * * https://mdatahub.org/data/project/PRJDB/009/PRJDB009987/PRJDB9987.xml


## 5/26
* プロジェクト全件投入後の対応
    * ヒット件数10000はESデフォルト値で頭打ちしている
        * elasticsearch.ymlで正しいヒット件数表示できるように設定変更 -oec
    * Data createdで古い順にソートすると、微生物以外のtomatoやMelanomaなどの対象外のプロジェクトが結構混ざっているのがわかる。
        * 現在のmdatahub_project_20230420.jsonlが252846件含まれているので、作り直す-tf
    * ページネーションの表示があふれている
        *　slackでまとめて対応依頼 oec->info-lounge
    * ページネーションでページ遷移時に検索条件が引き継げていない
        * slackでまとめて対応依頼　info-lounge
    * 詳細ページの表示不具合　（例）https://mdatahub.org/projects/PRJNA385852
        * 原因調査と対策を検討する、plotlyデータがない場合？ 　微生物以外のProjectの場合にこの問題が生じるっぽい。
    * Temparature, pHが機能していない
        * 原因調査を依頼 - info-lounge
    * Date publishedでソートしても2023年がない
        * 原因調査を依頼 - info-lounge,JSでソートしている？Elsticsearchのsearch APIのクエリーDSLで指定して検索表示自体をソートしてあげる必要があるかも
* genome全件データ
    * 石井さんにDFAST, DFAST-QCの結果を実行し共有
        * /home/manabu/work/MAG/cwl/MAGoutput_dfast_218655/GCA_under10Maa_02000_04000/output/
        * DFAST-QC実行後パスを伝える -manabu
    * cs9にデータコピーしbiosample.xml＋DFAST/DFAST -tf
* plotlyの表示
    * shotgunデータについて解析実行し、cs9:/work1/mdatahub/public/dev/analysis全件の解析結果を配置する -hmori
    * project ID毎のディレクトリに解析結果の配置と、サンプル数50件以下のプロジェクトのplotly入力JSONを配置する -oec
* parser
    * bioprojectパーサーgem化中で公開予定 -oec
    * assembly/MAGのbiosampleの同様のパーサーも準備 -oec


　










## 5/17 進捗

### https://mdatahub.org/data のデータ配置整理 [On-going] -tf
* 既存データはdev配下に移動
* /work1/mdatahub/public/project にxmlをmv
    * TODO: project単位でディレクトリを作成する
* /work1/mdatahub/public/genome 配下に genomic_fna.gz をcp -aR
    * TODO assembly_nameを含むディレクトリおよびファイルをrenameする
        * GCA/000/192/595/GCA_000192595.1_ASM19259v1/GCA_000192595.1_ASM19259v1_genomic.fna.gz
        * GCA/000/192/595/GCA_000192595.1/GCA_000192595.1.fna.gz
    * TODO: nginx(sc9:5000)でrewrite設定　
        * project/PRJNA13694 → project/PRJNA/013/PRJNA13694 
        * genome/GCA_000192595.1 → genome/GCA/000/192/595/GCA_000192595.1
### 最新のESロード用データ配置　-tf
* project
    * /work1/mdatahub/public/dev/mdatahub_project.jsonl 配置
        * mv /work1/mdatahub/repos/dataflow_prototype/mdatahub_bioproject.jsonl ../../public/dev/mdatahub_project_20230420.jsonl
        * ln -s mdatahub_project_20230420.jsonl mdatahub_project.jsonl
    * 投入まだでしたらES投入お願いします。 tf→oec
* genome
    * /work1/mdatahub/public/dev/mdatahub_genome.jsonl 作成　[TODO]
        * 入力のdfast/dfast-qc解析cwl実行中 -ishii [On-going]
        * biosample/assemblyからgenomeメタデータjsonを作成 [On-going]
```
[mdb_dev@cs9 public]$ mv ../repos/dataflow_prototype/bioproject project
[mdb_dev@cs9 public]$ cd project/
[mdb_dev@cs9 project]$ pwd
/work1/mdatahub/public/project
[mdb_dev@cs9 project]$ cd ../../repos/dataflow_prototype/
[mdb_dev@cs9 dataflow_prototype]$ ln -s /work1/mdatahub/public/project bioproject
```

## Togothonで確認・相談すること
* 環境に入れて、現在のテストデータ環境を別途作って残すか？このまま全件いれてしまうか？（森、藤澤、大石） →このまま入れる
    * production: https://mdatahub.org/api/
    * staging: https://xxx.mdatahub.org/api/
    * productionに全件データを格納する
* genomeの名前空間を決める
    * genome-insdc-assembly
    * genome-refseq
    * genome-tpa
    * genome-sra
    * genome-mgnify
    * genome-mdatahub

* cs9:/work1/mdatahub/data配下のディレクトリ構成について（森、藤澤、大石）
    * project, genomeには、ゴールとなるファイルだけおく
        * プロジェクト単位の解析データはprojectにおく
        * 配列、DFAST-QC解析データgenomeにおく
        * genomeのID体系を決めれる？当面はAssembly IDのみ
        * project単位で束ねる場合、project配下に移動する
    * テストや各種取得・変換した入力データ、検索インデックスロード用ファイルなど更新の別ディレクトリを用意する
        * tags, tests, releases, current
* bioproject_0313.jsonlのcs9での作り方は？（大石、藤澤）
* メタ16S系統解析Plotlyデータ配置とES投入（森、藤澤、大石）
* 今年度の案件化（森、大石、（藤澤））
* bioproject, project, study問題（森、藤澤）
    * bioproject以外も扱うなら...
* 更新に適したパスを考えておく（森、藤澤、大石）
    * 外部取得ファイルとその取得方法の管理
        * bioproject.xml
        * assembly_summary_genbank.txt
        * assembly_summary_refseq.txt
        * SRA_Accessions.tab
        * RUN_Accessions.tab
        * NCBITaxMEOEnvo.tsv
    * 中間ファイルを含む最終生成物データ投入方法の管理
        * mdatahub-bioproject-summary.txt
        * mdatahub-bioproject.jsonl
        * mdatahub-genome.jsonl
* DFAST-QC WorkflowのMAG20万件の実行とCWLの使い方ドキュメント（森、藤澤、石井、（谷澤））
* MDatahub/Togogenome 微生物ゲノムリファレンスのDFAST-QC実行とDFAST-QCリファレンス整備（森、谷澤、藤澤）


```
/work1/mdatahub/public/
├── genome
│   └── PRJDB11811
├── projecの
│   ├── bioproject_0204.jsonl
│   ├── bioproject_0313.jsonl
│   └── bioproject_plus_31.jsonl
└── test_dfast_qc
    └── PRJDB11811
```

## MDatahubリリース準備合宿
* 2023-04-18~19
* hmori, tf

### BioProjectデータモデル変更・拡張と全件検索データ作成
#### 1. Elastic Searchでの検索クエリの都合、データモデルの調整のご相談 sample_temperature, sample_phのmin, maxとモデル変更とNumeric field types　+  null_value対応 [Done]
* https://www.elastic.co/guide/en/elasticsearch/reference/7.17/null-value.html
* null_valueは全件レコードで確認する。
#### 2. genome index: data source": "INSDC"   ← `dataSource` もしくは `data_source` にしていただきたい [Done]
* `data source` → `data_source`,`data type` → `data_type` で対応
    * dateCreatedはschema.orgにあわせてcamel classで混在問題
#### 3. 解析済の複数のMAG DFAST-QC集計結果の反映 [Done]
* 以下の２つ対応
    * `_annotation.genome_count`: 11
    * `has_analysis`: true
* PRJDB11811 でテストしたが、スピードは課題
    * ###mdatahub.org/data/test_dfast_qc/PRJDB11811/OceanDNA-a1015/dqc_result.json
    * ###mdatahub.org/data/test_dfast_qc/PRJDB11811/OceanDNA-a1024/dqc_result.json
    * ###mdatahub.org/data/test_dfast_qc/PRJDB11811/OceanDNA-a1023/dqc_result.json
    * ###mdatahub.org/data/test_dfast_qc/PRJDB11811/OceanDNA-a1022/dqc_result.json
    * ###mdatahub.org/data/test_dfast_qc/PRJDB11811/OceanDNA-a1025/dqc_result.json
    * ###mdatahub.org/data/test_dfast_qc/PRJDB11811/OceanDNA-a1001/dqc_result.json
    * ###mdatahub.org/data/test_dfast_qc/PRJDB11811/OceanDNA-a1020/dqc_result.json
    * ###mdatahub.org/data/test_dfast_qc/PRJDB11811/OceanDNA-a1027/dqc_result.json
    * ###mdatahub.org/data/test_dfast_qc/PRJDB11811/OceanDNA-a1026/dqc_result.json
    * ###mdatahub.org/data/test_dfast_qc/PRJDB11811/OceanDNA-a1017/dqc_result.json
    * ###mdatahub.org/data/test_dfast_qc/PRJDB11811/OceanDNA-b27144/dqc_result.json
#### 4. BioProject- BioSample - Assembly_summaryのMAG ID　(Assembly ID )+ genome_属性およびMAG配列ファイルパスの情報追加 [Todo:4/20予定]
* 調査・検討：assembly_summary_genbank.txt/derived from metagenome 215,234件（2023-03-24時点）
    * https://docs.google.com/presentation/d/1gy7a4f5aSAvMi9BOk4zVWHc1OJf_xI6Lfp3migy0ld8/edit#slide=id.g22388073539_8_0
        * GCA_000205525.2	PRJNA60717	SAMN02954256	https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000/205/525/GCA_000205525.2_ASM20552v2	contaminated; derived from metagenome; genome length too large
    * assembly_summary_genebank.txtのMAGレコードを独立してgenome用JSONを変換してElasticsearchにロードしてBioProjectで検索やElasticsearch GET API経由で参照できるようにする
    * genome用JSONのデータモデルを決め切るのはむずかしいので、とりあえず、_annotationにassembly_summaryの項目を全部突っ込む
        * INSDC-Primary由来: assembly_summary由来
        * INSDC-TPA由来:
        * INSDC-SRA-analysis由来
        * MGnify由来
        * mdatahub由来
    * 新規公開MAGを取得する更新系を考慮して、JSON変換+ESロードと配列取得をまとめて実行する
        * 配列取得
        * DFAST-QC実行
        * JSONロード
    * genomes配下のディレクトリ構成を考える
        * とりあえずNCBIの階層でゲノム配列（_genomic.fna.gz）だけ取得する
* Input：assembly_summary_genbank.txt
    * https://ftp.ncbi.nlm.nih.gov/genomes/ASSEMBLY_REPORTS/assembly_summary_genbank.txt
* Process：以下の情報を取得
    * BioProject-BioSample-Assembly ID
    * BioSample-Assembly summary (WGS等)対応
    * Assembly summary-MAG配列 対応
* Output: 
    * `_annotation.genome_count`の件数をこちらから取得に変更
    * _annotation.genomes: `[{id: GCA_000192595.1, data_source: 'INSDC`, }]`
* Microbiome BioSampleとMAG BioSampleを区別してsample_属性値の対象を絞る

#### 5.全件データ生成
* エラーで

#### 6. SRA Runデータ件数およびファイルサイズの集計と"data_size":"0.0 GB" → 正しい値に変更
* 新たにSRA_accessions.tab入力
    * これは大石さんがDBCLS SRA Searchですでにやってそう

#### 7. ResSeqのBioProject ID:PRJNA224116とレコードを追加する
* https://www.ncbi.nlm.nih.gov/bioproject/224116
* 1:BioProject-N:MAGの構成に揃えて、Microbiome BioProjectの更新系とは別に１:BioProject-18442:Genome レコードを用意する
* 対象fastaを入力にDFAST-QC workflowを実行する
* TogoGenomeで対応してもらったassembly_summary_refseq.txt/assembly from type materialとの対応関係は一致している？
    * https://docs.google.com/presentation/d/1WImru_uNhlLSwX6IH0QDfsViq2pRpS9P8-N_qH3x28c/edit#slide=id.g1481e1db3ba_0_0
* sample_属性などすべてnull_valueにする？

#### 8. ファセットメニューの詳細検索画面で Environment のリストを表示するような構成になっており、APIもしくはJSONで
1. Environment のリスト
2. ...

#### 9. Plotlyグラフ用メタゲノム系統組成テストデータ
1. 15カ国15 BioProjectのそれぞれ50サンプルのヒト腸内メタゲノムデータについて、属組成をサンプルごとに計算してTSVファイルにした
2. 各サンプルファイル名はSRR1805054などのRun IDが入っている
3. ファイルサイズは782KBのデータ


---

## MDatahub開発合宿
* 2023-03-12~14
* hmori, tf, oec, ishii,
* 事務的な日程表 https://hackmd.io/4GqetSGESCW6MACe9JxeLw
### 合宿まとめ
> 3/15 Info-lounge開発ミーティング向け 
* 環境構築ほぼ完了
    * cs8:443 (nginx) mdatahub.org) -> cs9:5000 (nginx) 
        * cs9:4001 https://mdatahub.org/api/bioproject/_doc/PRJNA192445
        * cs9:/work1/mdatahub/public https://mdatahub.org/data/
        * https://mdatahub.org → cs9:xxxx (front-app)　#front_appのポート番号を確認する
    * inforoungeさん用、mdb_dev以外のアカウント(infor)を作成完了、mdb_devグループ追加済み。inforoungeさんには3/15の打ち合わせ時に連絡予定
* genome検索・表示
    * API
        * https://mdatahub.org/api/genome/_doc/PRJDB11811_OceanDNA-a1001
        * https://mdatahub.org/api/genome/_search?q=hogehoge
    * 検索データの説明
        * https://www.evernote.com/shard/s1/client/snv?isnewsnv=true&noteGuid=96535ded-96fb-566f-e348-dd4102541465&noteKey=9ByUo4UumyXIaABKN6VZ2qpb0RYOef0l_m3r4W3J7_2y63DyQFToXU7Rhg&sn=https%3A%2F%2Fwww.evernote.com%2Fshard%2Fs1%2Fsh%2F96535ded-96fb-566f-e348-dd4102541465%2F9ByUo4UumyXIaABKN6VZ2qpb0RYOef0l_m3r4W3J7_2y63DyQFToXU7Rhg&title=MAG%25E6%25A4%259C%25E7%25B4%25A2%25E3%2583%2587%25E3%2583%25BC%25E3%2582%25BF%25E6%25A4%259C%25E8%25A8%258E
    * テストデータ
        * https://github.com/microbiomedatahub/dataflow_prototype/blob/main/mdatahub_genome_test.jsonl
    * 
* project検索・表示
    * 

### 来年度のTODO
* cs8の代わりとなる本番新サーバを購入する 
* 追加のMAGデータ解析および検索拡張、MAG詳細ページ表示
    * GO組成
    * MBGDクラスターIDアサイン後に提示できるもの
    * Phenotype推定
* GO組成を含むリファレンスゲノム情報整備（TogoGenome/Reference, NITE)　#RefSeq/GOリリース後

### Goalの確認: MAGの検索および詳細ページ要素の作成
> 2/14の今後のTODOから終わってないものをピックアップしてマージした
* 環境構築＆データ配置
    * cs9セットアップ　-hmori [3/12Done]
        * 合宿後にcs9のデータバックアップ /work1, /work2 /homeなど、rsyncできるならする。
        * バックアップ完了後、cs9に新しいOSインストールする 
        * データバックアップしてAlmaLinux 9.1をcs9にインストールし、データを配置済み
    * fs2経由でcs9にmdb_devで全員がアクセスを確認する [3/12Done]
    * /home/manabu/work/MAG/cwl/MAGoutput/116_no_hmm_no_cdd/output を /work1/mdatahub/public/genome/PRJDB11811 に配置 - ishii [3/12Done]
    * dfast_qcの結果を/work1/mdatahub/public/test_dfast_qc/PRJDB11811　- ishii
    * /work1/mdatahub/public/project にbioproject検索データを配置する -oec [3/12Done]
    * /work1/mdatahub/app/ddbj-ld-proxyにAPIサーバを立てる - oec  [3/12Done]
    * cs9:5000にnginxを立てる -oec [3/12Done]
    * cs8のnginxの設定 -tf [3/13Done]
        * http://mdatahub.org → cs9:5000 (nginx)で設定した。
        * cs8:nginxgでmdatahub.orgのSSL証明設定, certbotを入れ直した方がよいかも。
            * `service nginx stop`
            * `certbot certonly --standalone -d mdatahub.org -d microbedb.jp`
            * `certbot --nginx -d mdatahub.org -d microbedb.jp`
            * conf.d/microbedb.jp.confの設定見直し
            * `service nginx start`
            * multi domain SSL証明に更新して、以下共存で、アクセス可能になりました。
                * https://microbedb.jp
                * https://mdatahub.org/api/bioproject/_doc/PRJNA192445
                * https://mdatahub.org/data/
    * docker-composeの設定で、以下を振り分ける設定 -oec  [3/13Done]
        * https://mdatahub.org/api → cs9:4001 (ddbj-ld-proxy)
        * https://mdatahub.org/data → cs9:/work1/mdatahub/public/
    * inforoungeさんにはmdb_dev以外のアカウントを作成して、mdb_devグループに入れてファイルを共有する -hmori　[3/13Done]

* MAG解析ワークフローの拡張と更新系（DFAST, DFAST-QC）- ishii
    * DFAST-QCのCWL化
    * DFAST-QCはFastANIのreferenceを-rで指定して実行。種レベルでマッチした場合に系統名がつく。属名やphylum名等はつかない。種名がわからなければunassignedになる。最終版はそれではまずいが、GTDB-tkに後で置き換えれば良いので、とりあえず今はそれで良い。使うCPU数は1で良く、メモリも4GBで良さそう。
    * FastANIのreferenceはスパコン上にある /gpfs1/dpl0/ddbjshare/public/ddbj.nig.ac.jp/dfast/dqc_reference

* MAG検索およびMAG詳細ページ要素のテストデータ作成と可視化開発
    * DFAST statistics.txtテストデータ作成 　-ishii [3/12Done]
        * テストデータ: https://mdatahub.org/data/genome/PRJDB11811/
    * DFAST_QC（ANI,CheckM実行を含む）結果出力 -ishii [3/13Done]
        * https://mdatahub.org/data/test_dfast_qc/PRJDB11811/OceanDNA-b27144/dqc_result.json
        * CheckMはメタゲノム用なので、DFASTのワークフローに含められるとMAGの精度評価が出来るので良い
        * DFAST-QC　https://github.com/nigyta/dfast_qc
            * JSONで結果が返る (completeness, contamination, strain_heterogeneity) 
    * high-quality MAG,low-quality MAGの評価定義 -hmori　[3/13Done]
        * MAG High quality = completeness ≥60% & contamination rate ≤10%
        * MAG Low quality = 上記の基準以下
    * MAG検索インデックスの検討 -tf [3/13Done]
        * 検索項目の確認とデータモデル設計
        * https://www.evernote.com/shard/s1/client/snv?isnewsnv=true&noteGuid=96535ded-96fb-566f-e348-dd4102541465&noteKey=9ByUo4UumyXIaABKN6VZ2qpb0RYOef0l_m3r4W3J7_2y63DyQFToXU7Rhg&sn=https%3A%2F%2Fwww.evernote.com%2Fshard%2Fs1%2Fsh%2F96535ded-96fb-566f-e348-dd4102541465%2F9ByUo4UumyXIaABKN6VZ2qpb0RYOef0l_m3r4W3J7_2y63DyQFToXU7Rhg&title=MAG%25E6%25A4%259C%25E7%25B4%25A2%25E3%2583%2587%25E3%2583%25BC%25E3%2582%25BF%25E6%25A4%259C%25E8%25A8%258E
    * ID体系を確定する - hmori [3/13Done]
        *  ID体系はとりあえず、Projectとラベルをアンダースコアで結合
            * PRJDB11811_OceanDNA-a1001 (BioProject/accession_BioSample/sample_name)
    * MAGデータ取得方法の検討とMAG検索index作成 -tf [3/14初期データ作成]
        *  BioProject→ BioSample(s) → Trad
            * Ocean MAGテストデータは論文から取得していた
                * https://springernature.figshare.com/collections/The_OceanDNA_MAG_catalog_contains_over_50_[…]s_originated_from_various_marine_environments/5564844/1
        * 入力データを確定させて、bioproject_plus.rbを拡張する
            * DFAST, DFAST_QC実行前
            * DFAST実行後
                * 検索データのUpdate
        * `lftp https://mdatahub.org -e "mirror -c /data/test_dfast_qc mdatahub.org/data/test_dfast_qc"` でローカルに取得
        * `bin/bioproject_plus.rb` の実行で以下のテストデータを生成
            * mdatahub_bioproject_test.jsonl
            * mdatahub_genome_test.jsonl
        *　課題: MAGとBioSampleの関係情報の取得方法の検討およびBioSample属性情報でMAGメタデータを上書き [TODO]
            *　更新系も課題
    * APIのMAG関連メソッド拡張 -oec
        * https://mdatahub.org/api/genome/_doc/:id
        * https://mdatahub.org/api/genome/_source/:id
        * https://mdatahub.org/api/genome/_search?q=hoge
* BioProject検索およびBioProject詳細ページ要素のデータ拡張と可視化開発
    * MAGの系統組成Plotly (横棒グラフ)　-oec
    * BioProject検索データ拡張 - tf→oec #MAG検索データのあとで
        * MAG実行の有無のステイタスおよびMAG件数集計結果
        * env termのタグ付け
        * disease/location curation
        * (調査)mdb_annotator（キュレーションされた）入力データ
    * 全件データ作成
        * mdb_dev@cs9セットアップ [3/14Done]
            * anyanv/plenv
            * entrez direct
            * perl module
                * sudo dnf install perl-Time-HiRes
                * sudo dnf install perl-FindBin
  　　　 * bioproject毎のbiosamplesetを取得するdataflow_prototypeの`bin/mget`を実行開始, screen -S 20230314-mget -tf
  　　　     * /work1/mdatahub/repos/dataflow_prototype/bioprojectで取得中

* ファセット検索用CVリストのJSON作成 
* database-summary-plotly #MAGデータ投入後あとで


```
├── PRJDB
│   ├── 010
│   │   ├── PRJDB10821-biosampleset.xml
│   │   ├── PRJDB10821.dblink
│   │   └── PRJDB10821.xml
│   ├── 012
│   │   ├── PRJDB12928-biosampleset.xml
│   │   ├── PRJDB12928.dblink
│   │   └── PRJDB12928.xml
│   ├── 013
│   │   ├── PRJDB13924-biosampleset.xml
│   │   ├── PRJDB13924.dblink
│   │   └── PRJDB13924.xml
│   └── 014
│       ├── PRJDB14315-biosampleset.xml
│       ├── PRJDB14315.dblink
│       ├── PRJDB14315.xml
│       ├── PRJDB14444-biosampleset.xml
│       ├── PRJDB14444.dblink
│       ├── PRJDB14444.xml
│       ├── PRJDB14539-biosampleset.xml
│       ├── PRJDB14539.dblink
│       └── PRJDB14539.xml
├── PRJEB
│   ├── 031
│   │   ├── PRJEB31659-biosampleset.xml
│   │   ├── PRJEB31659.dblink
│   │   ├── PRJEB31659.xml
│   │   ├── PRJEB31962-biosampleset.xml
│   │   ├── PRJEB31962.dblink
│   │   └── PRJEB31962.xml
│   ├── 048
│   │   ├── PRJEB48785-biosampleset.xml
│   │   ├── PRJEB48785.dblink
│   │   ├── PRJEB48785.xml
│   │   ├── PRJEB48814-biosampleset.xml
│   │   ├── PRJEB48814.dblink
│   │   └── PRJEB48814.xml
```


---

### 2023-02-21
* 残作業 2/24ぐらいまで
    * データ変換・投入とElasitcsearch -watanabe
    * node buildをcs12置く-watanabe
    * fs3の443,80の外部アクセス -hmori
        * *.nig.ac.jpのワイルドカード証明書を使ってnginxでhttps設定完了
            * ワイルドカード証明書の期限が切れているエラーがブラウザで出るが、無視して進めば遺伝研内からはhttps://fs3.nig.ac.jpでアクセス可能
        * 遺伝研のネットワーク管理部署に申請済み
            * 脆弱性検査を要求されたので実行してクリア。検査完了報告をネットワーク管理部署に送信済み。2/23には外部からアクセス可能になった
    * コンテンツ更新 -hmori
        * ローカルのMacBookPro上で[frontprot
            * http://jgmdb.org でもアクセス可能にotype](https://github.com/microbiomedatahub/front_prototype)が動作するようになった。Node.jsは最新版では動かないので、version 12にする必要がある。
            * デザイン修正完了

### 2023-02-17
* bioproject APIの動作確認までを急ぐ
    * ddbj-ld-proxyにテストデータJSONを配置する -oec
    * JSON-Plusデータを作成する -tf
    * 開発環境で動作確認 -oec
        * localhost:4001/bioproject/_doc/PRJNA192445
        * localhost:4001/bioproject/_search?q=hoge
        * localhost:4001/
    * mb環境で動作確認 -tf
        * https://mb.ddbj.nig.ac.jp/bioproject/_doc/PRJNA192445
        * https://mb.ddbj.nig.ac.jp/bioproject/_search?q=hoge
* cs12起動した
    * centOS7

### 2023-02-14 SIP
#### ゴール：2023-02-18PM
* cs12起動(2/15予定) -hmori [Done]
* cs12:443にnginxをインストールして、SSL証明設定し443を外側からアクセスできるように開く -hmori [Todo]
    * 情報基盤ユニットにfs3(cs12)外部DNSの設定を依頼、サブドメインのためのエイリアスをリクエスト
* cs12:9200にelasticsearchを立てるために、なんとかしてインストール -watanabe [Todo]
* cs12:3000にnode SPAを構築する -watanabe
    * dev: cs12:9200でelasticsearch参照
* 本番メタデータデータ1200件をメールで送付 -hmori [Done]　＆データ変換・投入 -watanabe [Todo]
* 本番系統組成データ1200件をcs12にある、必要に応じてメール送付　＆ データ変換・投入 -oec [Done]
* ←2/17までにここまで必須！！！
* plotly-data API - oec [Done]
    * https://mb.ddbj.nig.ac.jp/plotly_data?view=taxonomic_comparison&ids=ID1, ID2,...でアクセスしたい
        * 解析結果データを変換したPloty用JSONのデータ準備と格納先、アクセス方法を決めて構築
            * sip解析データ全件のElasticsearchロード用JSONLをcs12 or cs9に置く -oec
        * ~~ddbj-ld-proxyをcs12に立てる or~~ スパコン環境ddbj-ld-proxyを再利用

* 本番環境用に手を入れる
    * https//fs3.nig.ac.jp/ でアクセスできるようにnode-appをコンパイルして配置する -watanabe
    * elasticsearch(cs12:9200)を https//hoge.nig.ac.jp/es/ でアクセスできるようにreverse-proxy設定 -tf

* ブランチを切って文言スタイルの変更する -hmori
    * https://github.com/microbiomedatahub/front_prototype/blob/main/src/project_sip_css.js
    * https://github.com/microbiomedatahub/front_prototype/blob/main/src/pages/portal.js
    *  https://github.com/microbiomedatahub/front_prototype/blob/main/src/pages/ あたり

### 今後のTODO
* TODO: JSON変換とMDB3ファセット検索・表示実装の修正 -watanabe, 2/6-継続
* TODO: cs9セットアップ　-hmori
    * 合宿後にcs9のデータバックアップ /work1, /work2 /homeなど、rsyncできるならする。
    * バックアップ完了後、cs9に新しいOSインストールする 
    * 来年度cs8の代わりとなる本番新サーバを購入する 
* TODO: テストデータ更新 -tf
    * env termのタグ付け
    * disease/location curation
        * (調査)mdb_annotator（キュレーションされた）入力データ
* TODO: ddbj-ld-proxyのメソッド実装と動作確認 -oec
    * /bioproject
    * /plotly-data
    * /metastanza-data
* TODO: mdatahub-mag -all　３月合宿で3/12-14
    * data: -tf , hmori
        * CWL-workflow/DFAST実行後の統計情報を検索インデックスに追加
        * BioProject+BioSampleから収集しMAG検索インデックスの検討, ID体系を確定する
        * CWL-workflow/DFAST実行結果を https://microbedb.jp/data/genome/に配置
        * GO組成 -優先度低
        * MBGDクラスターIDアサイン後に提示できるもの -優先度低
        * Phenotype推定 -優先度低
        * DFAST/ANI結果
    * view:
        * DFASTの統計情報などMAG検索レコードのデータを素直に表示する
        * 詳細ページのPlotly(GO組成、Phenotype推定データ、MBGD次第、DFAST可視化したいmのがあれば) -優先度低




* GO組成を含むリファレンスゲノム情報整備（TogoGenome/Reference, NITE)

* database-summary-plotly - MAGデータも投入後あとで

---
## MDatahub開発合宿
* 2023-02-05~07
* hmori, tf, oec, watanabe

### まとめ
#### データ
* Project検索テストデータセット作成
    * https://github.com/microbiomedatahub/dataflow_prototype/blob/main/bioproject_acc_test.jsonplus
* 解析データのPlotlyから呼び出すJSON作成
    * https://github.com/microbiomedatahub/view_prototype/blob/main/plotly/microbiome%20composition/data/test.json

#### API
* view-plotlyのAPIメソッド実装
* Project検索テストデータセット投入
    * TODO: デプロイ方法をddbj-ld-proxyの2023-oecにREADMEに書く -oec
* 遺伝研スパコン環境ddbj-ld-proxyに検索データ投入してAPI動作確認
    * TODO: https://mb.ddbj.nig.ac.jp/project/_msearch で動作確認 [ゴール] -oec

#### 可視化Plotly
* Project詳細ページに埋め込む予定のサンプル間比較のtaxonomic comparisonスタンザをPlotly化した
    * https://microbiomedatahub.github.io/view_prototype/plotly/microbiome%20composition/html/plotly_test.html
* フロントアプリからの呼び出し方法
    * https://github.com/microbiomedatahub/view_prototype/blob/main/plotly/microbiome%20composition/html/plotly_test.html
        * [jsonUrl](https://github.com/microbiomedatahub/view_prototype/blob/main/plotly/microbiome%20composition/html/plotly_test.html#L12) をAPI参照予定
* PlotlyをAPI経由で

#### 環境構築
* 各種データの配置、アクセス先を決めた
    * cs8:/work1/mdatahub/public → https://microbedb.jp/data
        * ※ 最終的には http://mdatahub.org/data
* docker/docker-composeが古いのでcs9のOSインストールは合宿後に実施 -hmori

### 合宿開始時のTODO
* SIP-Sample検索・表示
    * DONE: SIP-Sample-TSVを用意する (メタデータ項目の解説付きのSIP Sampleメタデータの例 https://togothon.slack.com/files/U015N7G3EUV/F04N0V37BFF/sipmetadataexample.xlsx?origin_team=T012UFX6L57&origin_channel=C033XECEGEP ) -hmori, 2/5
    * DONE: SIP-Sample-ファセット検索メニューをMDB3の増減の視点を考慮して決める -hmori, 2/5
        * 検索したいメタデータ項目: HostBMI (数値), sex (2値), location (5値), HostAge (数値), healthy (2値), AntibioticRegimen (2値), feces_type (5値)
            * MDB3のファセット検索に元々存在するメタデータ項目
                * HostBMI (数値), HostAge (数値), AntibioticRegimen (2値)
            * MDB3のファセット検索には存在しないメタデータ項目
                * sex (2値), location (5値), healthy (2値), feces_type (5値)
        * 検索が不要なメタデータ項目: MEO, host_taxonomy, HostEthnicity, taxonomy 
        * **本番サンプルのメタデータtsvを作成する -hmori**
    * DONE: SIP系統組成解析データTSV 1269 Sample分 ( https://files.slack.com/files-pri/T012UFX6L57-F04MPA5TCR5/download/1269samplegenus.txt?origin_team=T012UFX6L57 )をPlotly入力JSONデータに変換して、Sample間比較解析スタンザtaxonomic_comparisonのPlotly版を用意する -oec, 2/5-6
        * 1000属をグラフの凡例に並べるわけにもいかないので、全サンプルでの合計リード数が1000本以下の属を除去したGenus組成データのtsvファイル ( https://togothon.slack.com/files/U015N7G3EUV/F04N10ZQMSR/1269samplegenusmajor.txt )を作成。これでもまだ217属存在。-hmori

    * TODO: JSON変換とMDB3ファセット検索・表示実装の修正 -watanabe, 2/6-

* mdatahub-project
    * 合宿後にcs9のデータバックアップ /work1, /work2 /homeなど、rsyncできるならする。 -hmori
    * バックアップ完了後、cs9に新しいOSインストールする -hmori
    * 来年度cs8の代わりとなる本番新サーバを購入する -hmori

    * BioProjectの検索メニューにあわせてJSON拡張+テストデータ用意 -tf,2/5-7
        * （参考）https://docs.google.com/spreadsheets/d/1L1vah7Fv1OC3xTs-sjkCjwNI6AvevCuooQ5mXgYxbyI/edit#gid=593670239
        * (考慮) https://togothon.slack.com/files/U015N7G3EUV/F04NGE7C1HP/20221102mdhubsearchimage.pptx
    * docker-compose(nginx-ddbj-ld-proxy+elasticsearch)をcs9に立ててテストデータをロードする -oec or tf, 2/6-7
    * ddbj-ld-proxyのメソッド実装と動作確認 -oec
    * project-plotlyはあとで

* mdatahub-mag -合宿後
    * MAG検索インデックスの検討
        * BioProject+BioSampleから収集
    * GO組成を含むリファレンスゲノム情報整備
        * TogoGenome/Reference
        * NITE
    * CWL-workflow
        * MAG
        * DFAST

* TogoDX-TPP
    * レポジトリ確認・整理
        * https://github.com/togodx?q=tpp&type=all&language=&sort=
            * tpp-app
            * togodx-server-tpp
            * togodx-search-app-tpp
            * togodx-config-tpp


### 2023-02-07
* ddbj-ld-proxyにデータロード
```
git clone -b 2023-oec git@github.com:ddbj/ddbj-ld-proxy.git
cd ddbj-ld-proxy
docker-compose up -d
curl -O https://raw.githubusercontent.com/microbiomedatahub/dataflow_prototype/main/bioproject_acc_test.jsonplus
curl -XPOST 'localhost:9200/_bulk' -H 'Content-Type: application/x-ndjson' --data-binary @bioproject_acc_test.jsonplus
```

* BioProject+実装
    * BioProject+ 20230207-AM時点での出力
        * https://www.evernote.com/shard/s1/sh/7c663310-a652-cc63-830c-d27e258d9ecf/f624753b3438f54eb81f91e5cd95d309
    * TODO
        * JSONマージ
        * Envタグ付け
            * organismはxxx metagenomeのみ選別？
        * pH, temparatureの数値データ以外を除く



* テストデータ用BioProject IDリストアップ
```
PRJDB4176
PRJDB4224
PRJDB5102
PRJDB5105
PRJDB5420
PRJDB5433
PRJDB5650
PRJDB5959
PRJEB7166
PRJEB9702
PRJNA189273
PRJNA192445
PRJNA243351
PRJNA257112
PRJNA273761
PRJNA352737
PRJNA495320
PRJNA545251
```
森さん追加分
```
PRJEB28019
PRJEB40764
PRJEB44414
PRJEB51898
PRJEB55462
PRJNA288131
PRJNA561080
PRJNA642893
PRJNA781277
PRJNA811155
PRJNA823681
PRJNA851822
PRJNA879893
```

* cs8:nginxの設定追加
```
location /data
    alias /work1/mdatahub/public
    autoindex on;
    ...
```
* Plotlyの仕様
TBW

### 2023-02-06
#### BioProject+ 設計（藤澤）
* 入力:
    * BioProject XML （今回は大石さんのJSON）
    * 関連するBioSampleset XML
    * SRA_Accessions.tab
    * 定義ファイル taxonomy_id -- MEO_ID -- EnvO ID -- termの対応表
```
{
    "type": "bioproject",
    "identifier": "PRJDB11811",
    "organism": "marine metagenome",
    "title": "TPA_asm: The OceanDNA MAG catalog: 52,325 prokaryotic genomes reconstructed from various marine environments",
    "description": "Reconstruction of 52,325 qualified genomes composed of 8,466 prokaryotic species-level clusters spanning 59 phyla, including genomes from deep-sea deeper than 1,000 m (n=3,337), low-oxygen zones of 90 micro mol O2 per kg water (n=7,884), and polar regions (n=7,752). All genomes are QS = 50.",
    "data type": "Genome sequencing and assembly",
    "organization": "Atmosphere and Ocean Research Institute, The University of Tokyo; 5-1-5 Kashiwanoha, Kashiwa, Chiba 277-8564, Japan",
    "publication": [
      {
        "id": "35715423",
        "Title": "The OceanDNA MAG catalog contains over 50,000 prokaryotic genomes originated from various marine environments."
      }
    ],
    "properties": null,
    "dbXrefs": [],
    "distribution": null,
    "Download": null,
    "status": "public",
    "visibility": null,
    "dateCreated": "2021-06-08",
    "dateModified": "2022-04-08",
    "datePublished": "2022-04-07T14:46:34Z"
  }
```
* 出力: JSON拡張
    
```
{
"identifier": "PRJDB11811",
"annotations" [
    {"sample_count": 5000},
    {"sample_keyword": ["ENV_00001", ...],
    {"sample_ph_range": [6.0, 10.0]},
    {"sample_temperature":[20.0,30.0]},
    {"sample_host_organism": ["Homo sapiens",...]},
    {"sample_host_organism_id": [9606,...]}, taxon:9606 => URI
    {"sample_host_disease": []},
    {"sample_host_disease_id": []},
    {"sample_host_location": []},
    {"sample_host_location_id": []},
    {"data_size": "0.5 GB"
]
}
```
* 現時点での実装

必ずユニークになるはずなので、ハッシュの配列ではなく、ハッシュにした。
```
%ruby bin/bioproject_plus.rb PRJDB5105-biosampleset.xml
{"sample_count"=>9,
 "sample_organism"=>["groundwater metagenome"],
 "sample_taxid"=>["717931"],
 "sample_ph"=>["8.9", "8.4", "8.5", "8.7", "8.6", "8.7", "8.6", "8.6"],
 "sample_temperature"=>[],
 "sample_host_organism"=>[],
 "sample_host_organism_id"=>[],
 "sample_host_disease"=>[],
 "sample_host_disease_id"=>[],
 "sample_host_location"=>[],
 "sample_host_location_id"=>[],
 "data_size"=>"0.0 GB",
 "sample_ph_range"=>["8.4", "8.9"],
 "sample_temperature_range"=>[nil, nil]}

```

* SRA_Accessions.tabのdata size集計ソースの確認
```
[tf@at043 01]$ cut -f16,18,19 SRA_Accessions.tab.20230124|egrep -v "^-" |head -10
Bases	BioSample	BioProject
730668528	SAMD00016353	PRJDA38027
598805064	SAMD00002791	PRJDA39275
232550352	SAMD00013986	PRJDA34559
218202480	SAMD00013986	PRJDA34559
217467432	SAMD00013986	PRJDA34559
213718284	SAMD00013986	PRJDA34559
126135468	SAMD00013986	PRJDA34559
1580432724	SAMD00013986	PRJDA34559
1619455824	SAMD00013986	PRJDA34559
```
* PRJDB11811でbasesが少ない
```
[tf@at043 01]$ cut -f16,18,19 SRA_Accessions.tab.20230124| grep PRJDB11811 |egrep -v "^-"
30	SAMD00334870	PRJDB11811
30	SAMD00340800	PRJDB11811
30	SAMD00346669	PRJDB11811
30	SAMD00352477	PRJDB11811
30	SAMD00358578	PRJDB11811
30	SAMD00364888	PRJDB11811
30	SAMD00370589	PRJDB11811
30	SAMD00376889	PRJDB11811
30	SAMD00382690	PRJDB11811
```

#### EnvO/MEO IDのアサイン -hmori
* 今回はファセット検索の環境タームの紐づけについては、taxonmy_idから一意に決まる
    * taxonomy_id -- MEO_ID -- EnvO ID -- termの対応表を作る -hmori 
        * 対応表　https://togothon.slack.com/archives/C033XECEGEP/p1675690634119819　
        * 49 NCBI Taxonomy IDが13 MEO/EnvO IDに対応
            * https://github.com/microbiomedatahub/dataflow_prototype/blob/main/NCBITaxMEOEnvo.tsv にコミット -tf

#### HMADO IDのアサイン -tf
* host Humanに限定したBioSample attibuteの値に対して、HMADOのIDをexact matchで検索してヒットしたSampleに対してアサインする

```
SELECT 
REPLACE(str(?s),"http://purl.jp/bio/11/hmado#","") as ?hmado_id  ?label
FROM <http://microbedb.jp/hmado>
WHERE
{
?s a <http://www.w3.org/2002/07/owl#Class>.
?s <http://www.w3.org/2000/01/rdf-schema#label> ?label.
} ORDER BY ?s
```
* 定義をSPARQLから取得
https://microbedb.jp/sparql?default-graph-uri=&query=SELECT+%0D%0AREPLACE%28str%28%3Fs%29%2C%22http%3A%2F%2Fpurl.jp%2Fbio%2F11%2Fhmado%23%22%2C%22%22%29+as+%3Fhmado_id++%3Flabel%0D%0AFROM+%3Chttp%3A%2F%2Fmicrobedb.jp%2Fhmado%3E%0D%0AWHERE%0D%0A%7B%0D%0A%3Fs+a+%3Chttp%3A%2F%2Fwww.w3.org%2F2002%2F07%2Fowl%23Class%3E.%0D%0A%3Fs+%3Chttp%3A%2F%2Fwww.w3.org%2F2000%2F01%2Frdf-schema%23label%3E+%3Flabel.%0D%0A%7D+ORDER+BY+%3Fs&format=text%2Ftab-separated-values&timeout=0&debug=on&run=+Run+Query+


#### ddbj-ld-proxy server構築 -tf
* スパコンat128ノードにインストール [Done]
* at128:4001 → https://mb2.ddbj.ni.ac.jp/ddbj-ld-dev/ → データ投入後にアクセスできるようにnginxに設定 [TODO]


### 2023-02-05
#### データ・環境置き場
* sip用
    * /work1/sip
        * 1269SampleGenusMajor.txt　系統組成のtsvファイル
        * SIPMetaDataExample.txt　メタデータの例のtsvファイル
        * SIPMetaDataExampleDescription.txt　メタデータカテゴリの説明
* mdatahub
    * cs8:/work1/mdatahub/public
        * /project
        * /genome
    * https://mdatahub.org/data からアクセスを想定
    * cs9:/work1/mdatahub/repos/ddbj-ld-proxy/
        * cs9:4001→ http://microbedb.jp/ddbj-ld/
    * cs9:/work1/mdatahub/public
        * cs8にrsyncを想定
        * /project にJSONを配置 -oec


            
#### BioProjectの検索メニューにあわせてJSON拡張項目の確認 -tf
* PowerPoint資料のファセット検索メニュー
    * 間引きしたEnvO/MEO検索 タグでよい、複数
    * Host taxon -- 複数（ID,label)
    * Host disease --複数（ID,label)
    * Host location --複数（ID,label)
    * Temperature -- min-max範囲データ
    * pH --min-max範囲データ
    * Sample count
    * Data size #Accessions.tab由来

#### cs9にddbj-ld-proxyを立てる -tf
* ddbj-ld-proxyレポジトリにcs9の公開鍵をデプロイキーとして登録して、以下に配置。

```
[mdb_dev@cs9 ddbj-ld-proxy]$ pwd
/work1/mdatahub/repos
[mdb_dev@cs9 ddbj-ld-proxy]$ git clone git@github.com:ddbj/ddbj-ld-proxy.git
[mdb_dev@cs9 ddbj-ld-proxy]$ cd ddbj-ld-proxy/
[mdb_dev@cs9 ddbj-ld-proxy]$ git fetch origin 2022-dev
 1015  git branch -r
[mdb_dev@cs9 ddbj-ld-proxy]$   git checkout 2022-dev
```
* docker-composeで起動
```
[mdb_dev@cs9 ddbj-ld-proxy]$ docker-compose up -d
ERROR: In file ./.env: environment variable name 'ELASTICSEARCH_HOST: "http://es01:9200"' may not contains whitespace.
```
* と怒られたので、.envのスペースを除いた
    * → branch:2023-oecで修正

``` 
[mdb_dev@cs9 ddbj-ld-proxy]$ docker-compose up -d
WARNING: The PROXY_API_LOGGER variable is not set. Defaulting to a blank string.
WARNING: The PROXY_API_PORT variable is not set. Defaulting to a blank string.
ERROR: The Compose file './docker-compose.yml' is invalid because:
services.elasticsearch02.healthcheck value Additional properties are not allowed ('start_period' was unexpected)
services.elasticsearch01.depends_on contains an invalid type, it should be an array
[mdb_dev@cs9 ddbj-ld-proxy]$ vi .env 
[mdb_dev@cs9 ddbj-ld-proxy]$ 
```
* 修正後に上記error怒られた。docker/docker-composeのバージョン問題？
    * → cs9のcentOS6の変更するところから

---

## 2023-01-25
TODO:

* BioProject XML2JSON ＋ddbj-ld-proxyをcs9構築 - oec
    * JSONを拡張する - tf
* SIP用 BioProjectリスト作成 -hmori
    * Project facet + view-lite実装 -
* SIP用 Powerpointで必要なミニマムなfacet検索の機能をリストする -hmori
    * BioSample XML2JSON (mdb-annotator-lite) + Sample Facet-lite -watanabe
* 開発合宿を2月5-7日に東京, 品川, 新横浜, 名古屋, 静岡で2泊3日予定。場所の選定 -hmori



---


