File1의 열을 일치시켜 File2에서 해당 fasta 시퀀스를 얻는 방법은 무엇입니까?

File1의 열을 일치시켜 File2에서 해당 fasta 시퀀스를 얻는 방법은 무엇입니까?

파일 1의 모든 객체 ID의 fasta 시퀀스를 복사할 수 있도록 파일의 첫 번째 열의 모든 값을 파일 2의 행 텍스트와 일치시키는 방법을 알려주십시오.

파일 1.csv 파일

Object_ID, Length, Assignment
NODE_142_length_92872_cov_11.2497,92872,2005469
NODE_405_length_50717_cov_10.7964,50717,82654
NODE_775_length_33402_cov_18.9306,33402,1147
NODE_1008_length_27630_cov_17.7829,27630,1184

파일 2 fasta.file

>NODE_1_length_501653_cov_19.284
TGGTGTGAGAGGCGCACCTCGCTAACTTTTCAGTTAGCGAGGCCGTCTACTCGATTAGCT
GTTATGAGCCCGACGAGCTACCAACTGCTCCATCCCGCGATATTGTGATGCAAAGGTAAG
>NODE_142_length_92872_cov_11.2497
ATTAACTACTAAGTTACAAATTTTAGTAGCTGTCCAGTTTAAAGGAAGTATTTCATATTT
TCGCTTACGTTAAATAGGAAAAGCAAGTTCTTTTTTGAGGTACCCAGTGAGTCTGATTTT

결과물 파일

>NODE_142_length_92872_cov_11.2497
ATTAACTACTAAGTTACAAATTTTAGTAGCTGTCCAGTTTAAAGGAAGTATTTCATATTT
TCGCTTACGTTAAATAGGAAAAGCAAGTTCTTTTTTGAGGTACCCAGTGAGTCTGATTTT

감사해요

답변1

이는 다음을 통해 수행할 수 있습니다.

for i in `awk -F ',' '{print $1}' file1.csv `; do grep $i fasta.file ; done

여기에서는 먼저 다음 Object_ID을 사용하여 file1.csv에서 추출합니다. awk -F ',' '{print $1}' file1.csv

그런 다음 그 주위에 루프를 실행하여 다른 파일에서 추출합니다.

답변2

Fasta 파일이 호출 fasta.fa되고 CSV 파일이 호출되어 sequences.csv다음과 같은 결과가 발생했다고 가정해 보겠습니다.SAM 도구(상당히 표준적인 생물정보학 패키지)가 설치됩니다.

  1. Fasta 파일 색인:

    samtools faidx fasta.fa
    
  2. 추출하려는 이름을 추출하십시오 regions.txt.

    awk -F, 'NR > 1 { print $1 }' <sequences.csv >regions.txt
    

    파일은 시퀀스 이름이 있고 추출 하려는 시퀀스의 영역을 나타내는 형식 region:start-stop(한 줄에 하나씩) 을 갖습니다. 나는 당신이 완전한 시퀀스를 추출하기를 원한다고 가정하고 있으므로 or 거기에 넣지 않을 것입니다.regionstartstopstartstop

    startCSV 파일의 숫자를 합계로 사용하려면 다음을 수행하세요 stop.

    awk -F, 'NR > 1 { printf("%s:%d-%d\n", $1, $2, $3) }' <sequences.csv >regions.txt
    
  3. 시퀀스를 추출하여 다음을 수행합니다 output.fa.

    samtools faidx -c fasta.fa -r regions.txt >output.fa
    

regions.txtFasta 파일에 없는 시퀀스 이름은 빈 시퀀스로 출력됩니다 output.fa( samtools이에 대해서도 경고가 표시됩니다).

또한보십시오:

관련 정보