Domテーブルにはポジティブのみが含まれ、ネガティブは含まれない場合、出力テーブルがそれらをマップできるように、ネガティブを生成する必要があります。
このクエリは、起源、ドメイン、種のすべての可能な組み合わせを取得します。
SELECT ds.domain, os.origin, ss.species FROM
(SELECT DISTINCT domain FROM Dom) ds
CROSS JOIN
(SELECT DISTINCT origin FROM Dom) os
CROSS JOIN
(SELECT DISTINCT species FROM Dom) ss
したがって、ネガを含む各組み合わせの「式の値」を取得するには、次のようにします。
SELECT completelist.domain, completelist.origin, completelist.species,
COALESCE(Dom.species, FALSE) AS found
FROM
(SELECT ds.domain, os.origin, ss.species
FROM
(SELECT DISTINCT domain FROM Dom) ds
CROSS JOIN
(SELECT DISTINCT origin FROM Dom) os
CROSS JOIN
(SELECT DISTINCT species FROM Dom) ss
) AS completelist
LEFT JOIN Dom ON (completelist.domain = Dom.domain &&
completelist.origin = Dom.origin &&
completelist.species = Dom.species)
データベースからレコードの配列を取得したら、 htmlテーブルとして出力できます。expressionvalueの値に従って要素のスタイルを設定します(cssを使用) 。<td>
したがって、出力は次のようになります。
<table>
<thead>
<tr>
<th>Origin</th>
<th>Domain</th>
<th>Blahbla_1234</th>
<th>wobble_4556</th>
<th>piffi_876</th>
</tr>
</thead>
<tbody>
<tr>
<th>KMT1</th>
<th>Kringel</th>
<td class='bothexist'> </td>
<td class='bothexist'> </td>
<td class='onlyprotein'> </td>
</tr>
<tr>
<th>KMT1</th>
<th>Helix</th>
<td class='bothexist'> </td>
<td class='onlyprotein'> </td>
<td> </td>
</tr>
<!-- etc. -->
</tbody>
<tfoot></tfoot>
<table>
面倒なのは、クエリから取得したデータを、テーブルを簡単に出力できる構造に再編成することです。
いずれにせよ、シェルスクリプトを使用してこれらすべてを実行することはできますが、おそらく高級言語を使用する方が簡単です。perlは伝統的にバイオインフォマティクスで使用されており、おそらく最も重要なBioPerlを含む多くの優れたライブラリが利用可能です。PythonとRubyも人気があります。phpは非常に人気があり、一般的な言語であり、特にWebサイトに適合しており、習得が非常に簡単であると考えられています(ただし、多くのプログラマーはそのさまざまな緩みに反対しています)。
これがあなたを有益な方向に向けてくれることを願っています。