kuroの覚え書き

96の個人的覚え書き

Python

PCAやMDS plotをpythonで行う

これまでPCAやMDSをやりたいときはRを使っていた。しかしRはどうも肌に合わない。すぐ忘れてしまう。 ということでここはやはりPythonですね、ってことでどうやるのか調べてみた。【python】pca、mds、nmds、tsneとmatplotlibでデータの可視化をしてみる - …

CRISPRで編集がかかったゲノムシークエンスを読むプログラム

CRISPRで編集がかかったと思われるT0サンプルのゲノムをシークエンスすると、変異は2本の染色体にランダムに起こるため、基本的にはヘテロとなってシークエンスデータの波形が2つ分重なって検出されることになるのは先日に書いたとおり。 これをパズルのよ…

塩基配列(文字列)のどこにリストに挙げた配列が位置しているかを示すプログラム

モチーフの抽出ができたらそれが一体どこにあるのか列記したい。 import re text = """GACTTTAGATGGCTTCTTCCTTTATAACCAATTGATATTGCATACTCTGATGAGATTTAT AATTAAAGAAGCAGAAACAAAAACAAGTAAAACAGAAACAATCAACACAGAGAAACCACC CCGAGAATATCTCCATTGGTTGGTGACTGATATCCC…

avconv (ffmpeg)でmp4ビデオを作成してwebに埋め込む

いやーはまったはまった。 ラズパイ3で作ったwebカメラアプリを3+に入れてやったところ、ほんの数ヶ月の間にソフトウェアの構成がかなり変わったらしく、いろいろ言うことを聞かない。 最後まで手こずったのはタイムラプスで撮った写真をパラパラ漫画的にビ…

塩基配列(文字列)からコンセンサス配列を抽出するプログラム

要するに文章からよく出てくる単語をピックアップしてカウントし、リストを作れれば良い。 辞書型を使って単語を数えるプログラムはpythonのプログラム例としてよく上がっているが、単語の区切りが明確でない遺伝子配列のような文字列から指定文字数の連続し…

matplotlib

とりあえずグラフの描写を試してみる。 >>> import matplotlib.pyplot as plt >>> import random >>> fig, ax = plt.subplots() >>> ax.set_title(u'Random') Text(0.5,1,'Random') >>> x_ax = range(1, 256) >>> y_ax = [random.randint(512,1024) for x in…

StringIO

matplotlibでグラフを描画するプログラムの中でcStringIOというモジュールが使われているのだけれど、Python3のモジュールには該当するものが見つからない。で、調べてみるとPython3では標準モジュールのioにStringIOが含まれているので from io import Stri…

tail -fのようにlogファイルをどんどん書き換えてwebに表示する。

https://stackoverflow.com/questions/35540885/display-the-contents-of-a-log-file-as-it-is-updated ここに出ているテクニックが使えそうなんだけど、肝心のFlaskの動作ログを開こうとすると固まってしまう。

改行を入れてコードを見やすく

あるテーブルから別のテーブルに内容をコピーしたいとき q = session.query(Test.id, Test.samp, Test.gene, Test.zygo, Test.count, Test.z_id) ins = insert(Test_temp).from_select( (Test_temp.id, Test_temp.samp, Test_temp.gene, Test_temp.zygo, Tes…

ログ記録とflashでメッセージ

まず、お気楽にプログラム中に print('===============') print('process complete') print('===============')みたいな行を挟みまくって標準出力に表示させていたわけだが、 これだとプログラムを走らせているウインドウをずっと見ておかないとならないわけ…

sqlalchemy or sqlalchemy.sql or sqlalchemy.sql.expression

黙々とデバッグ&コードの整理を行っているわけだが・・・コードをツギハギで書いていると from sqlalchemy import func from sqlalchemy.sql import func from sqlalchemy.sql.expression import func と同じfuncを3箇所からimportしていたりする。これら…

文字列内に変数を展開してコマンドを投げる。

Pythonからshellスクリプトを実行するとして、shellに変数を渡したいときはどうすればいいのか? cmd = "ls /data/file/folder/*/*.bam > list.txt" subprocess.call(cmd, shell=True)この/data/file/folder/*/*.bamをPythonから引数として渡したい。 そうい…

Blueprintを使っているページでconfigを呼び出す

Flaskのお作法では config.pyで設定を定義しておいて UPLOAD_FOLDER = '/User/hogehoge/'__init__.pyで app = Flask(__name__) app.config.from_object('app.config')とやっておくと、メインなプログラム中で app.config['UPLOAD_FOLDER']という感じで使いま…

テーブルをexportして、ファイルとしてローカルにダウンロードなど

sample = session.query(Samples) if form.back_drop.data: outfile = open('samples.txt', 'w') outtsv = csv.writer(outfile, delimiter='\t') for record in sample.all(): outtsv.writerow([record.id, record.samplename, record.phenotype, record.alt…

csvをローカルからアップロードしてテーブルをアップデート

まずはcsvファイルをサーバにアップロードする手順から。 当初Flask-wtfからファイルをアップロードさせようと思っていたが、思いの外要領を得ないため、素のFlaskでまずは構築してみる。 http://flask.pocoo.org/docs/0.12/patterns/fileuploads/ ここを参…

nginx+uWSGIふたたび

https://qiita.com/ekzemplaro/items/a570f79de254428a151d こんどはこのページを参考に進める。まずはFlaskのアプリを適当に作成。 foovar.py from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __nam…

nginx+uWSGIでFlaskアプリをデプロイ

https://qiita.com/mykysyk@github/items/3ebbd5a787fdbefaf5e8 ここの情報に従ってまずは必要なものをインストールしていく。 ここまでのインストールでepelの部分は入っているようなので yum install nginx --enablerepo=epelflaskはすでに入れたので飛ば…

MySQL版データベースアプリを実機サーバでテスト(するためのサーバ環境構築)

Python3が入ってないし。 https://weblabo.oscasierra.net/python3-centos7-yum-install/ を参考にPython3のインストールから。 # yum install -y https://centos7.iuscommunity.org/ius-release.rpm3.6系を入れることにする # yum install -y python36u pyt…

SQLite版とMySQL版の比較

Macローカルで初期画面をロードしてから、すぐにデータベースを開く操作をしてみるとSQLite版 127.0.0.1 - - [25/Dec/2017 19:24:29] "GET / HTTP/1.1" 200 - elapsed_time:0.0034799575805664062[sec] 127.0.0.1 - - [25/Dec/2017 19:24:36] "GET /exome/ H…

Pythonのスクリプトをデスクトップアプリ化する

自分で作成したアプリを自分の環境において使う分にはコマンド操作で全然問題ないが、人にわたして使ってもらうとなると モジュール等揃えてインストールしてもらって・・・となかなかハードルが高くなる。 なので簡単にデスクトップアプリ化できるならそれ…

PythonでCSVのリストに従ってGoogleで検索し、結果をスクレイピングする

詳細検索画面の初期設定で検索キーワードを入れて検索をする動作を自動化する。 https://www.google.co.jp/advanced_search?q= たとえば上の検索は https://www.google.co.jp/search?as_q=Python+Flask+SQLAlchemy+k-kuro&as_epq=&as_oq=&as_eq=&as_nlo=&as_…

csvファイルを読み込んでgoogleに検索を投げてトップヒット10件を集めてくる

import requests r = requests.get('http://www.google.co.jp/search?as_q=キーワード1+キーワード2・・・・') r.textとりあえずこれだけで検索の結果のhtmlファイルが得られる。なので import csv with open('some.csv', 'r') as f: reader = csv.reader(…

multiprocessor, multithread

https://qiita.com/petitviolet/items/64965e9ba236ebbdd37fhttps://qiita.com/yukiB/items/d6a70da802cb5731dc01

インプットファイルの整形からSQLiteへのインポートまでを1スクリプトで

import glob import csv import os def cat_input_files(lst): for f in lst: with open(f, 'r') as inp: reader = csv.reader(inp, delimiter='\t') next(reader) for row in reader: with open('./temp/temp.txt', 'a') as oup: writer = csv.writer(oup, …

多数のテキストファイルからヘッダ行を除いて1つのファイルにまとめる

#!/bin/sh #ls /target/multiannovar/filtered/files > list.txt #list.txtを引数として # $ sh ./input_files.sh list.txt mkdir -p ./temp filename=$1 for line in `cat ${filename}` do fname="${line##*/}" #ファイルからヘッダ行を除く sed -e '1d' $l…

python3でシェルスクリプトのようなことをする

lsをPythonで書くなら ls.py import os import sys # モジュール属性 argv を取得するため argvs = sys.argv # コマンドライン引数を格納したリストの取得 argc = len(argvs) # 引数の個数 if (argc != 2): # 引数が足りない場合は、その旨を表示 print('Err…

SQLiteにインポートするファイルにIDを前もって入れておく

MacのSQLiteではIDカラム分の無いファイルをインポートしようとしたらカラムが足らないのでnullを埋めるよという警告が出た上でインポートされ、ついでにPRIMARY KEYなのでインクリメントされたIDを自動でふってくれるのだが、どういうわけかCentOSではエラ…

PythonでSQLiteのTableにtsvからインポート

https://pypi.python.org/pypi/swadr/1.2.1 これがかんたんに使えそうな感じ。 .importする代わりにINSERTで1行ずつ入れていくのが常法なようだけど、カラム数が多いとちょっと面倒だし。とおもったらpipでインストールできないよ。作業用データベース・テー…

tableへのデータアップデートを考える

とにかく行数が増えてくるとsqlのupdateのスピードがかなり負担になってくる。なのでテキスト処理だけで大方のカラム整形をやって、一部分だけsql文でなんとかする方法を考えた。特に、今後私の手を離れた後にメンテナンスが容易なように、スクリプトでちょ…

wtfの検索値を記憶する

SelectFieldの設定値を記憶させて次のセッションでそれを入れさせようとあれこれ考えたが、なかなかうまくいかない。 そこで違ったアプローチでの実現を考える。 要するに前回の検索値のセットをまとめて記憶しておいて、画面上の検索入力をすっ飛ばして記憶…