Java

パイソンをいじる

pythonを使い始める人とともに、しばしpythonをいじってみることにする $ python でLINUX内の"python"環境に入る >>> a=1 >>> b=3 >>> print a+1 とか #! /usr/bin/env python print "hello, python" なる"hello.py"なるファイルを $ python hello.py とかや…

ツールを統合する

いくつかのツールが散在していて、使いにくい。 まとめる努力をすることにする。 Java でアプリケーションでもあり、かつ、ウェブサイトのアプレットでもあるようにしたい(なるべく、想定利用者(実験系の皆さん)が気楽に使えるように・・・)が、複雑にす…

JGraphT

JGraphTは、Javaのグラフライブラリ こちらの記事を参照 ちなみにこの記事を載せたブログの管理者さんは、英語のチェックのこんなのもやっているし、Hatenarというサービスも管理しているとか。。。それによると、このryamada22ブログはこんな感じと。世の中…

リスクSNPの強さを分散ベースで評価してその検定パワーを計算する

講義説明用のツール。 たとえば以下のような条件を考えます(掲載図) 広義Heritability=0.6 着目SNPのアレル頻度は0.4 このSNPは遺伝因子全体の1%を説明する程度のものであって このSNPは集団でHWEを満足しており この疾病のphenocopy=0.2で 有病率が0.01 こ…

Ewens sampling formulaを遺伝現象的に説明し直す

Ewens sampling formulaは以下の式で表され、 [tex:Pr*1=\frac{n!\theta^k}{\theta^{\[n\]}}\prod_{i=1}^n \frac{1}{i^{m_i}m_i!}], このような式であらわされるような突然変異の係数について、サンプル数nのときの、異なるアレルの数の期待値は[tex:\sum le…

分割の個数を出す

Ewens sampling formulaについて数日前に書いた。それは、ある正の整数を正の整数の和で表す表し方と関係していることも書いた。 このように整数を整数の和で表すことを整数分割という。それについては、こちらを参照。 その整数分割のパターン数をJavaでべ…

上流から下流へ

今、家系図が与えられているものとする。遺伝子型データのシミュレーションをするとする。家系図の上流のサンプルの遺伝子型を決めたあとに、下流のサンプルの遺伝子型を決める必要がある。次のようにすることにする。 サンプル総数 N 家系図は、int tree = …

有病率、アレル頻度、HWD係数F、ディプロタイプ別リスクからケース・コントロールのディプロタイプ頻度を算出する。

public static double[][] CaseContFrac(double af,double f,double prev,double[] risk){ double[][] ret=new double[2][3]; double p=af; double[] total={ p*p+p*(1-p)*f,2*p*(1-p)*(1-f),(1-p)*(1-p)+p*(1-p)*f }; double[] ca={total[0]*risk[0],total[…

Cytoscape

発現解析に限定せず、グラフ可視化に転用しやすいとよいのだが・・・ すくなくともオープンソースで、Javaで、ネットワーク〜グラフで、可視化 こちら Javaソースをダウンロードして、解凍、その後、eclipseで適当な名称で、Javaプロジェクトを新規作成。プ…

兄弟(同胞)の遺伝子はどれくらい似ているか(2)

これの続き 組み換えを考慮する前に、染色体の長さが均等でない場合を考えよう 前回は、すべての染色体の長さが同じものと仮定した。 全部でk種類の染色体があり、なる長さの染色体とする 同胞がシェアする期待値は ただしはk種類の染色体の父母由来を0,1で…

自然数/2のガンマ関数

自然数について、は、偶数のときは自然数、奇数のときは、を含む リンク public static double GammaLN(int df){ double chiProb=0; int evenodd=(int)(df)%2; if(evenodd==0){ for(double i=(double)df/2-1;i>0;i--){ chiProb+=Math.log(i); } }else{ chiPr…

メモ ハプロタイプ・ディプロタイプの組換え履歴を分岐木管理

package homoStretch; import java.io.IOException; public class CousinMarriage { int id; int gen; int num; int[] numInGen; Person[] person; int len; double rec; Person rootPerson=new Person(-1,-1); public CousinMarriage(int id,int gen,int nu…

確率計算

ディリクレ分布については、Wikipediaの記事がこちら。 このWikipedia記事の図は、3つの独立事象について、 をの場合について、の範囲での範囲について計算し、その結果を、x1,x2の軸についてプロットしたものである。 これをエクセルで計算するとこんな感…

randomaccessfile

http://www.itarchitect.jp/beginners/-/46269-3.html http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=8010&forum=12&7 http://www.javaroad.jp/java_io9.htm http://www5c.biglobe.ne.jp/~ecb/java/15_31_02.html> library(ape) Warning message…

最短距離

距離"-1"はエッジなしに相当 public class WarshallFloyd { public static int[][][] WFshortestDist(int[][] a){ int n=a.length; int[][] dist=StatUtilsX.MiscUtilX.DeepCopyInt2(a); int[][] pred=new int[n][n]; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(dist[i][j]>0){ pred[i][j]=j; }else{</n;i++){>…

配置する

だいたいN個の点を半径1の球面上に「ほぼ均一に配置する」 N=1000を指定して1513個の点がプロットされた・・・(これが誤差) Javaで3次元座標として出力する public static void main(String[] args)throws IOException { int N=1000; new SphereCoords sc …

ちょっとメモ

public static double PrRatioChiPrExPrAllDF(double[][] d){ int df=(d.length-1)*(d[0].length-1); System.out.println("df=\t"+df+"\t"); //(ExPr/ChiPr) double ret = 1; double chi=Chi.chi(d); if(chi!=0){ double chiPr=0; double expr=0; double chi…

数値の精度

コンピュータによる数値計算における精度のこと。 浮動小数点のことなどあり、計算結果に誤差が出る話し。Mathematicaを用いて計算していたところ、任意精度という概念を採用していることはこちらに書いた。Mathematicaはを『1を3等分したもの』という形で…

お試し並列処理〜細工〜擬似乱数列の管理

パーミューテーションテストでモンテカルロを使うとすると、並列プロセスで用いる擬似乱数列も相互にランダムであることが必要である。シードから開始する擬似乱数列を用いる場合には、採取する擬似乱数を、プロセス数おきに採取させることによって、全プロ…

お試し並列処理〜小細工〜システム一時ファイルでプロセスの進行制御

管理ファイルの存在・非存在ループ 第1プロセスは管理ファイルを作成する。このファイルは、オリジナル検定セットが終了してから作成する。このファイルが非存在の間は、空ループを回し、k-1プロセスは先へ進まない String dir="hogedir"; String regulatio…

お試し並列処理〜システム一時ファイルでプロセスの進行制御

参考にしたのは、こちらの記事 javaの1プロセスの中に複数のスレッドを立てたりして制御するには、こんな処理ももちろんあるわけだけれども、今は、複数のノードでの制御なので、Javaの外に制御用存在を置く 想定実行条件 (1)今、kxN回のパーミュテーシ…

お試し並列処理〜パーミュテーションテストで

パーミュテーションテスト 処理構成 オリジナル検定セットの実行 パーミュテーション試行による検定セットの実行 パーミュテーション試行による検定セットの結果とオリジナル検定セットのそれとを比較して、集計 並列化 処理の単位は、検定セットの実行 検定…

並列処理

大きな処理があるとする。ほぼ同一な処理の繰り返しであるとする。それぞれの繰り返し処理単位は小さな出力を持つ。それぞれの繰り返し処理は、並列して行われる処理と、自身の処理との出力を単純に照合することで、継続するか否かの判断ができるとする。こ…

線形回帰

先日エクセルで線形回帰、という記事を書いた(こちら)。 その記事からリンクを張ったエクセルの計算をjavaにやらせたソースがこちら package StatUtilsX; public class LinearRegression { public int N; public double[] df; public double[] SumSq; public…

GC補正

やっつけ仕事でGC補正をしたいとき。 public class gC { public double lambdaori; public double lambda; public double[] correctedPs; public static double chimedian = 0.454936425; public double minpOri; public double minpCorr; public double min…

2x3分割表のKruskal-Wallis,Jonckheere-Terpstraの挙動

ここ数日の記事にて、形質に3タイプ以上の順位カテゴリや、量的形質を持ってきたときにKruskal-Wallis(3ジェノタイプに順序を考慮せず)と、Jonckheere-Terpstra(3ジェノタイプに順序を考慮する)とを適用することを書いてきた。今、ケースコントロール2x…

Jonckheere-Terpstra

import java.io.IOException; public class Jonckheere { int nGroup; int nRecord; int[] nRecPerGroup; double[][] data; //double[][] rank; double T; //double Tinv; double p; //double pinv; /** * @param args */ public static void main(String[] …

Kruskal-Wallisの準備。順位

public static double[][] bublSortSameValsRank(double[] p){ double[] copyP = DeepCopyDouble1(p); int[] ret = new int[p.length]; double[][] ret2 = new double[p.length][5]; for(int i=0;i<ret.length;i++){ ret[i]=i; } boolean flag=true; boolean sameflag=false; for(int i=copyP.length-1;i>=0;i--){ for(int …</ret.length;i++){>

Kruskal-Wallis

import java.io.IOException; public class kruskalWallis { int nGroup; int nRecord; int[] nRecPerGroup; double[][] data; double[][] rank; double T; double p; /** * @param args */ public static void main(String[] args) throws IOException { //…

ディプロタイプを観測するということ

今、全部で人いるとする。染色体ハプロイドはセットある。1つの2アレル型SNPについて着目すると、2種類のアレル数はを満足する。他方、2アレルが作る3ジェノタイプの人数はを満足する。 この分配方式を一般的に定義しなおすと次のようになる。 N個の観…