Вы можете зайти в настройки системы -> Клавиатура -> Макет -> Параметры и настроить его там. Это не требует написания каких-либо сценариев или запуска каких-либо программ при входе в систему. Просто настройте один раз и наслаждайтесь.
PS: Это было опробовано на Linux Mint 15 Cinnamon, Linux Mint 16 Cinnamon, Linux Mint 16 XFCE, Fedora 24 GNOME и Manjaro KDE. Я уверен, что в Ubuntu 14.04 также будет аналогичная опция для настройки.
В простейшем случае, когда вы хотите, чтобы к всем именам генов было добавлено _N
, даже если они появляются только один раз, вы можете сделать:
$ awk '$4=$4"_"++a[$4];' file.gff
chr1 66999638 66999638 SGIP1_1 1 +
chr1 66999251 66999251 SGIP1_2 1 +
chr1 33545778 33549778 AZIN2_1 1 +
chr1 8376144 8380144 SLC45A1_1 1 +
chr1 16765166 16769166 NECAP2_1 1 +
chr1 33544713 33548713 AZIN2_2 1 +
chr1 25069759 25073759 CLIC4_1 1 +
chr1 33544729 33548729 AZIN2_3 1 +
chr1 50487626 50491626 AGBL4_1 1 -
chr1 92349836 92353836 TGFBR3_1 1 -
Обратите внимание, что это будет измените разделитель полей на один пробел. Чтобы разделить их табуляцией (как и должны быть файлы GFF), используйте:
$ awk -vOFS="\t" '$4=$4"_"++a[$4];' file.gff
chr1 66999638 66999638 SGIP1_1 1 +
chr1 66999251 66999251 SGIP1_2 1 +
chr1 33545778 33549778 AZIN2_1 1 +
chr1 8376144 8380144 SLC45A1_1 1 +
chr1 16765166 16769166 NECAP2_1 1 +
chr1 33544713 33548713 AZIN2_2 1 +
chr1 25069759 25073759 CLIC4_1 1 +
chr1 33544729 33548729 AZIN2_3 1 +
chr1 50487626 50491626 AGBL4_1 1 -
chr1 92349836 92353836 TGFBR3_1 1 -
Если вы хотите изменить имена только тех генов, которые появляются более одного раза, это становится немного сложнее:
$ awk -vOFS="\t" '(++a[$4]>1){$4=$4"_"a[$4]-1}1;' file.gff
chr1 66999638 66999638 SGIP1 1 +
chr1 66999251 66999251 SGIP1_1 1 +
chr1 33545778 33549778 AZIN2 1 +
chr1 8376144 8380144 SLC45A1 1 +
chr1 16765166 16769166 NECAP2 1 +
chr1 33544713 33548713 AZIN2_1 1 +
chr1 25069759 25073759 CLIC4 1 +
chr1 33544729 33548729 AZIN2_2 1 +
chr1 50487626 50491626 AGBL4 1 -
chr1 92349836 92353836 TGFBR3 1 -
Использование awk
awk -vOFS="\t" '{$4=a[$4]++?$4"_"a[$4]-1:$4}1' file
chr1 66999638 66999638 SGIP1 1 +
chr1 66999251 66999251 SGIP1_1 1 +
chr1 33545778 33549778 AZIN2 1 +
chr1 8376144 8380144 SLC45A1 1 +
chr1 16765166 16769166 NECAP2 1 +
chr1 33544713 33548713 AZIN2_1 1 +
chr1 25069759 25073759 CLIC4 1 +
chr1 33544729 33548729 AZIN2_2 1 +
chr1 50487626 50491626 AGBL4 1 -
chr1 92349836 92353836 TGFBR3 1 -
Устанавливает $ 4 равным самому себе, если было обнаружено только одно событие, или добавляет _
, тогда количество обнаруженных вхождений минус 1.