Xem chỉnh sửa bên dưới Sử dụng R, tôi muốn lọc ma trận (dữ liệu biểu hiện gen) và chỉ giữ các hàng (gen/đầu dò) có giá trị cao phương sai. Ví dụ: tôi chỉ muốn giữ các hàng có giá trị ở phần trăm dưới cùng và trên cùng (ví dụ: dưới 20% và trên 80%). Tôi muốn giới hạn nghiên cứu của mình chỉ với các gen theo phương sai cao cho các phân tích hạ lưu. Có cách nào phổ biến để lọc gen trong R?R, ma trận lọc dựa trên phương sai cắt
Ma trận của tôi có 18 mẫu (cột) và 47000 đầu dò (hàng) với các giá trị được log2 chuyển đổi và chuẩn hóa. Tôi biết hàm quantile()
có thể xác định ngưỡng cắt giảm 20% và 80% trong mỗi cột mẫu. Tôi không thể tìm ra cách để tìm các giá trị này cho toàn bộ ma trận, và sau đó đặt ma trận gốc để loại bỏ tất cả các hàng "không thay đổi".
ma trận Ví dụ với một trung bình của 5.97, do đó ba hàng cuối cùng nên được loại bỏ vì chúng chứa các giá trị giữa cutoffs 20% và 80%:
> m
sample1 sample2 sample3 sample4 sample5 sample6
ILMN_1762337 7.86 5.05 4.89 5.74 6.78 6.41
ILMN_2055271 5.72 4.29 4.64 5.00 6.30 8.02
ILMN_1736007 3.82 6.48 6.06 7.13 8.20 4.06
ILMN_2383229 6.34 4.34 6.12 6.83 4.82 5.57
ILMN_1806310 6.15 6.37 5.54 5.22 4.59 6.28
ILMN_1653355 7.01 4.73 6.62 6.27 4.77 6.12
ILMN_1705025 6.09 6.68 6.80 6.85 8.35 4.15
ILMN_1814316 5.77 5.17 5.94 6.51 7.12 7.20
ILMN_1814317 5.97 5.97 5.97 5.97 5.97 5.97
ILMN_1814318 5.97 5.97 5.97 5.97 5.97 5.97
ILMN_1814319 5.97 5.97 5.97 5.97 5.97 5.97
Tôi đánh giá cao bất cứ đề nghị, hoặc chức năng mà Tôi nên xem xét. Cảm ơn!
EDIT
Xin lỗi, tôi đã không phải là rất rõ ràng trong OP. (1) Tôi muốn biết giá trị ngưỡng 20% và 80% cho toàn bộ ma trận (không chỉ cho từng mẫu riêng lẻ). (2) Sau đó, nếu bất kỳ hàng nào chứa một giá trị trong phần trăm trên hoặc dưới, R sẽ giữ các hàng này. Nếu một hàng chứa các giá trị (đối với tất cả các mẫu) nằm gần giá trị trung bình, các hàng này sẽ bị loại bỏ.
Cảm ơn bạn đã làm rõ. Tôi cũng đã cập nhật câu trả lời của tôi để phản ánh những gì bạn đã hy vọng đạt được. Câu hỏi nhanh - bạn có ma trận hay một khung dữ liệu (tức là cột ID là tên của ma trận hoặc cột đầu tiên của khung dữ liệu của bạn?). Một cách nhanh chóng để kiểm tra sẽ là 'class (m)'. –
Nó phải là một ma trận (chỉ dữ liệu biểu thức) và cột ID là tên gọi cho ma trận của tôi (tôi nên để tên "ID" khỏi ví dụ của tôi). – Todd
Ok tuyệt vời! Đó là những gì tôi nghĩ với ví dụ của tôi. –