20210415

20210415

https://qiita.com/zaburo/items/a6244d32ce5f5fe2c3d1

これを参考にやればできそう。パスワードの発行などの話があるので吉武先生に確認してから進める。

https://developers-dot-devsite-v2-prod.appspot.com/chart/interactive/docs/gallery/piechart.html

  • <script src=“https://www.gstatic.com/charts/loader.js”></script>でGoogle Chart APIを読み込む
  • ブラウザ上でグラフを書く関数を作成(以下は関数の中身)
  • google.charts.load('current', {packages: ['corechart']}); :パッケージをロードする
  • google.charts.setOnLoadCallback(drawChart); :コールバック関数の登録
  • コールバック関数を実装する
  • var data = new google.visualization.arrayToDataTable([])の引数にリストでHeaderや値を入れていく
  • オプションはオブジェクトで作成
  • var chart = new google.visualization.PieChart(document.getElementById('target')); :描画用インスタンスの生成
  • chart.draw(data, options); :描画メソッドの呼び出し

chart.html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="utf-8">
  <title>Google Chart</title>
  <script src="https://www.gstatic.com/charts/loader.js"></script>
</head>
<body>
  <div id="target"></div>
  <script>
    (function() {
      'use strict';
        // パッケージのロード
        google.charts.load('current', {packages: ['corechart']});
        // コールバックの登録
        google.charts.setOnLoadCallback(drawChart);
        // コールバック関数の実装
        function drawChart() {
            // データの準備
            var data = new google.visualization.arrayToDataTable([
                ['id', 'match'],
                ["root;Bacteria;Firmicutes;Bacilli;Lactobacillales;Lactobacillaceae;Lactobacillus", 7835],
                ["root;Bacteria;Firmicutes;Bacilli;Lactobacillales;Streptococcaceae;Streptococcus", 919],
                ["root;Bacteria", 118],
                ["root;Bacteria;Firmicutes;Clostridia;Clostridiales;Clostridiales vadinBB60 group;uncultured bacterium", 97],
                ["root;Bacteria;Proteobacteria;Gammaproteobacteria;Betaproteobacteriales;Burkholderiaceae;Cupriavidus",  77],
                ["root;Bacteria;Proteobacteria;Gammaproteobacteria;Betaproteobacteriales;Burkholderiaceae;Curvibacter;uncultured Curvibacter sp.",  72],
                ["root;Bacteria;Actinobacteria;Acidimicrobiia;Microtrichales;uncultured",  64],
                ["root;Bacteria;Bacteroidetes;Bacteroidia;Bacteroidales;Muribaculaceae",  63],
                ["root;Bacteria;Proteobacteria;Gammaproteobacteria;Pseudomonadales;Pseudomonadaceae",  61],
                ["root;Bacteria;Proteobacteria;Gammaproteobacteria;Pseudomonadales;Moraxellaceae;Acinetobacter",  47],
            ]);
            // オプションの準備
            var options = {
                title: 'Top 10 hit',
                width: 500,
                height: 300
            };
            // 描画用インスタンスの生成および描画メソッドの呼び出し
            var chart = new google.visualization.PieChart(document.getElementById('target'));
            chart.draw(data, options);
        }
    })();
  </script>
</body>
</html>

作成されたグラフ

create_graphs.py

def create_graph(result_f_name):
  #引数:ファイルを取得
  result_f_name_header = result_f_name.replace(".result","").replace(".gz","")
  result_f = open(result_f_name)
  #templateファイルの中身を取得
  header_template = open("templates/graph_header.html")
  footer_template = open("templates/graph_footer.html")
  html_header = header_template.read()
  html_footer = footer_template.read()
  rows_list = result_f.readlines()
  for row in rows_list:
      #各行からIDだけを取得   
      srr_id = row.split()[0]
      srr_id = srr_id.replace(".fastq","")
      #srrIDにヒットするもののトップ10を取得する
      cmd = ["bash", "search_topHit.sh", srr_id]
      res = subprocess.check_output(cmd).decode().split("\n")
      print(res)
  header_template.close()
  footer_template.close()
  • 20210415.1618479924.txt.gz
  • 最終更新: 2021/04/15 09:45
  • by 133.11.144.10