В Линукс есть встроенная команда od (octal dump):
od -An -i -v -w4 1r > 1r.txt
Полученный файл содержит только интенсивности сигнала (только значения по Y). Как получить значения X:
В файле proc (в той же дирректории, в которой лежит и 1r) есть параметры $SI и $XDIM. Первый это число точек в 1r. Его можно получить также командой:
cat 1r.txt | wc -l
Как правильно назвать $XDIM я не знаю. Но если разделить $SI на $XDIM то получится ширина спектра в ppm. Соответственно 1/$XDIM это число ppm на одну точку fid.
Теперь значения переменных нужно подставить в команду
cat 1r.txt | awk '{print ($SI-NR)*(1/$XDIM)-$Sdvig,$1}' > 1r.csv
Здесь NR - порядковый номер строки. $SI - NR - задает правильное направление шкалы ppm. $Sdvig - переменная, которая нужна, что-бы правильно расположить спектр относительно стандарта (например, метанола). В моем случае $Sdvig бы равен примерно 1.
Внимание. Направление шкалы в gnuplot (0->10) отличается от направления шкалы в ЯМР программе (10->0).
Или все команды вместе:
od -An -i -v -w4 1r > 1r.txt; SI=$(cat 1r.txt | wc -l); XDIM=$(cat proc | grep XDIM | awk '{print $2}'); cat 1r.txt | awk -v SI=$SI -v XDIM=$XDIM '{print (SI-NR)*(1/XDIM)-1,$1}' > 1r.csv
Комментариев нет:
Отправить комментарий