У меня есть файл SD для чтения. Я не мог загрузить весь файл. поэтому я сделал снимок на изображении ниже.Чтение файла SD и извлечение информации обо всех фрагментах
Это файл SD (файл структурных данных), который объясняет структуру молекулы. 803 и AMH - две молекулы. Кроме того, внутри одной молекулы имеется несколько фрагментов. Каждый фрагмент разделяется знаком четыре доллара ($$$$). Я новичок в Perl, поскольку я являюсь студентом биомедицинских исследований. Тем не менее, я написал сценарий, который обнаруживает появление $$$$, а затем появление кода молекулы (здесь 803) в строке рядом с ним.
{
open (FILE, '<', "try_803.txt");
my $ligandcode="803";
while (<FILE>) {
my $nextline = <FILE>;
if ($_=~/\x24\x24\x24\x24/ && $nextline=~/$ligandcode/){
# do something
}
}
}
Этот код проверяет очень первое вхождение $$$$ с последующим 803. Но, я хочу, чтобы в дальнейшем перейти к следующему вхождению $$$$ с последующим 803. Я не знаю, сколько будет происходить этот шаблон. технически я не могу указать отсутствие фрагмента перед рукой. Можете ли вы помочь мне улучшить этот код и найти решение проблемы. Я буду благодарен.
Спасибо. Это сработало. Но этот скрипт пропускает весь блок в $ молекуле. И я хочу получить доступ к каждой строке отдельно, чтобы выполнить какую-то другую функцию. Пожалуйста, помогите – shpr
'@lines = split (/ \ n /);' – tripleee
thanks.But, когда я использую следующий код, 4-я строка печатается в куске 1, однако 5-я строка печатает в другом фрагменте. 'while () { \t my $ молекула = $ _; \t my @ lines = split (/ \ n /); \t print $ lines [3], "\ n"; } 'Я хочу указать, что каждый кусок начинается с $$$$ и 8033 в следующей строке. Таким образом, $$$$ становится первой строкой каждого куска, а 803 становится второй строкой. пожалуйста, помогите –
shpr