macでインフォマティクス

macでインフォマティクス

HTS (NGS) 関連のインフォマティクス情報についてまとめています。

Graphiaによるパンゲノムグラフの可視化のサポートスクリプト GraPPLE

2024/02/26 追記

 

GraPPLEは、Graphia (Pubmed) によるパンゲノムグラフの可視化支援スクリプトです。細菌のパンゲノムグラフの活用法について学ぶためには、最近出たこちらの論文(link)がとても参考になりました。

 

Githubより

GraPPLEのスクリプトは、バクテリアのパンゲノムデータセットをネットワーク解析スイートGraphiaで可視化するために提供されています。現時点では、ベータ版として扱いますので、出力が意味をなしているかどうかを確認し、問題やバグがあれば提起してください。

GraPPLEは当初PIRATEの出力で動作するように開発されましたが、他の適切なツール(Roary, Panaroo, PPanGGOLiNなど)からの遺伝子の存在/不在行列をペアワイズ類似性スクリプトの入力として使用することが可能です。現在、PIRATEとPanarooのsyntenyグラフがサポートされています(PIRATEでは変換が必要、下記参照)。

 

Graphia for linux

https://graphia.app/download.html

 

インストール

以前作ったPIRATESの環境(link)でテストした。

依存

  • Python 3.6
  • sklearn.metrics
  • numpy
  • pandas

Github

conda activate pirate
pip install pandas sklearn
git clone https://github.com/JDHarlingLee/GraPPLE
cd /GraPPLE/grapple/

> python pw_similarity.py -h

usage: pw_similarity.py [-h] -i INPUT [-o OUT] [-m ISOL_META] [-g GENE_META]

                        [-r RUN_TYPE] [-s SIM_METRIC] [-f ISOL_FILT]

                        [-e GENE_FILT] [-t THREADS] [-x]

 

optional arguments:

  -h, --help            show this help message and exit

  -i INPUT, --input INPUT

                        binary tab delimited (.tsv, .Rtab) file of gene

                        presc/absc across pangenome

  -o OUT, --out OUT     optional prefix for output files

  -m ISOL_META, --isol_meta ISOL_META

                        .csv isolate metadata

  -g GENE_META, --gene_meta GENE_META

                        .tsv gene metadata, e.g. PIRATE all_alleles.tsv file

  -r RUN_TYPE, --run_type RUN_TYPE

                        calculate similarity of isolates ("isolates"), genes

                        ("genes" or both ("both"). Defaults to both

  -s SIM_METRIC, --sim_metric SIM_METRIC

                        set metric for similarity calculation. Default:

                        jaccard

  -f ISOL_FILT, --isol_filt ISOL_FILT

                        optional filter for isolate pairwise similarity

  -e GENE_FILT, --gene_filt GENE_FILT

                        optional filter for gene pairwise similarity

  -t THREADS, --threads THREADS

                        number of threads to be used

  -x, --output_matrix   output .tsv similarity matrix as well as list. Will

                        not be filtered

 

> python edges_to_layout.py -h

usage: edges_to_layout.py [-h] -e EDGE_FILE [-o FILE_OUT] [-f EDGE_FILTER]

                          [-g] [-v]

 

optional arguments:

  -h, --help            show this help message and exit

  -e EDGE_FILE, --edge_file EDGE_FILE

                        pangenome.edges file from PIRATE

  -o FILE_OUT, --file_out FILE_OUT

                        output prefix

  -f EDGE_FILTER, --edge_filter EDGE_FILTER

                        filter edges below this value. Must be integer value.

                        Default: 0

  -g, --group_genes     Default: On. Removes directionality of genes to group

                        together in Graphia. See docs for more information on

                        this behaviour

  -v, --verbose         Default: On

 

> python grapple/metadata_to_layout.py -h

usage: metadata_to_layout.py [-h] -l LAYOUT -m METADATA [-s SELECTION]

                             [-r RUN_TYPE] [-v]

 

optional arguments:

  -h, --help            show this help message and exit

  -l LAYOUT, --layout LAYOUT

                        .layout file to copy and/or append metadata to

  -m METADATA, --metadata METADATA

                        .tsv file of metadata to add. First column must match

                        node names

  -s SELECTION, --selection SELECTION

                        .txt file of list of metadata columns to add. If not

                        provided, all metadata columns will be added

  -r RUN_TYPE, --run_type RUN_TYPE

                        copy or append layout file. Default: "copy"

  -v, --verbose         default: on

 

> bash scripts/post_pirate_processing.sh -h

 

------------------------------------------------

 

This is a script to adapt the standard output from PIRATE for use in GraPPLE/Graphia

You may prefer to run some of these actions individually, but this is a wrapper script for convenience

 

Ensure you are executing this script within the output directory of your PIRATE pangenome analysis

 

-t | threshold list (those used in PIRATE run, or a subset thereof)

-d | output directory name - a directory where new files can be created to avoid overwriting originals. Default: GraPPLE

-q | path to PIRATE directory - necessary for using PIRATE adapter scripts

-n | number of threads to use. Default: 2

--paralogs | flag to generate files with paralogs split. Default: off

------------------------------------------------

 

テストラン

PIRATESの出力の1つであるedgeファイルをグラフに変換。

git clone https://github.com/JDHarlingLee/GraPPLE
cd /GraPPLE/grapple/
python edges_to_layout.py -e ../example_data/saureus/saureus.edges -o example_graph
  • -e    pangenome.edges file from PIRATE
  • -o    output prefix
  • -f     filter edges below this value. Must be integer value. Default: 0
  • -g    Default: On. Removes directionality of genes to group together in Graphia. See docs for more information on  this behaviour

.layout形式のファイル;example_graph.layoutが出力される。example_graph.layoutはGraphia(HP)に読み込める。

 

Graphiaにそのままロードした。

 

.layout形式のグラフにメタデータを追加する。おそらく引用した論文でもこの方法でメタデータがグラフに組み込まれている。

cd /GraPPLE/
python metadata_to_layout.py -l example1_gene_pw_sim.layout -m gene_info.tsv -s pirate_gene_headers.txt -r "copy"

example1_genes_pw_sim-wMeta.layoutが出力される。

 

ゲノムおよび/または遺伝子間のペアワイズ類似度をバイナリ行列出力する。それから、ペアワイズの類似性行列を出力する。

#1 presence /absence tableからbinary matrixに変換(roaryかpirates出力)
cd /GraPPLE/scripts/
#piratesの出力の23行目から各ゲノムの有り無し情報が始まるなら23
python gene_matrix_to_binary.py -i PIRATE.gene_families.ordered.tsv -o out.tsv --start_col 23
=> presence/absenceのバイナリ行列"out.tsv"が得られる

#2 pw_similarityのラン、20スレッド。1の出力を指定する。
cd ../grapple/
python pw_similarity.py -i out.tsv -o out -t 20

 

引用

GitHub - JDHarlingLee/GraPPLE: Support scripts for the visualisation of pangenome analyses in Graphia

 

A graph-based approach for the visualisation and analysis of bacterial pangenomes
Joshua D. Harling-Lee, Jamie Gorzynski, Gonzalo Yebra, Tim Angus, J. Ross Fitzgerald & Tom C. Freeman 
BMC Bioinformatics volume 23, Article number: 416 (2022) 

 

関連