У меня есть файл gff3.txt
с такими данными (миллиарды строк):
scaffold1000|size145372 . gene 16987 23149 . - . ID=evm.TU.scaffold1000|size145372.2;Name=EVM%20prediction%20scaffold1000|size145372.2
scaffold1000|size145372 . mRNA 16987 23149 . - . ID=evm.model.scaffold1000|size145372.2;Parent=evm.TU.scaffold1000|size145372.2;Name=EVM%20prediction%20scaffold1000|size145372.2
scaffold1000|size145372 . exon 22965 23149 . - . ID=evm.model.scaffold1000|size145372.2.exon1;Parent=evm.model.scaffold1000|size145372.2
scaffold9|size467357 . gene 373475 396789 . + . ID=evm.TU.scaffold9|size467357.56;Name=EVM%20prediction%20scaffold9|size467357.56
scaffold9|size467357 . mRNA 373475 396789 . + . ID=evm.model.scaffold9|size467357.56;Parent=evm.TU.scaffold9|size467357.56;Name=EVM%20prediction%20scaffold9|size467357.56
scaffold9|size467357 . exon 373475 373695 . + . ID=evm.model.scaffold9|size467357.56.exon1;Parent=evm.model.scaffold9|size467357.56
...
И другой файл `position.txt (миллиарды строк):
scaffold1000|size145372.2 scaffold1000|size145372:16987-23149
scaffold9|size467357.56 scaffold10008|size45161:373475-396789
...
И я ищу, чтобы получить это:
scaffold1000|size145372 . gene 16987 23149 . - . ID=evm.TU.scaffold1000|size145372:16987-23149;Name=EVM%20prediction%20scaffold1000|size145372:16987-23149
scaffold1000|size145372 . mRNA 16987 23149 . - . ID=evm.model.scaffold1000|size145372:16987-23149;Parent=evm.TU.scaffold1000|size145372:16987-23149;Name=EVM%20prediction%20scaffold1000|size145372:16987-23149
scaffold1000|size145372 . exon 22965 23149 . - . ID=evm.model.scaffold1000|size145372:16987-23149.exon1;Parent=evm.model.scaffold1000|size145372:16987-23149
scaffold9|size467357 . gene 373475 396789 . + . ID=evm.TU.scaffold10008|size45161:373475-396789;Name=EVM%20prediction%20scaffold10008|size45161:373475-396789
scaffold9|size467357 . mRNA 373475 396789 . + . ID=evm.model.scaffold10008|size45161:373475-396789;Parent=evm.TU.scaffold10008|size45161:373475-396789;Name=EVM%20prediction%20scaffold10008|size45161:373475-396789
scaffold9|size467357 . exon 373475 373695 . + . ID=evm.model.scaffold10008|size45161:373475-396789.exon1;Parent=evm.model.scaffold10008|size45161:373475-396789
...
Поэтому я хотел бы найти в столбце $9
файла gff3.txt
шаблоны, которые соответствуют столбцу $1
в position.txt
и затем измените их в соответствии с шаблоном столбца 2 файла position.txt
.
Я попытался с помощью awk:
awk '
NR==FNR{a[$9]
next
}
($2 in a) {
print
}' gff3.txt position.txt > output.txt
Но это не сработало.Может быть, это связано с тем, что шаблоны в столбце $9
из gff3.txt
включены в другую информацию?
Я также пытаюсь адаптировать эти потоки к своим данным, но я не достиг этого: stackoverflow1 , stackoverflow2 , stackoverflow3 , stackExchange ...
Любые рекомендации по кодированию этого в awk
, sed
или другие будут очень признательны.