輪郭の曲率を計算してみた

# モジュールのインポート import cv2 import numpy as np import matplotlib.pyplot as plt from scipy.signal import find_peaks from matplotlib.animation import FuncAnimation 入力画像 今回はキュウリ画像を例にその輪郭の曲率を計算してみました。 i…

RustでOpenCV使ってみた

RustからOpenCVのロジックを呼び出す理由は特に無いのですが、Rustが好きなのでやってみました。 参考 https://github.com/twistedfall/opencv-rust https://docs.rs/opencv/latest/opencv/ 事前準備 MacOSでは brew install opencv でOpenCVをインストール…

ShinyProxyとnginxで解析用サーバを構築する

nginxとShinyProxyを使ってShinyアプリをホストするサーバを構築することがあったのでその作業を忘れないようにメモします。 以下システムのイメージ図です。 環境 Ubuntu 22.04 Docker 24.0.1 nginx 1.18.0 ShinyProxy 3.0.0 NGINXをリバースプロキシとして…

react-well-platesを使ってみた

前回ちらっと紹介したReactコンポーネントライブラリreact-well-platesを使ってみました。公式のStorybookが参考になりました。 下準備 まず、create-react-appによるアプリの骨組み作成とnpmによるライブラリのインストールを行います。 npx create-react-a…

React使って96well plate表現してみた

menseki.hatenablog.jp この記事を書いたときに96 well plateのインターフェースをjavascriptで書いてみたいと思っていたのですが、なんとなくReactのドキュメント読んで適当に書いてみたら自分でもよくわからないまま、なんか動くものができたので一旦ここ…

Rで多重forを回避するTips

多重forが発生するケース 例えば3個のパラメータについて、いくつかのパターンの総組合せを試したいということ があるかと思います。 f <- function(x, y, z) { # x, y, zを使って何かするコード sprintf("x: %d, y: %d, z: %d", x, y, z) } x_list <- c(1, …

Rustをスクリプトとして実行する

rust-script(https://rust-script.org/)を使うとRustのソースコードをスクリプトとして実行できます。Rust 1.54以上が必要です。 今回は公式のマニュアル(上記URL)からいくつか抜粋して説明します。 以下の説明はUNIX系OSで実行することを前提としています…

FMIndexで高速に塩基配列を検索してみた

今回は以下のリポジトリにあるCライブラリを使用してみた記録です。 https://github.com/TravisWheelerLab/AvxWindowFmIndex ライブラリのビルド まずは以下の要領でライブラリのビルド〜インストールを行いました。パス等は各環境で適切な値に変えます。 (M…

Rustで編集距離k以内の塩基配列を全列挙する

編集距離k以内の塩基配列("ATGC"のみ許可)を深さ優先探索で列挙するRustコードを書いたので備忘録として残しておきます。もうちょっとコードをキレイにしたかったのとテストコードは宿題にします。 use bio::alphabets; #[derive(Clone, Copy)] enum Opera…

簡単な輪郭(形)の解析をしてみました

輪郭(形)というと一見定量的に評価するのが難しそうな対象ですが、実は意外とできるということで簡単に実験してみました。 今回の方法の基盤となるのはフーリエ記述子という概念です。 解析対象は最近スーパーでニンジンを大量に買ったのでそれを使いまし…

葉面積測るアプリ作りました

これまでの記事で扱ってきた葉面積算出手順を簡単なWebアプリにしました。 https://simple-leaf-area.herokuapp.com 上記リンクにアクセスすると下図の右のようなページが開きます。 最初の画面 "Drag and Drop" と書いてあるエリアに葉面積を測りたい対象が…

bcftoolsのフィルタリングにおける条件式について

(本記事の内容はすべてをテストして調べたわけではないので、正しいことを保証できません。最終的には公式のマニュアルを参照されることをおすすめします。) bcftoolsの多くのサブコマンドで使うことのできるフィルタリング用のオプションとして、 -i, --in…

被写体までの距離と画像から算出される面積の関係

画像上での被写体のサイズはカメラ-被写体間の距離に依存します。例えば被写体がカメラの近くに存在するときは大きく写ります。このことは、植物の非破壊によるフェノタイピングを行うため、例えば植物を上から取った画像から葉面積を算出するといった際に大…

samtools faidxについて考えてみた

faidxと言えばsamtoolsに実装されている機能の1つで、FASTAやFASTQファイルのインデックスを作ったり部分配列を取り出したりするときに便利なプログラムです。今回はこれについて理解を深めるため簡単な実験をしてみました。 以下のようなテストデータを用意…

Shinyで96(384)-well plateのインターフェースを作ってみた

(以下の記事はR 3.6.3で試しています。) Rはプロットに関する関数が充実して勘所をつかむと結構いろいろなお絵描きができます。例えば私は以前の記事でこんなアホなことをしています。 menseki.hatenablog.jp そして、学生時代よく実験で使っていた96(384)…

PythonでGGGenome検索

GGGenomeといえば配列を高速で検索してくれるサービスですが、そのトップページに記載の通り、REST APIの形でサービスを提供しているため、Pythonからも結構簡単に結果を取得できます。そこで、今回はpythonからGGGenome検索を行うためのスクリプトを描いて…

二項分布とカイ二乗検定(と遺伝)

とある標本がとある分布に従ってサンプリングされたかを検定する方法として適合度の検定を行うことがあると思います。 今回は、得られた分離集団の形質の分離比が想定する遺伝様式に即しているかについての検定について見ていきたいと思います。 分離比に対…

Rust-BioでGzip圧縮されたFASTAを読み込む

Rustが注目を集めているらしいので流行りにのって使ってみました。 RustにはRust-Bioというバイオインフォマティクス用パッケージが存在します。そこで、今回はこれを用いてGzip圧縮されたFASTAファイルを読み込むプログラムを書いてみます。 まずはコードの…

枝豆データセットを分類してみた

この間会社の先輩から「IT農家のラズパイ製ディープ・ラーニング・カメラ」(2020、小池誠)という本を貸していただいたので読んでみました。その中でディープラーニングの応用例として枝豆の莢の画像を2粒莢と3粒莢に分けるというタスクが紹介されていまし…

ラズパイで植物の定点観測

数年前にRaspberry Piを購入してたのですがちょっと遊んだまま放置になっていたので何か意味のある 装置を作ってみようと最近になって思い立ったので作ってみました。 作ったものはセルトレー上で育てている植物を上からカメラで定点観測するというものです…

ImageJで葉面積を測ってみた

ImageJを使って単純な方法で画像から葉面積を測ってみました。大まかな方法としては、画像から緑の部分を選択して選択された部分の面積(ピクセル数)を数える感じです。 RGBからLab色空間に変換する RGBのGチャンネルが高いピクセルが緑だと思いそうですが…

Organelle_PBAを使ってみた

ちょっと古いですがOrganelle_PBA (https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5219736/) というPacBioロングリードシーケンスのオルガネラ用アセンブラを使ってみました。Organelle_PBAはさまざまなアセンブリに関するプログラムを組み合わせて自動的に…

vcfから周辺配列の取得

VCFファイルから周辺配列(flanking sequence)を取得したいとき、様々な方法が考えられると思います。今回はその中で bedtools を用いた方法を考えていきたいと思います。 bedtools flank というコマンドが周辺配列をとってくる際に用いるコマンドですが、…

RepeatMaskerを使ってみた

RepeatMaskerとは RepeatMasker はその名の通りリピートをマスキングしてくれるようなプログラムです。ホームページはhttp://www.repeatmasker.orgです。解析はhttp://www.repeatmasker.org/cgi-bin/WEBRepeatMaskerから可能です。また、ローカルで実行する…

primer3 コマンドライン版を使ってみた

プライマーデザインツールといえば、言わずとしれた primer3 でしょう。 私もよくお世話になっているツールですが、これまでは Web版 を 主に利用してきました。 しかし、一度に大量のプライマーを作成するとなるといちいちサイトでクリックをしているのはと…

bedtoolsについて思ったこと

最近 bedtools を使ってて躓いたところがありました。 bedtools maskfasta を使っていたのですが全くマスクされた配列が出力されず、 入力がそのまま出力されているように見えていました。 特にエラーも吐かず平然とインプットファイルと同じアウトプットを…

snakemakeでバリアントコールパイプライン構築

今回は snakemake でバリアントコール パイプラインを構築してみたいと思います。 bcftoolsによるバリアントコール まずはbamファイルからバリアントコールを行うルールを書いていきます。 rule bcftools_mpileup_call: input: rg="read_groups.tsv", bam=ex…

vcfファイルのサンプル名を変えたい

vcfファイルのサンプル名がbamファイル名なんですけど… bcftoolsで何も考えずにバリアントコールをしたとき、vcfのサンプル名はbamファイル名になっています。 別にこのままでもいいかもしれませんがなんかダサい感じがします。 そこでvcfの列名の部分にサン…

MBCluster.Seqで遺伝子間クラスタリング

RNA-seqデータのクラスタリング RNA-seqでは得られたリードを遺伝子やエキソンごとに数え上げることで発現解析を行うことは一般的なワークフローの一つです。得られたカウントデータは通常、行に遺伝子またはエキソン、列にサンプルが並ぶような形の数値行列…

Genome Graphを参照配列とする時代が来たみたいです

Reference Bias 現在広く普及しているゲノム配列解析では、実験対象の種のゲノム配列を代表する参照配列(リファレンス)を用意し、それに対しシーケンスされたリードをマッピングするという手順を踏みます。 しかし、この方法にはReference Biasという現象…