다음 명령을 사용하여 패턴 목록을 추출할 수 있습니다.
fgrep -A 1 -f patternlist.txt filename.fasta
그러나 다른 파일(이 경우에는 Patternlist.txt)을 생성하지 않고 다른 명령의 출력에서 추출할 수 있는 방법이 있습니까?
예를 들어:
cut -d " " Cell_cycle.txt -f 1 | grep ...???... filename.fasta
편집하다:
Cell_cycle.txt는 다음과 같습니다.
$ cat Cell_cycle_Kegg_pathway
ctg2977_3.g207.t1 K06626
P05_Ctg654_12.g311.t2 K03094
P06_Ctg710_7.g346.t1 K05868
첫 번째 열을 가져와 fasta 파일에서 이러한 시퀀스를 추출하고 싶습니다.
편집 2:
시퀀스 목록이 있습니다.UniqueSeq_28Dec2014.fasta
>ctg1474_1.g69.t1 (first line)
atgaaatgttggtgcagcgccctggcacttctcc...... (second line)
>ctg1475_1.g70.t1 (third line)
atgaaattgcagcgccctggcacttctcctgcag...... (fourth line)
처음 두 시퀀스(라인 1부터 라인 4까지)를 인쇄하고 싶습니다. 하지만 이를 사용하여 head -4 UniqueSeq_28Dec2014.fasta
출력을 제공하는 것이 아니라 프로세스 대체를 사용하고 싶습니다.
다음 명령을 시도했지만 작동하지 않는 것 같습니다. 4개의 빈 줄만 보입니다.
grep -A 1 -Ff <(grep '>' UniqueSeq_28Dec2014.fasta |head -4) UniqueSeq_28Dec2014.fasta
답변1
프로세스 대체 사용 <()
:
fgrep -A 1 -f <(cut -d " " -f 1 Cell_cycle.txt) filename.fasta
답변2
그리고 이것은 (약간 더 짧고 더 읽기 쉽게):
grep -Ff <(awk '{print $1}' Cell_cycle.txt) filename.fasta