일부 위치가 포함된 파일이 있습니다.
head positions
142541687
142541814
142541910
142542976
142544533
142546366
142548674
142560386
1800개의 파일이 포함된 또 다른 폴더가 있는데, 각 파일은 한 사람(총 1800명)에게 속합니다. 2열은 위치이고 4열은 개인 ID입니다.
head NA20507.mapped.ILLUMINA.bwa.TSI.low_coverage.20130415.bam_dp
1 142541687 78 NA20507
1 142535975 79 NA20507
1 142535976 79 NA20507
1 142535977 77 NA20507
1 142535978 78 NA20507
1 142535979 77 NA20507
아니면 다른 사람의 예를 들면,
head NA20901.mapped.ILLUMINA.bwa.GIH.low_coverage.20120522.bam_dp
1 142541687 135 NA20901
1 142535975 135 NA20901
1 142535976 137 NA20901
1 142535977 138 NA20901
1 142535978 138 NA20901
1 142535979 136 NA20901
1 142535980 135 NA20901
각 개별 파일에 대해 위치 파일의 위치가 있는 행만 유지하고 싶지만(개별 파일의 두 번째 열은 위치 파일과 일치함) 각 위치에 대해 개별적으로 저장하고 싶습니다!
cat NA20507.mapped.ILLUMINA.bwa.TSI.low_coverage.20130415.bam_dp_match142541687
1 142541687 78 NA20507
마지막으로 모든 개인에 대해 이 파일을 병합하고 싶습니다(예: 위치 142541687).
head desired_pos142541687
1 142541687 78 NA20507
1 142541687 135 NA20901
또는 위치 142542976;
desired_pos142542976
1 142535976 79 NA20507
1 142535976 137 NA20901
답변1
이는 이미 접한 비슷한 질문에 대한 대답과 거의 동일합니다. 먼저 하나의 파일(위치)을 읽은 다음 다른 파일을 구문 분석하고 데이터를 추출합니다.
awk 'NR == FNR { pos[$1]=1; next } $2 in pos { f="desired_pos" $2; print >>f; close(f) }' positions NA*.bam_dp
질문에 두 개의 개별 파일이 주어지고 positions
142535975를 포함하는 경우 desired_pos142535975
다음을 포함하는 파일이 생성됩니다.
1 142535975 79 NA20507
1 142535975 135 NA20901
모든 위치가 염색체 1(또는 적어도동일한염색체(개별 파일과 동일), 파일 내 위치 외에 염색체 이름 정보가 없기 때문입니다 positions
.