我有一個檔案 (.tsv),其中包含呼叫所有樣本的變體。我想將前三列合并為一列:
示例: 原文:
檔案名=變體.tsv > 我要合并的前三列是:
泳道樣品ID條碼
B31 00-00-NNA-0000 0000
期望的輸出:
ID
B31_00-00-NNA-0000_0000
推薦的方法是什么?
uj5u.com熱心網友回復:
一種方式,使用 perl one-liner:
perl -F'\t' -lane '
if ($. == 1) {
print join("\t", "ID", @F[3..$#F])
} else {
print join("\t", join("_", @F[0,1,2]), @F[3..$#F])
}' variants tsv
@F在選項卡上將每一行拆分為一個陣列 ( ),并使用該陣列的切片列印出標題和后面的行以提取適當的元素,然后將這些元素連接成分隔的字串。
uj5u.com熱心網友回復:
從此開始
lane sampleID Barcode
B31 00-00-NNA-0000 0000
并使用Miller,您可以運行
mlr --tsv put -S '$ID=$lane."_".$sampleID."_".$Barcode' input.tsv >output.tsv
具有
------ ---------------- --------- -------------------------
| lane | sampleID | Barcode | ID |
------ ---------------- --------- -------------------------
| B31 | 00-00-NNA-0000 | 0000 | B31_00-00-NNA-0000_0000 |
------ ---------------- --------- -------------------------
如果您只想要 ID 欄位,則命令是
mlr --tsv put -S '$ID=$lane."_".$sampleID."_".$Barcode' then cut -f ID input.tsv >output.tsv
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/321807.html
上一篇:如何將本地csv檔案的內容保存到“硬編碼”PandasDataFrame中?
下一篇:python生成的csv中的空行
