我非常非常新的UNIX编程(通过终端在MacOSX Mountain Lion上运行).我一直在从生物信息学和分子方法课程(我们有两个类)学习基础知识,我们最终将使用perl和
python进行数据管理.无论如何,我们的任务是编写一个shell脚本从一组文件中获取数据,并以特定程序(Migrate-N)读取的格式将其写入新文件.
当我将它们输入到命令行中时,我已经得到了一些功能来完成我需要独立的功能,但是当我们将它们全部放在一个脚本中并尝试运行它时,我会收到一个错误.以下是详细信息(对于长度,我深表歉意):
#! /bin/bash grep -f Samples.NFCup.txt locus1.fasta > locus1.NFCup.txt grep -f Samples.NFCup.txt locus2.fasta > locus2.NFCup.txt grep -f Samples.NFCup.txt locus3.fasta > locus3.NFCup.txt grep -f Samples.NFCup.txt locus4.fasta > locus4.NFCup.txt grep -f Samples.NFCup.txt locus5.fasta > locus5.NFCup.txt grep -f Samples.Salmon.txt locus1.fasta > locus1.Salmon.txt grep -f Samples.Salmon.txt locus2.fasta > locus2.Salmon.txt grep -f Samples.Salmon.txt locus3.fasta > locus3.Salmon.txt grep -f Samples.Salmon.txt locus4.fasta > locus4.Salmon.txt grep -f Samples.Salmon.txt locus5.fasta > locus5.Salmon.txt grep -f Samples.Cascades.txt locus1.fasta > locus1.Cascades.txt grep -f Samples.Cascades.txt locus2.fasta > locus2.Cascades.txt grep -f Samples.Cascades.txt locus3.fasta > locus3.Cascades.txt grep -f Samples.Cascades.txt locus4.fasta > locus4.Cascades.txt grep -f Samples.Cascades.txt locus5.fasta > locus5.Cascades.txt echo 3 5 Salex_melanopsis > Smelanopsis.mig echo 656 708 847 1159 779 >> Smelanopsis.mig echo 154 124 120 74 126 NFCup >> Smelanopsis.mig cat locus1.NFCup.txt locus2.NFCup.txt locus3.NFCup.txt locus4.NFCup.txt locus5.NFCup.txt >> Smelanopsis.mig echo 32 30 30 18 38 Salmon River >> Smelanopsis.mig cat locus1.Salmon.txt locus2.Salmon.txt locus3.Salmon.txt locus4.Salmon.txt locus5.Salmon.txt >> Smelanopsis.mig echo 56 52 24 29 48 Cascades >> Smelanopsis.mig cat locus1.Cascades.txt locus2.Cascades.txt locus3.Cascades.txt locus4.Cascades.txt locus5.Cascades.txt >> Smelanopsis.mig
一系列greps只是将每个位点的每个位点的DNA序列数据拉出到新的文本文件中.示例… txt文件具有站点的样本ID号,.fasta文件具有按样品ID组织的序列信息;如果我单独运行,grep在命令行中工作正常.
第二组代码创建了我需要结束的实际的新文件,以.mig结尾.回波线是程序需要信息的计数数据(每个轨迹的基准图,分析中的人口,每个站点的样本等).猫线将通过由回波线中指定的特定于站点的信息下面的所有grepping创建的站点数据来将场所混合在一起.你无疑得到照片.
为了创建shell脚本,我已经在Excel中启动了,所以我可以轻松地复制粘贴/自动填充单元格,保存为制表符分隔的文本,然后在TextWrangler中打开该文本文件,将其保存为.sh文件(Line中断:与脚本中使用的所有文件相同的目录中的Unix(LF)和编码:Unicode(UTF-8)).我已经尝试使用chmod x FILENAME.sh和chmod u x FILENAME.sh尝试确保它是可执行的,但无济于事.即使我把脚本剪下来只是一个grep行(用#!/ bin / bash第一行),我无法让它工作.该过程只需要一段时间,当我直接键入命令行,因为这些文件中没有一个大于160KB,有些显着更小.这是我输入的内容,当我尝试运行文件时,我得到什么(HW是正确的目录)
localhost:HW Mirel$MigrateNshell.sh -bash: MigrateNshell.sh: command not found
我一直在这个无聊的两天,所以任何输入将不胜感激!谢谢!!