**文書の過去の版を表示しています。**
20210415
GmailのSMTPサーバを利用して、メール送信
https://qiita.com/zaburo/items/a6244d32ce5f5fe2c3d1
これを参考にやればできそう。パスワードの発行などの話があるので吉武先生に確認してから進める。
Google Chart API を使って円グラフを作成
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>
作成されたグラフ
グラフを表示する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()
python3環境だけを実現するコンテナの実装
- centos/python-38-centos7のDockerイメージをsingularityイメージファイルに変換(学生実験用サーバ)
- m50v251n3の/home/yoshitake/Ito/test/python3env.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ファイル生成スクリプトの続き * scriptexec.shをpythonの実行環境のみSingularityコンテナを利用するように変更 - Yahooメール作成、Yahooのメールサーバから送信https://maywork.net/computer/python-yahoo-send-mail/