Мне нужно получить 2 вещи из входного файла tsv:
1- Чтобы узнать, сколько уникальных строк есть в данном столбце, где отдельные значения разделены запятой. Для этого я использовал приведенную ниже команду, которая выдала мне уникальные значения.
$awk < input.tsv '{print $5}' | sort | uniq | wc -l
Пример входного файла с заголовком (6 столбцов) и 10 строками:
$cat hum1003.tsv
p-Value Score Disease-Id Disease-Name Gene-Symbols Entrez-IDs
0.0463 4.6263 OMIM:117000 #117000 CENTRAL CORE DISEASE OF MUSCLE;;CCD;;CCOMINICORE MYOPATHY, MODERATE, WITH HAND INVOLVEMENT, INCLUDED;;MULTICORE MYOPATHY, MODERATE, WITH HAND INVOLVEMENT, INCLUDED;;MULTIMINICORE DISEASE, MODERATE, WITH HAND INVOLVEMENT, INCLUDED;;NEUROMUSCULAR DISEASE, CONGENITAL, WITH UNIFORM TYPE 1 FIBER, INCLUDED;CNMDU1, INCLUDED RYR1 (6261) 6261
0.0463 4.6263 OMIM:611705 MYOPATHY, EARLY-ONSET, WITH FATAL CARDIOMYOPATHY TTN (7273) 7273
0.0513 4.6263 OMIM:609283 PROGRESSIVE EXTERNAL OPHTHALMOPLEGIA WITH MITOCHONDRIAL DNA DELETIONS,AUTOSOMAL DOMINANT, 2 POLG2 (11232), SLC25A4 (291), POLG (5428), RRM2B (50484), C10ORF2 (56652) 11232, 291, 5428, 50484, 56652
0.0539 4.6263 OMIM:605637 #605637 MYOPATHY, PROXIMAL, AND OPHTHALMOPLEGIA; MYPOP;;MYOPATHY WITH CONGENITAL JOINT CONTRACTURES, OPHTHALMOPLEGIA, ANDRIMMED VACUOLES;;INCLUSION BODY MYOPATHY 3, AUTOSOMAL DOMINANT, FORMERLY; IBM3, FORMERLY MYH2 (4620) 4620
0.0577 4.6263 OMIM:609284 NEMALINE MYOPATHY 1 TPM2 (7169), TPM3 (7170) 7169, 7170
0.0707 4.6263 OMIM:608358 #608358 MYOPATHY, MYOSIN STORAGE;;MYOPATHY, HYALINE BODY, AUTOSOMAL DOMINANT MYH7 (4625) 4625
0.0801 4.6263 OMIM:255320 #255320 MINICORE MYOPATHY WITH EXTERNAL OPHTHALMOPLEGIA;;MINICORE MYOPATHY;;MULTICORE MYOPATHY;;MULTIMINICORE MYOPATHY MULTICORE MYOPATHY WITH EXTERNAL OPHTHALMOPLEGIA;;MULTIMINICORE DISEASE WITH EXTERNAL OPHTHALMOPLEGIA RYR1 (6261) 6261
0.0824 4.6263 OMIM:256030 #256030 NEMALINE MYOPATHY 2; NEM2 NEB (4703) 4703
0.0864 4.6263 OMIM:161800 #161800 NEMALINE MYOPATHY 3; NEM3MYOPATHY, ACTIN, CONGENITAL, WITH EXCESS OF THIN MYOFILAMENTS, INCLUDED;;NEMALINE MYOPATHY 3, WITH INTRANUCLEAR RODS, INCLUDED;;MYOPATHY, ACTIN, CONGENITAL, WITH CORES, INCLUDED ACTA1 (58) 58
0.0939 4.6263 OMIM:602771 RIGID SPINE MUSCULAR DYSTROPHY 1 MYH7 (4625), SEPN1 (57190), TTN (7273), ACTA1 (58) 4625, 57190, 7273, 58
Так что в этом случае строка это имя гена, и я хочу подсчитать уникальные строки во всем отрезке 5-го столбца, где они разделены запятой и пробелом.
2- Далее порядок данных фиксирован и упорядочен в соответствии с оценкой столбца 2. Итак, я хочу знать, где находится ген интереса, помещенный в этот ранжированный список в столбце 5 (Gene-Symbols). И это должно быть сделано после удаления дубликатов, поскольку одни и те же гены повторяются на основе других параметров в остальных столбцах, но это не касается моего окончательного результата. Мне нужно сосредоточиться только на ранжированном списке согласно столбцу 2. Как мне это сделать? Есть ли команда, которую я могу передать вышеупомянутой команде, чтобы получить позицию заданного значения?
Ожидаемый результат: Если я наберу команду в точке 1, то она должна дать мне уникальные гены в столбце 5. У меня всего 18 гены в столбце 5. Но уникальные значения равны 14. Если интересующий ген равен TTN , то его первое вхождение было на второй позиции в исходном ранжированном списке. Следовательно, ожидаемый ответ о том, где находится мой ген интереса, должен быть 2.
$14
$2
Спасибо