작은 대립유전자 빈도를 얻는 방법은 무엇입니까?

작은 대립유전자 빈도를 얻는 방법은 무엇입니까?

내 Linux 컴퓨터에는 다음과 같은 것이 있습니다.

AF.Cases AF.Controls
0.0044 0.00159
0.0018 0.00315
0.3920 0.38898

이제 마이너 대립유전자 빈도(maf)를 얻고 싶습니다.

따라서 AF.Cases0.5보다 크면 공식은 다음과 같습니다.

1-AF.Cases = MAF

따라서 요약하면 공식은 다음과 같습니다.

MAF = min(AF.Cases 1-AF.Cases)

Linux에서는 "치명적: 함수 'min'이 정의되지 않았습니다"라고 표시되어 있기 때문에 아래 코드가 있는 파일에서 maf를 추출할 수 없습니다.

awk 'NR>1{print min($1 1-$1)}' file > outfile

파일에서 MAF를 얻는 방법을 가르쳐 줄 수 있는 사람이 있습니까?

답변1

당신은 사용할 수 있습니다

awk 'NR > 1 { maf = ($1 > 0.5 ? 1 - $1 : $1); print maf }' file

그렇지 않으면

awk 'NR > 1 { print ($1 > 0.5 ? 1 - $1 : $1) }' file

$1또는 합계의 최소값 계산을 사용합니다 1 - $1( 에는 min()함수 없음 awk).

awk 'NR > 1 { print ($1 < 1 - $1 ? $1 : 1 - $1) }' file

이 표현식 의 결과는 if ($1 > 0.5 ? 1 - $1 : $1)이고 , 그렇지 않으면 결과는 입니다 . 마찬가지로 결과는 다음과 같습니다 .1 - $1$1 > 0.5$1($1 < 1 - $1 ? $1 : 1 - $1)$1$1 < 1 - $1진짜1 - $1기타 상황.

주어진 데이터에 대해 다음이 생성됩니다.

0.0044
0.0018
0.3920

관련 정보