kuroの覚え書き

96の個人的覚え書き

Programing

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

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

連番で同じ処理をさせるためのリストを作る

ファイルを連番を付けて作成していてそれに同じ操作を全部やるとき、excelで編集してコマンドリストを作っていたが、shellでやるほうが簡単なので、その覚え書き seq -w 0 42 | xargs -i echo "python3 seq.py TAIR10_cdna_20101214_updated.fa.split/TAIR10…

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

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

Pythonの環境を一旦リセットする

どうもややこしくていけないのだが、systemに入っているpython は2.6とかなりふるい目。なので自前でpython3を入れて使いたいわけだが バージョンの使い分けにpyenvというものがある。更にはvirtualenvというものもある。 しかしよく考えると、バージョンを…

2つのファイルを比較して、一方に含まれる文字列を他方から抽出

a.txt AT1G01000:10 AT1G01000:15 AT1G01000:20 AT1G01000:25 AT1G01001:10 AT1G01001:15 AT1G01001:20 AT1G01001:25 AT1G01002:10 AT1G01002:15 AT1G01002:20 AT1G01002:25 AT1G01003:10 AT1G01003:15 AT1G01003:20 AT1G01003:25 AT1G01004:10 AT1G01004:15…

flask runをデーモンサービスに

flaskで作ったwebアプリの起動を python3 manage.py runserver で行っていたが、このままではシステム立ち上げ時にそのまま起動できるようにならないので、uWSGIを介した起動をしないといけないのかなと思っていたが、flaskをpythonから読み込むのじゃなくて…

SQLとBLASTの連携

まず、SQLで抽出された遺伝子のIDを元にtranscriptのFASTAファイルから配列を抽出。 抽出した配列をfasta形式で一時保存し、Arabidopsisの遺伝子データベースに対してtblastxでサーチ。 結果をwebに表示。こんな流れを構築した。 https://pypi.python.org/py…

BLASTとの連携

生物種間で発現を比較しようとすると、アノテーションデータベースで橋渡ししてデータを見るということになるわけだが、アノテーションにはどうしても限界がある。 例えば生物Aで発現変動が見られた遺伝子について、生物Bでの発現を見る分にはアノテーション…

python3を整備

python3をlinuxbrewでインストールしたが、どうもすっきりしないのでここは一旦brew uninstallして王道どおりyumでインストールし直してみる。https://weblabo.oscasierra.net/python3-centos7-yum-install/基本このページの指示通りにインストールするのだ…

google compute engineの環境構築

今時の環境構築というかMacと同じようにやりたいということでHomebrewのLinux forkであるLinuxbrewをインストールすることから始めよう。 http://linuxbrew.sh 基本はこのサイトに書かれたとおりで良いだろう。その上で何はともあれPython3をインストール。…

改行コードに要注意

uniqコマンドで抽出作業をしているときに、不用意にデータファイルをmacのエディタで触ってしまうと改行コードがCRに置き換わってしまうことがある。そうするとその後の操作でuniqなどがちゃんと働かなくなる。 かなり注意しないといけない。あとpythonのcsv…

in_()に入るlistのサイズは最大で999らしい

あるqueryを組み立てて、結果出てくるものからlistを作って、そのlistに含まれるものをin_()を使って別のqueryの中でfilterしたいと思った。 q = session.query(Rna_snp) snp = q.distinct(Rna_snp.snp_hash).group_by(Rna_snp.snp_hash)snp.all() snp_list …

SQLからmatplotlibでグラフを作ってFlaskで表示

@app.route('/') def index(): import matplotlib.pyplot from matplotlib.backends.backend_agg import FigureCanvasAgg import io import random session = Session() q = session.query(Diff).filter(Diff.id <6).filter(Diff.id > 1).all() fig, ax = ma…

matplotlibでグラフをWeb上に表示

さて、Pythonでグラフをかけるようになったので、今度はそれをFlaskでweb上に表示させてみたい。 まえに参照したページはpython2系のコードだったようで、そのままではPython3ではエラーが出る。 なので、エラーを一つずつ潰していったところ @app.route('/'…

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…

sqlのDBからグラフを作って表示

集計してテーブルを作って、個々のデータから生データであるBAMを参照することはできるようになったが、テーブルを眺めていてもそれ以上進まないので、テーブルからグラフを描かせていきたい。https://qiita.com/5t111111/items/3d9efdbcc630daf0e48f この辺…

大きいカラムを遅延ロードするとパフォーマンスが上がるかもしれない

http://nauthiz.hatenablog.com/entry/20101024/1287938261これは有用かもしれない。

Bootstap的画面構成であちこち統一する

ファイルアップロードボタン周りの統一感がほしい。 https://qiita.com/nakapython/items/46d44793827920282f75 ここを参考に。 また、WTFーFlaskのhtmlの書き方は簡単に書くなら <h3>Edit</h3> <form class="form form-group form-group-sm" method="post" role="form"> {{ wtf.form_field(form.edit) }} {{ wtf.form_field(form.colum) }} {</form>…

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…

同じ動作にならないもの

q = select(["exome_temp.SampleName_phenotype, exome_temp.variant_id, exome_temp.variant_id, exome_temp.variant_id"], from_obj=['exome_temp']) ins = insert(Exome_sub2).from_select((Exome_sub2.SampleName_phenotype, Exome_sub2.variant_id, Exo…

ログ記録と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していたりする。これら…

JBrowse

JBrowseのインストールについてhttp://koke.asrc.kanazawa-u.ac.jp/HOWTO/JBrowse.htmlとりあえずダウンロードして展開までやった。setupしようとしたら please make sure that at least ExtUtils::MakeMaker is installed と怒られた。perlのモジュールをイ…

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

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

リンクファイルを自動で作成するスクリプト

まずリンク元のファイルをlsで列挙する ls /data/file/folder/*/*.bam > list.txtつぎにsedで行頭に'ln -s'をくっつける sed -e "s/^/ln -s /" list.txt >list_tmp.txtファイル名だけを取り出して列記する ls /data/file/folder/*/*.bam | xargs -i basename…

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…

todo

あと2週間でやっておくべきorやっておきたいことnginxとuwsgiの連携 Flaskページからshellを操作して、ファイルのリンクを自動生成する =>OK JBrowseの試験運転バグテストーフィックス UIの整理、改善など =>OK?