2015-01-15 2 views
0

Я пытаюсь использовать компьютер Windows для SSH на сервере Mac, запускать программу и передавать выходные данные обратно в мои Windows. Я смог успешно сделать это вручную, используя Putty.Запуск Plink изнутри R

Теперь я пытаюсь автоматизировать процесс, используя Plink. Я добавил к моему Plink Путь Windows, так что если я открываю CMD и введите команду, я могу успешно войти и передавать команды на сервер: Works manually!

Однако я хотел бы автоматизировать это с помощью R , чтобы оптимизировать процесс анализа данных. Основываясь на некоторых поисках, Интернет, похоже, считает, что команда shell лучше всего подходит для этой задачи. К сожалению, это, кажется, не найти Plink, хотя прохождение команд через shell на терминал работает:

Plink not recognized

Если я пытаюсь то же самое, но вручную, указав путь к Plink используя shell вывод не является вернулся, но команда, кажется, не работать (например, TESTFOLDER не создается):

enter image description here

кто-нибудь есть какие-либо идеи относительно того, почему Plink недоступен, когда я пытаюсь вызвать его из R? Альтернативно, если есть другие идеи о том, как это можно сделать в R, это также будет оценено.

Спасибо заранее, -sam

ответ

2

Я приехал сюда, искал ответ на этот вопрос, так что я только так много, чтобы предложить, но я думаю, что мне удалось получить первые шаги Plink к работе в R с помощью функции оболочки ...

Это то, что работает для меня:

НЕ в R:

  • Установите PLINK и добавьте его местоположение в свою ПУТЬ.
  • Загрузите примеры файлов из учебника PLINK (http://pngu.mgh.harvard.edu/~purcell/plink/tutorial.shtml) и поместите их в папку, путь которой не содержит пробелов (если вы не знаете чего-то, чего у меня нет, и в этом случае коснитесь его).

Тогда в R:

## Set your working directory as the path to the PLINK program files: ## 
setwd("C:/Program Files/plink-1.07-dos") 

## Use shell to check that you are now in the right directory: ## 
shell("cd") 

## At this point, the command "plink" should be at least be recognized 
# (though you may get a different error) 
shell("plink") 

## Open the PLINK example files ## 
# FYI mine are in "C:/PLINK/", so replace that accordingly... 
shell("plink --file C:\\PLINK\\hapmap1") 

## Make a binary PED file ## 
# (provide the full path, not just the file name) 
shell("plink --file C:\\PLINK\\hapmap1 --make-bed --out C:\\PLINK\\hapmap1") 

... и так далее.

Это все, что я сделал до сих пор. Но с какой-либо удачей зеркалирование структуры и общего формата этих строк кода должно позволить вам делать то, что вам нравится, с PLINK в пределах R.

Надеюсь, что это поможет!

PS. Вывод PLINK должен просто печатать на консоли R, когда вы запускаете строки выше.

Всего наилучшего,
- CC.

+0

Thanks Caitlin - я дам этот шанс в будущем и посмотрю, поможет ли он! Я обновил решение, которое я нашел ниже, если оно вам полезно. –

+0

@CaitlinCollins, я думаю, что вы смешиваете [командной строки ssh tool plink] (http://the.earth.li/~sgtatham/putty/0.53b/htmldoc/Chapter7.html), который, кажется, является тем, что OP прося с помощью [genomic analysis program plink] (http://zzz.bwh.harvard.edu/plink/) – Empiromancer

0

Только что увидел ответ Кейтлин, и это напомнило мне, что я никогда не обновлял свое решение. Мой подход был своего рода обходным решением, а не решением моей конкретной проблемы, но он может быть полезен другим.

После добавления Plink в мой PATH, я создал пакетный сценарий в Windows, в котором содержится всей моей Plink команды, то называется пакетный сценарий из R с помощью командной оболочки:

Таким образом, в R:

shell('BatchScript.bat') 

пакетный сценарий содержит все мои команды, которые я хотел использовать в Plink:

:: transfer file to phosphorus 
pscp C:\Users\Sam\...\file [email protected]**.**.208:/home/zipper/ 

:: open connection to Dolphin using plink 
plink -ssh [email protected]**.**.208 Batch_Script_With_Remote_Machine_Commands.bat 

:: transfer output back to local machine 
pscp [email protected]**.**.208:/home/zipper/output/ C:\Users\Sam\..\output\ 

Надежда, что кто-то помогает!

Смежные вопросы