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()

centos/python-38-centos7のDockerイメージをsingularityイメージファイルに変換(学生実験用サーバ)

m50v251n3の/home/yoshitake/Ito/test/python3_env.sifとして転送

以後はスクリプトなどはコンテナ内に含めずPythonの実行環境のみSingularityコンテナを使用。毎回Dockerコンテナにファイルをコピーするのは大変なので!

  • 以下のように利用。

/home/yoshitake/tool/singularity-3.5.2/bin/singularity exec –bind /home/yoshitake/yoshitake/db/:/home/yoshitake/yoshitake/db/ –bind $PWD:$PWD -W $PWD ~/Ito/test/python3env.sif python createpages.py 1037294fa7c2752b72507c9ff46c9c58.gz.result 

グラフ表示HTMLファイル生成スクリプトの続き script_exec.shをpythonの実行環境のみSingularityコンテナを利用するように変更 Yahooメール作成、Yahooのメールサーバから送信https://maywork.net/computer/python-yahoo-send-mail/ 作ったアカウントはここに記録http://www.suikou.fs.a.u-tokyo.ac.jp/dokuwiki/doku.php?id=%E5%90%84%E7%A8%AE%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89#%E5%A4%96%E9%83%A8%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9

  • 20210415.1618480793.txt.gz
  • 最終更新: 2021/04/15 09:59
  • by 133.11.144.10