遺伝子リストファイルがあります。このような
SWT21
SSA1
NRP1
EFB1
TFC3
MDM10
リスト内の遺伝子の名前と、そのその他の基本情報を含む別のファイルがあります。 2番目のファイルは次のとおりです。
chrI 147593 151166 YAL001C - TFC3
chrI 143706 147531 YAL002W + VPS8
chrI 142173 143160 YAL003W + EFB1
chrI 140759 141407 YAL004W + YAL004W
chrI 139502 141431 YAL005C - SSA1
chrI 137697 138345 YAL007C - ERP2
chrI 136913 137510 YAL008W + FUN14
chrI 135853 136633 YAL009W + SPO7
chrI 134183 135665 YAL010C - MDM10
最初のファイルの遺伝子名と同じ遺伝子名を持つ2番目のファイルの行を抽出したいと思います。
ベストアンサー1
必要なのは簡単ですgrep
。
grep -Fwf gene_list.txt gene_info.txt
使用されるオプションは次のとおりです。
- -w : 単語全体を検索します。これは、遺伝子名が
ERK1
遺伝子と一致しないことを保証しますERK12
(-w
標準オプションではありませんが、かなり一般的です)。 - -f:ファイルから検索するパターンを読み込みます。この場合は
gene_list.txt
。 - -F: パターンを正規表現ではなく文字列として扱います。これにより、このような遺伝子名
TOR*
(存在する場合)が一致しなくなりますTORRRRRR
。
注:これは次のように想定されます。スペースなしリスト内の遺伝子名を囲みます。ある場合は、まず削除する必要があります(ここではGNUを使用sed
)。
sed -i 's/ //g' gene_list.txt