作者alpe (薛丁格的猫)
看板BioMedInfo
标题Re: [问题] 请问有无方便的程式或方法可帮我解决难 …
时间Thu Jul 31 11:58:02 2008
: ※ 引述《enisx (东方有比目鱼,不比不行)》之铭言:
: : 请教各位高手,
: : 我手上有外送回来定序的DNA序列文字档(.txt)
: : 里头大约有约700-1000条,档案已经转成FASTA格式了,
: : 但是,我想从每条DNA序列中"撷取"出我想要的部份,
: : 举例如下:
: : -------------------------------------------------------------
: : >123456
: : TACCTCTGTGCTGTGGGGCGGATCTGAAAAGCTGGTCTTT
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 132.183.24.60
: 推 alpe:grep -P '/TAC.*TTT/' target.txt 有linux的话? 07/30 01:12
: 推 vixen:一楼的办法遇到Unix/Win换行符号之差可能会有闪失 07/31 01:15
其实我比较想用 php 写 shell script 去跑
seq.php
#!/usr/local/bin/php -q
<?php
if(count($argv) < 2) {
die("\n pearl_reg file1 file2 ... ... \n");
}
array_shift($argv);
$reg = array_shift($argv);
if(empty($reg)) die();
echo $reg."\n";
foreach($argv as $fn){
$fc = file_get_contents($fn);
$chk = preg_match_all("$reg", $fc, $match);
if(!$chk) echo "\n $fn Not Match\n";
if(count($match[1]) == 0) continue;
foreach($match[1] as $line){
$line = preg_replace("/\s/", '', $line);
echo "\n$line\n";
}
}
echo "\n";
?>
test
>123456
ACGTGGTTAACCTTGGCCCCTACCTCTGT
GCTGTGGGGCGGATCTGAAAAGCTGGTCTTTGGCGTTGAAATTGTCCCAAAGTACA____ACTC
TGTGCTGTGGGGCGGATCTGAAAAGCTGGTCTTT
#php seq.php '/(TAC.*?TTT)/is' test
/(TAC.*?TTT)/is
TACCTCTGTGCTGTGGGGCGGATCTGAAAAGCTGGTCTTT
TACA____ACTCTGTGCTGTGGGGCGGATCTGAAAAGCTGGTCTTT
--
Live Long and Prosper
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.248.154.212
1F:→ hgsfhevil:c++也可以用这样的东西去做吗? 08/01 14:03
2F:→ alpe:行啊. 08/01 16:19
3F:→ alpe:晚上来 release win 下的执行档好了 08/01 18:13
4F:推 enisx:哇~~感谢a大 08/01 21:00
5F:→ enisx:顺道请问一下..这样子原始序号会留着吧?! 08/01 21:00
※ 编辑: alpe 来自: 59.121.121.35 (08/02 01:19)