私はPLINKと協力してゲノムワイドなデータを解析しています。
重複した SNP を削除する方法を知っている人はいますか?
私はPLINKと協力してゲノムワイドなデータを解析しています。
重複した SNP を削除する方法を知っている人はいますか?
PLINK 1.9 では、--list-duplicate-vars suppress-first
重複を一覧表示する を使用し、1 つ (最初の 1 つ) を削除して、もう 1 つをそのまま残します。私はこれが滑ることを知っています。
--exclude
Davy が提案したように使用する代わりに--extract
、SNP のリストを削除するのではなく、保持することもできます。Unix ベースのシステムには簡単な方法があります (データが PED/MAP 形式であり、染色体によって切断されていると仮定します)。
for i in {1..22}; do
cat yourfile_chr${i}.map | grep "$i" | cut -f -4 | uniq | cut -f -2 | keepers_chr${i}.txt;
done
keepers_chr.txt
これにより、一意の場所にある SNP の SNP ID を含むファイルが作成されます。次に、元のファイルをフィードして PLINK を実行し--extract keepers_chr
、 を使用します。--make-bed --out unique_file
私が知っていることを自動的に行うコマンドはありませんが、過去に行った方法は、複製されたSNPのリストを取得し、複製をrs1001.dupに変更してから、実行--update-allele --update-name
してから作成することです。重複のリスト。したがって、すべてのエントリ.dup
の名前の末尾に、実行します。--extract duplicateSNPs.txt --make-bed --out yourfilename.dups.removed
複製されたSNPのリストを取得することは、Rに精通している場合はそれほど難しいことではありません。申し訳ありませんが、「Xを学ぶだけです!!!」答え
R の方が簡単ですが、TPED ファイルを使用する必要があります。TPED ファイルを取得できたら、これをコピーして R コンソールに貼り付けます。
a = read.table("yourfile.TPED",sep = " ",header=FALSE)
b = a[!duplicated(a$V2),]
write.table(b,file="newfile.TPED",sep=" ",quote = FALSE,col.names = FALSE, row.names=FALSE)
newfile.TPED
重複のない は R 作業ディレクトリに表示されます。ヒント:ファイルの実際の名前のスクリプトの一部を変更できますyourfile.TPED
。newfile.TPED