Если вы собираетесь делать это часто, я предлагаю вам использовать пару инструментов, которые у меня есть 1 которые очень полезны для такого рода вещей:
fastatotbl
:
#! / bin / sh
gawk '{
Если (субстра ($ 1,1,1) == ">")
Если (NR> 1)
printf "\ N% S \ T", Substr ($ 0,2, длина ($ 0) -1)
еще
printf "% s \ t", субстра ($ 0,2, длина ($ 0) -1)
еще
printf "% s", $ 0
} End {printf "\ N"} '"$ @"
Сохранить этот файл как fastatotbl
в ~ / bin
и сделать его исполняемым с помощью chmod 755 ~ / bin / fastatotbl
.
Tbltofasta
#! / bin / sh
gawk '{
Последовательность = $ nf
ls = длина (последовательность)
это = 1.
FLD = 1.
пока (FLD "}
printf "% s", $ fld
Если (FLD == NF-1)
{
printf "\ n"
}
FLD = FLD + 1
}
в то время как (это
Сохранить этот файл в виде TBLTOFASTA
в ~ / bin
и сделать его исполняемым с помощью Chmod 755 ~ / bin / tbltofasta
.
Теперь, когда у вас есть эти два скрипта, вы можете использовать fastatotbl
, чтобы изменить свои последовательности Fasta в формат TBL (имя последовательности, вкладки, последовательность), которая гораздо проще для поиска:
FastaToTbl fileB | grep -f <(awk '{print $1}' fileA) | TblToFasta
Это использует сценарий fastatotbl
, чтобы положить последовательность и идентификатор в том же файле. awk '{Print $ 1}' Filea
печатает 1-е поле FLEA
и, потому что мы используем , это может быть передано как « Вариант файла «в GREP
-F
, который просит файл шаблонов для поиска. Наконец, TBLTOFASTA
возвращает формат Fasta.
Наконец, вы можете проверить мою скрипт Retroveseqs.pl
, который может сделать это и многое другое. Например, в этом случае вы могли бы только сделать:
retrieveseqs.pl -f fileB fileA
1 благодаря J.F. ABRIL, который изначально написал эти два сценария.
В зависимости от ваших потребностей вы можете достичь этого, выполняя одно из следующих действий.
Это может быть сделано с помощью X11Forwarding.
X11Forwarding YES
в / etc / ssh / sshd_config
XClock
(или другое X приложение, например Xeyes
) через вашу SSH Shell. Подробнее о xming / budlety: https://wiki.utdallas.edu/wiki/display/faq/x11+Forwarding: THEUSING+XMINGELEDENDANCEDANCEWUTTY
Это выглядит больше похоже на то, что вы хотите выполнить. Вы можете взять весь рабочий стол, используя VNC, так же, как вы будете использовать RDP на Windows.
Для GNOME:
Отредактируйте файл ~ / .vnc / xStartup, чтобы начать сеанс GNOME при запуске VNCERVER. Первый раз, когда вы запускаете сценарий VNCSERVER, он попросит вас пароль, который вы хотите использовать для вашего сеанса VNC.
Образец файла xstartup:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
#xsetroot -solid grey
#vncconfig -iconic &
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
eval `dbus-launch --sh-syntax –exit-with-session`
echo "D-BUS per-session daemon address is: \
$DBUS_SESSION_BUS_ADDRESS"
fi
exec gnome-session
-121--111698- Область получения дистрибутива не находится в объеме развития ядра. Таким образом, конкретный метод в настоящее время нет. Я прошу модуль Param в моем драйвере для этого. Вы также можете попросить переменную ENV во время компиляции.
Спасибо, за вашу помощь ...
Вы можете взглянуть на то, насколько FAITE делает это здесь .
Как сказал Ян, lsb_release, вероятно, лучше всего пойти, но это не может быть вашим единственным способом. Например, LSB_Release по умолчанию не присутствует на любом из моих серверов RHEL:
[damaya@damaya-sandbox script]$ lsb_release
-bash: lsb_release: command not found
[damaya@damaya-sandbox script]$ yum provides "*/lsb_release"
redhat-lsb-core-4.0-7.el6.centos.i686 : LSB base libraries support for CentOS
Repo : base
Matched from:
Filename : /usr/bin/lsb_release
так, если LSB_Release нет в системе, то ваш следующий шаг - получить информацию из файла / etc / * - выпуска. Однако, если это также не присутствует в системе, то вы не повезете. К сожалению, не существует 100% надежный способ получить эту информацию.
Большинство программ и скриптов, которые я видел, разбирают обычные файлы в /etc
, AFAIK не существует другого способа:
On Redhat, look for /etc/redhat-release
On Debian, look for /etc/debian_version
Mandriva has /etc/version
and Slackware has /etc/slackware-version
Вы также можете использовать uname
, чтобы получить ARCH
или, возможно, самый вменяемый способ, использовать lsb_release
.