**文書の過去の版を表示しています。**
メールアドレスの正規表現チェックとSRAリンク取得
メールアドレスの正規表現チェック(ブラウザ側)
テキストボックスに入力されたメールアドレスが正規表現にマッチしているか確認
var regex = /^[a-zA-Z0-9_.+-]+@([a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]*\.)+[a-zA-Z]{2,}$/; //以下ボタンクリック時に実行する関数中 email = $("#email")[0].value; if (!(regex.test(email))) { console.log("incorrect email address"); return }
メールアドレスの正規表現チェック(サーバ側)
サーバに送られたメールアドレスが正規表現にマッチしているかを確認
router.post('/upload', function (req, res, next) { var regex = /^[a-zA-Z0-9_.+-]+@([a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]*\.)+[a-zA-Z]{2,}$/; if (!(regex.test(req.body.email))) { console.log("incorrect email address"); return } //res.render('uploaded'); console.log(req.body); });
アウトプットファイルからHTMLファイルを生成
アウトプットファイルからID,そのサンプル情報のURL,提出元,研究テーマ,サンプル名を取得し、HTMLファイルに出力するスクリプトを作成
# coding: utf-8 import sys import subprocess argv = sys.argv #引数からファイルを取得 result_f_name = argv[1] result_f_name_header = result_f_name.replace(".result","") result_f = open(result_f_name) url_template = "https://www.ncbi.nlm.nih.gov/sra/?term=" ol_header = "<ol>" ol_footer = "</ol>" html_content = "" html_content = html_content + ol_header rows_list = result_f.readlines() for row in rows_list: #各行からIDだけを取得 srr_id = row.split()[0] srr_id = srr_id.replace(".fastq","") # print(srr_id) #各行からURLを作成 url = url_template + srr_id # print(url) #各行から生成したURLでアクセスし、HTMLファイルを取得し、サンプル情報などを取得 cmd = ["bash", "html_parse.sh", url] res = subprocess.check_output(cmd).decode().split("\n") submited_by = res[0] study = res[1] sample = res[3] #HTMLファイルの中身を作成 html_content = html_content + "<li><a href=" + url + ">" + srr_id + "</a><ul><li>Submited by: " + submited_by + "</li><li>Study: " + study + "</li><li>Sample: " + sample + "</li></ul></li>" # print(submited_by) # print(study) # print(sample) html_content = html_content + ol_footer # print(html_content) #アウトプットファイルとして保存 output_f_name = result_f_name_header + ".html" output_f = open(output_f_name, "w") output_f.write(html_content) output_f.close() result_f.close()
日付の取得
https://qiita.com/n0bisuke/items/dd28122d006c95c58f9c
npm install date-utils
でモジュールをインストールrequire('date-utils');
でモジュール読み込みvar dt = new Date();
で日付を取得
日付とEmailアドレスからHash値を算出
https://qiita.com/kou_pg_0131/items/174aefd8f894fea4d11a
var crypto = require(“crypto”);
でモジュールを読み込みvar dt = new Date();
で日付を取得var hash = crypto.createHash(“md5”).update(dt + req.body.email).digest(“hex”);
でハッシュ値を算出
const crypto = require('crypto'); // サポートされているハッシュアルゴリズムを確認 console.log(crypto.getHashes()); // `crypto.createHash('アルゴリズム名').update('文字列').digest('hex')` crypto.createHash('md5').update(plainText).digest('hex')
送信データをファイルに保存
https://qiita.com/phi/items/b5ade0c2ecc58935e046
var fs = require("fs"); fs.writeFileSync("tmp/" + hash + ".fastq.gz", req.body.fileContent);