特許庁由来データの整理 ファイル単位の整理


 * 特許庁由来データの整理

問題
よく見ると同じ名前のファイルがあちこちのディレクトリにあります.
 * 同じ名前で内容が違うのがあるのでしょうか？
 * どこが違うんでしょうか？
 * 何ででしょ？

同じ名前で同じ内容のファイルについてはuniqueすることにより、 JPO形式ファイルすべてのうち、内容が異なるもの一式を作成する.

方針
「富士通さんからもらったJPO関連ファイル一式のうち、JPOからDDBJへの送付ファイル全てに関するテーブル」を作成する. 具体的なテーブルの形式は以下のとおり.


 * (directory, file_name)の組で、ファイルを一意に表す. (identifier = (directory, file_name))
 * このテーブルの母集団は「JPOファイル形式、のファイル全て」である.
 * ファイルの内容が同一かどうかはMD5値を用いて判定する.

この方針でよい理由の説明
(file_name, md5)でテーブルをunique（同じ組がいくつもあるときは、最も古いタイムスタンプのものを選び出す）すると、 「JPO形式ファイル全て」のうち、内容が異なるファイル一式を作ることができる.

補足
特許庁由来データの整理 ファイル単位の整理 補足 : setA, setBの話

元のディレクトリ全体から、テーブルのキーとなるべき「ファイル」一式を取り出す方法
全ディレクトリの様子を目視した結果、以下のようなファイル名のパターンで「一式」が取り出せることが分かっている.

ただし、上記コマンドで拾えるファイルのうち、以下のファイルはJPO送付ファイルではない. /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/modify_data/data77/delete.aa.seq /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/modify_data/data77/delete.na.seq

以下のファイルは圧縮ファイルが壊れている. /home/o0gasawa/data/DDBJ/jpo/mirror_update/jpo/20050106.aa.seq.gz /home/o0gasawa/data/DDBJ/jpo/mirror_update/jpo/20070130.aa.seq.gz

以下のファイルは解凍してできるファイルのサイズが0である. /home/o0gasawa/data/DDBJ/jpo/mirror_update/jpo/20100127-001.aa.seq.gz /home/o0gasawa/data/DDBJ/jpo/mirror_update/jpo/20100222-001.aa.seq.gz /home/o0gasawa/data/DDBJ/jpo/mirror_update/jpo/20100319-001.aa.seq.gz

これ以外に、正規表現にマッチしない以下のファイルが存在する. /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/err/save/20020219.na.seq.err /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/err/save/20020801.na.seq.perr /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/err_newtool/20111004-001.aa.seq.failed /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/err_newtool/20111004-001.na.seq.failed /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/now_newtool/20120117-001.aa.seq.checked /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/now_newtool/20120117-001.na.seq.checked /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/now_newtool/20120118-001.aa.seq.checked /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/now_newtool/20120118-001.na.seq.checked /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/now_newtool/20120119-001.aa.seq.checked /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/now_newtool/20120119-001.na.seq.checked /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/server-bkp/db03/disk/release/mkrelease/jpo/data/err/save/20020219.na.seq.err /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/server-bkp/db03/disk/release/mkrelease/jpo/data/err/save/20020801.na.seq.perr /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/server-bkp/db03/disk/release/mkrelease/jpo/expand/data/err/save/20020219.na.seq.err /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/server-bkp/db03/disk/release/mkrelease/jpo/expand/data/err/save/20020801.na.seq.perr /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/modify_data/data56/old/org/20070502.na.seq.sythetase /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/1994/JP_DNA94.DAT.Z /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/1994/JP_PRT94.DAT /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/1995/JP_DNA95.DAT.Z /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/1995/JP_PRT95.DAT /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/1996/JP_DNA96.DAT.Z /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/1996/JP_PRT96.DAT /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/1998/japio_E00001-E14010.dat.980515 /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/1998/jp_dna.dat.980402 /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/1998/jp_prt.dat /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/1999/jp_dna.dat.990726 /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/1999/jp_prt.dat.990726 /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/2000/20000908.aa_final.seq /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/2000/20000908.na_final.seq /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/2000/jpoaa.20000908.seq /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/2000/jpona.20000908.seq /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/first_data/japio.dat.gz /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/modify_data/data76/2003.send_jpo.jpo.ff /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/tools/.old/work/t1.seq /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/tools/.old/work/t2.seq /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/tools/.old/work/t3.seq /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/tools/.old/work/t2_aa.seq /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/server-bkp/db03/disk/release/mkrelease/jpo/expand/tools/work/t1.seq /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/server-bkp/db03/disk/release/mkrelease/jpo/expand/tools/work/t2.seq /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/server-bkp/db03/disk/release/mkrelease/jpo/expand/tools/work/t2_aa.seq /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/server-bkp/db03/disk/release/mkrelease/jpo/expand/tools/work/t3.seq

/home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/1997/jp_dna1.dat /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/1997/jp_dna2.dat /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/1997/jp_dna3.dat /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/1997/jp_dna4.dat /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/1997/jp_dna5.dat /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/1997/jp_dna6.dat /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/1997/jp_prt1.dat /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/1997/jp_prt2.dat /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/1997/jp_prt3.dat /home/o0gasawa/data/DDBJ/jpo/mkrelease/jpo/data/old_data_backup_at_horn/JPO/jpo_update/1997/jp_prt4.dat

jp_dna*.dat, jp_prt*.datは分割されたファイルであるので、それぞれ連結して1ファイルにする必要がある.

タイムスタンプとmd5値をくっつける
これは各ファイルについて個別に求めれば良い. 比較的単純.

結論
以下のファイルリストが全JPO送付ファイルである.

アミノ酸配列


 * ファイル名が正規表現にマッチするJPO送付ファイルリスト：[[Media:Jpo_aa_file_list1.txt‎]]
 * ファイル名に規則性のないJPO送付ファイルリスト：[[Media:Jpo_aa_file_list2.txt‎]]
 * 1997年のJPO送付ファイルを分割したファイルリスト：[[Media:Jpo_aa_file_list3.txt]]

※Jpo_aa_file_list3.txtは分割されたファイルであるので、連結して1ファイルにする必要がある.

塩基配列


 * ファイル名が正規表現にマッチするJPO送付ファイルリスト：[[Media:Jpo_na_file_list1.txt‎]]
 * ファイル名に規則性のないJPO送付ファイルリスト：[[Media:Jpo_na_file_list2.txt‎]]
 * 1997年のJPO送付ファイルを分割したファイルリスト：[[Media:Jpo_na_file_list3.txt]]

※Jpo_na_file_list3.txtは分割されたファイルであるので、連結して1ファイルにする必要がある.