ID の1 つの列ids.file
を含むテキスト ファイル (という名前)を読み取り、特別にフォーマットされた 2 番目のテキスト ファイル (この例では "fasta"という名前) を検索するのに素晴らしく機能する既存の perl ワンライナー (Edwards lab から) があります。バイオインフォマティクスを知っている人向けの形式) で、最初のファイルの ID に一致するシーケンスを返します。このスクリプトを拡張して、次の 2 つのことを追加したいと考えていました。fasta.file
- 現在の perl ワンライナーは、に 1 列のデータが含まれている場合にのみ機能するようです。
ids.file
2 つの列 (スペースで区切られている) を含むファイルで動作し、データの 2 番目の列 (まあ、実際にはデータの任意の列) で動作するようにしたいと思いますが、誰かが2番目の列を使用して例を挙げることができます) - 検索の出力から返された結果を、新しいファイルだけでなく、3 番目の列に追加したいと考えています。
誰かが親切に例を提供してくれたが、これらのいずれかに取り組む時間や傾向しかない場合は、#2 を解決することをお勧めします - awk のみを使用する for ループで #1 を解決することに近づいています。 2 番目の列の Perl コードを使用してください。まだ取得していませんが、近いので、#2 は私には難しいように思えます。
perl のワンライナーは次のとおりです。
perl -ne 'if(/^>(\S+)/){$c=$i{$1}}$c?print:chomp;$i{$_}=1 if @ARGV' ids.file fasta.file
私はあなたが与えることができる助けに感謝します!