Добавить столбцы, содержащие одинаковое значение, в файл с> 1M столбцами - PullRequest
1 голос
/ 17 сентября 2011

У меня очень большой файл с более чем миллионом столбцов. Мне нужно добавить второй, третий, четвертый, пятый и шестой столбцы в файл, причем второй столбец является копией первого, а остальные столбцы содержат одинаковое значение в каждой строке. Так, например, у меня есть файл, который выглядит так:

id1 A A C T ..
id2 A G T C ..
id3 G A T C ..
id4 G G T T ..
.   
.

И мне нужно изменить его на:

id1 id1 0 0 -9 -9 A A C T ..
id2 id2 0 0 -9 -9 A G T C ..
id3 id3 0 0 -9 -9 G A T C ..
id4 id4 0 0 -9 -9 G G T T ..
.   
.

Любые идеи о том, как сделать это эффективно под Unix (так как мне нужно повторять это много раз)?

Ответы [ 2 ]

3 голосов
/ 17 сентября 2011
sed 's/^\([^ ]*\)/\1 \1 0 0 -9 -9/'

Если написать программу на C ++ недостаточно быстро, это всего лишь пара строк.

0 голосов
/ 04 марта 2019

Я предполагаю, что мы пытаемся преобразовать этот файл в PLINK ped формат , если так, то нет необходимости добавлять эти столбцы, PLINK может обрабатывать нестандартные файлы с ниже флаги:

Текстовые файлы PLINK неправильного формата

Они позволяют вам использовать файлы .fam или .ped, которые не имеют идентификатора семьи, столбцы родительского идентификатора, пола и / или фенотипа.

--no-fid
--no-parents
--no-sex
--no-pheno
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...