파일의 열 13에 "p"가 포함된 경우 ".tsv" 파일에서 "exonic"을 grep하고 싶습니다.

파일의 열 13에 "p"가 포함된 경우 ".tsv" 파일에서 "exonic"을 grep하고 싶습니다.

exonic파일 .tsv의 열 13 에 p..

필요한 코드를 도와주실 수 있나요?

참고: 아미노산 변화가 없는 엑손 변형도 있으므로 13열에 언급된 아미노산 변화가 있는 엑손 변형을 필터링하고 싶습니다.

  • p.아미노산 변화를 나타냅니다. 예는 다음과 같습니다.
    CD24:uc004ftz.1:exon1:c.A130T:p.T44S
    
  • p.이는 아미노산 변화가 있는 모든 변종에 공통적으로 나타납니다.

예는 다음과 같습니다.

hrY 21154569 21154569 A G PASS hom exonic CD24 . synonymous SNV CD24:NM_001291737:exon1:c.T27C:p.L9L,CD24:NM_001359084:exon1:c.T27C:p.L9L,CD24:NM_013230:exon1:c.T27C:p.L9L,CD24:NM_001291738:exon2:c.T27C:p.L9L

새로 주석이 달린 .tsv파일에는 때때로 서로 다른 열의 각 변형에 대해 3가지 다른 정의가 있습니다. 예를 들어 변종은 엑손, UTR 및 인트론(사용된 다양한 데이터베이스를 기반으로 함)으로 동시에 정의될 수 있습니다.

일부 엑손 변종에는 아미노산 변화가 없기 때문에 실제 엑손 변종을 필터링하고 싶습니다( p.*).

답변1

사용행복하다(이전 Perl_6)

raku -ne '.put if .words[12].match("p.") && .match("exonic") ;' 

입력 예:

hrY 21154569    21154569    A   G   PASS    hom exonic  CD24    .   synonymous  SNV CD24:NM_001291737:exon1:c.T27C:p.L9L,CD24:NM_001359084:exon1:c.T27C:p.L9L,CD24:NM_013230:exon1:c.T27C:p.L9L,CD24:NM_001291738:exon2:c.T27C:p.L9L
hrY 21154569    21154569    A   G   PASS    hom exonic  CD24    .   synonymous  SNV CD24:NM_001291737:exon1:c.T27C:q.L9L,CD24:NM_001359084:exon1:c.T27C:q.L9L,CD24:NM_013230:exon1:c.T27C:q.L9L,CD24:NM_001291738:exon2:c.T27C:q.L9L
hrY 21154569    21154569    A   G   PASS    hom intronic    CD24    .   synonymous  SNV CD24:NM_001291737:exon1:c.T27C:p.L9L,CD24:NM_001359084:exon1:c.T27C:p.L9L,CD24:NM_013230:exon1:c.T27C:p.L9L,CD24:NM_001291738:exon2:c.T27C:p.L9L

예제 출력:

hrY 21154569    21154569    A   G   PASS    hom exonic  CD24    .   synonymous  SNV CD24:NM_001291737:exon1:c.T27C:p.L9L,CD24:NM_001359084:exon1:c.T27C:p.L9L,CD24:NM_013230:exon1:c.T27C:p.L9L,CD24:NM_001291738:exon2:c.T27C:p.L9L

위 내용은 답변 인코딩입니다.행복하다, Perl 프로그래밍 언어 계열의 구성원입니다. Perl6 프로젝트는 2000년에 시작되었고, 2019년에 언어명이 Perl6에서 Raku로 변경되었습니다. 간단히 말해서 다음 명령을 사용하여 테스트 입력 파일을 만듭니다.

  1. 실제 tsv 텍스트는 라인 1입니다.
  2. 2번째 줄은 " "를 " " q.로 바꿉니다 .p.
  3. 테스트 입력 파일의 3행에서는 intronic" "라는 단어를 " "라는 단어로 바꿉니다 exonic.

위의 Raku 코드는 match열 12에서 " "라는 텍스트가 포함된 행을 검색합니다(index_0은 열 13에 있음). " "라는 단어에도 하나가 있으면 해당 행을 반환합니다. 첫 번째(즉, 왼쪽의 " ") 조건이 로 평가되면(단락 AND 연산자) 행을 즉시 건너뜁니다.p..words[12]matchexonic&&p.False

grep정규 표현식 작성에 익숙하다면 Raku의 루틴을 사용할 수 있습니다.

https://docs.raku.org/routine/match
https://docs.raku.org/routine/grep
https://raku.org

관련 정보