Ho questo script awk che uso per filtrare i geni che sono espressi in modo differenziale. Ho un file CSV che è stato creato in R.Perché lo script awk non funziona su Mac OS ma funziona su Linux?
#Command to get DE genes
awk -F '\t' '$14 < 0.05 && $10 < -1 && $7 > 1 { print > "Genes-Down.csv" }
$14 < 0.05 && $10 > +1 && $8 > 1 { print > "Genes-Up.csv" }' Results-RPKMs.csv
ho iniziato a fare tutte le mie analisi su Mac OS ora e lo stesso comando non funziona. Inoltre non fornisce alcun messaggio di errore. Corre e non succede nulla. Ho avuto anche gli stessi problemi con altri comandi di sed, ma è stato facile crearne di nuovi usando awk. Grazie.
Aggiornamento: Il MacOS X awk è la versione 20070501. Tuttavia, la macchina Ubuntu ha mawk 1.3.3. Il comando awk --version non funzionerebbe. Ho dovuto usare awk -W --version. Quindi penso che sia per questo che funziona su Ubuntu ma non funzionava in MacOSX. Così ho scaricato mawk e l'ho installato usando fink e ora il comando funziona in MacOSX. Grazie per l'aiuto.
Update2: In realtà il problema non era awk. Di solito creo i file CSV in R. Quindi eseguo semplicemente lo script per fare il filtraggio. Risulta che se apro i file CSV in Excel o salvo un file Excel in formato CSV, lo script non funziona (provato diverse volte con delimitatori diversi). Apparentemente se si salva un foglio di calcolo come .csv in MacOX (Excel 2011) e si tenta di riaprirlo in Excel, si dice che si tratta di un file SYLK. C'è una descrizione di questo sul sito Web di Microsoft. Se uso OpenOffice, funziona perfettamente. Il migliore.
prova a raggruppare il '' && come '($ 14 <0.05 && $ 10 < -1) && $7 > 1' –
' cat -vet "per i risultati RPKMs.csv |. -10' testa Vedete'^M $ 'al fine di ogni riga? Se è così, allora 'dos2unix Results-RPKMs.csv'. Else modifica la tua domanda per includere i risultati di' awk --verion' da entrambe le macchine. Buona fortuna. – shellter
Ho appena provato il tuo script con 'BSD awk' versione 20070501 su MacOS X e ha funzionato senza intoppi come ha fatto 'mawk' e' gawk' – Scrutinizer