Мне интересно, может ли кто-нибудь помочь мне с конкретным вопросом кодирования. У меня есть файл секвенирования ДНК, который читает что-то вроде этого (в качестве примера):
Plate1A1_R1_AGTAGTACGACTAGCATCAGCATACGATCAGCATCAGCATCAG
Plate1A1_R1_GTAGATCGATGCATGCATGCTAGCTAGCTAGCTAGCTAGCTAA
Plate1A1_R1_AGCTAGCATCGATCGATGCTAGCATGCATCGATCGATGCATGC
Plate1A1_R2_AGCATCGATGCAGCATGCTAGCTAGCTAGCTAGCAGCTAGTCT
Plate1A1_R2_AGCATGCATCGATCGTAGCTAGCAGCGAGCGGCATCGATCGAT
Plate1A2_R1_CAGCTAGATGCATCGATCGATCGATCGATCGATGCTAGCTTAC
Plate1A2_R1_CAGTAGCATGCATGCATGCATGCATGCATCGATGCTAGCTAGC
Plate1A2_R1_ACAACGTAGCTAGCTAGCTACTACTAGTCATCATCGATGCTAG
Plate1A2_R1_CAGCTAGCTAGCTAGCTAGGCTACATCGATCGTAGCTAGTCGA
Plate1A2_R1_CAGTCAGCATGCTATCGATCGTAGCTAGTCATCGATGTAGTGA
....etc.
Вы можете видеть, что есть линии, которые принадлежат одному и тому же аналогичному начальному шаблону (здесь: Plate1A1_R1, Plate1A1_R2, Plate1A2_R1). Я хотел бы разместить пустую строку после каждой группировки, например:
Plate1A1_R1_AGTAGTACGACTAGCATCAGCATACGATCAGCATCAGCATCAG
Plate1A1_R1_GTAGATCGATGCATGCATGCTAGCTAGCTAGCTAGCTAGCTAA
Plate1A1_R1_AGCTAGCATCGATCGATGCTAGCATGCATCGATCGATGCATGC
Plate1A1_R2_AGCATCGATGCAGCATGCTAGCTAGCTAGCTAGCAGCTAGTCT
Plate1A1_R2_AGCATGCATCGATCGTAGCTAGCAGCGAGCGGCATCGATCGAT
Plate1A2_R1_CAGCTAGATGCATCGATCGATCGATCGATCGATGCTAGCTTAC
Plate1A2_R1_CAGTAGCATGCATGCATGCATGCATGCATCGATGCTAGCTAGC
Plate1A2_R1_ACAACGTAGCTAGCTAGCTACTACTAGTCATCATCGATGCTAG
Plate1A2_R1_CAGCTAGCTAGCTAGCTAGGCTACATCGATCGTAGCTAGTCGA
Plate1A2_R1_CAGTCAGCATGCTATCGATCGTAGCTAGTCATCGATGTAGTGA
....etc.
Это означает, что мне нужно иметь возможность захватить первые 11 символов каждой строки, найти, где этот шаблон больше не встречается в строке ниже, и вставить пустую строку в этой точке.
Я попытался использовать sed и awk с помощью циклов 'while read line', но не могу найти способ удержать первые 11 символов в переменной поиска, которые будут использоваться в последовательных строках текстового файла, если этот поиск переменная «застревает» при обработке отдельной строки.
Я надеюсь, что кто-то может помочь с решением, которое позволило бы получить доступ к указанному файлу с помощью перенаправления (<
) (с сотнями строк данных последовательности ДНК в этом формате и несколькими сотнями различных «имен пластин», определенных как скрипт перемещается по файлу построчно), например, while read line ; do echo "${line:0:11}" ; done < filename.txt