2

この質問は、バイオインフォマティクスを学び、DNAデータ分析に不慣れな多くの人々が苦労していることです。

同じ列見出しのテーブルが20個あるとします。各テーブルは患者のサンプルを表し、各行はそのサンプルで変異した遺伝子座(サイト)を表します。各サイトは、染色体番号と塩基番号(1と43535、1と33456、1と3454353など)の2つの列によって一意に識別されます。その部位で遺伝子を与える遺伝子と呼ばれる列を含む、各突然変異の異なる特性を与えるいくつかの列があります。遺伝子内で複数の部位を突然変異させることができます。つまり、遺伝子列は1つのテーブルで複数回同じ値を持つことができます。

Geneと言って、これらすべてのテーブルを同時にクエリしたいと思います。Gene列から値を入力し、Gene列に遺伝子名が存在するすべてのテーブル(サンプル)の名前と、各サンプルの行全体(できれば)の名前を出力したいので、 1つの出力ページで複数のサンプルにわたるその遺伝子の変異の特徴を比較できます。

また、4という数字を入力し、20人の患者のうち少なくとも4人で変異した遺伝子のリスト(20個のテーブルのうち少なくとも4個の[遺伝子]列に名前が表示される遺伝子のリスト)を出力したいと思います。

これを行うための「最も簡単な方法」は何ですか?これら2つ以外に、より柔軟なクエリを作成したい場合の「最善の方法」は何ですか?

私は医学博士であり、特定のソフトウェアの専門知識はありませんが、このクエリシステムを構築するために必要な時間を費やすことをいとわないです。数行のコードで私は気が進まないでしょう。

例:データ:

Func    Gene    ExonicFunc                 Chr  Start       End        Ref  Obs
exonic  ACTRT2  nonsynonymous SNV           1   2939346     2939346     G   A
exonic  EIF4G3  nonsynonymous SNV           1   21226201    21226201    G   A
exonic  CSMD2   nonsynonymous SNV           1   34123714    34123714    C   T

これは列の3分の1です。ここのページサイズに合うように複数の列が削除されました...

ありがとうございました。

4

2 に答える 2

1

ユニオンのすべてのテーブルをまとめたビューを作成します。おそらく、どのテーブルtiが由来するかについての追加情報を追加する必要があります。

create view allpatients as
    select 'a' as whichtable, t.*
    from tableA t
    union all
    select 'b' as whichtable, t.*
    from tableB t
    ...

すべての患者を含むテーブルを作成することで、ビューを「インスタンス化」する方が簡単な場合があります。20個のテーブルを組み合わせてテーブルを再作成するストアドプロシージャを用意するだけです。

または、大きな個別のテーブル(数百万行)がある場合もあります。この場合、元の各テーブルをパーティションとして扱います。

于 2012-06-25T17:27:11.273 に答える
0

多数のExcelファイルがある場合は、それらすべてを同じテーブルにインポートして、患者IDの列を区別することができます。このために20の異なるテーブルを作成する必要はありません。実際、それは悪い考えです。

完了したら、Accessのクエリデザイン、SQLビューに移動し、次のクエリを使用します。

入力遺伝子名のすべてのフィールドを返すクエリを作成するには、次の手順に従います。

select *
from gene_data
where gene = [GeneName]

4つ以上のサンプルで変異した遺伝子名を返すクエリを作成するには:

select gene
from
(select gene, sample_id
from gene_data
group by gene, sample_id) g
group by gene
having count(sample_id) > 4

この後、デザインビューに変更します。GUIを使用して同様のクエリを作成する方法がわかります。

于 2012-06-25T17:57:23.747 に答える