Takatomo Fujisawa
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    1
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    ## 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は2箇所あるがどちらを見ているか、また値が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, 値の2列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の表示ページ * 項目ごとに、星がつく、つかないの加点方式(この4つは硬い)、LODのような名前をつけるMOD(MAG-Optimal-Data? * コンタミネーションレートdfastqc * 10%以下が星1つ。 * 10%以上は、だめだろう。 * コンプリートネスdfastqc * 60%以上が星1つ。 * 厳しい人80%、もう1つ * 配列の本数、数十は星1つ、数百は0、理想は1(dfast)。 * 配列3桁以上は、星0 * 配列が2桁以下なら、星1。 * 一桁の場合は、すごいよいか、すごくだめかであるが、とりあえず1。 * rrnaが0じゃないと、星をつけない。 * 0なら星がつく。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] * 以下の2つ対応 * `_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の更新系とは別に1: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月合宿で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 ---

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully