20210317

メールアドレスの正規表現チェックと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);  
});

アウトプットファイルから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

  1. npm install date-utils でモジュールをインストール
  2. require('date-utils');でモジュール読み込み
  3. var dt = new Date();で日付を取得

https://qiita.com/kou_pg_0131/items/174aefd8f894fea4d11a

  1. var crypto = require(“crypto”); でモジュールを読み込み
  2. var dt = new Date();で日付を取得
  3. 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);
  • 20210317.1615972421.txt.gz
  • 最終更新: 2021/03/17 09:13
  • by 133.11.144.10