如何将基于目录的标识符动态映射到注释的输出文件中的特定列?

问题描述 投票:0回答:1

我有一个两步的生物信息学管道,其中:

    代码1
  1. 生成输出文件(.marked.bam)并将其放入目录结构。
    代码2
  2. 进程注释的文件(
  3. annotated.hg38_multianno.txt)下游生成的文件,我需要在这些带注释的文件中使用相应的示例名称填充Tumor_Sample_Barcode
    列。
    
    目前,
    Tumor_Sample_Barcode
  4. 列未正确填充 - 最终以占位符值(例如
annovar_output

)而不是从

.marked.bam
文件名提取的实际示例名称。
目标:
填充

Tumor_Sample_Barcode
文件中的

annotated.hg38_multianno.txt

列,其中包含从

.marked.bam

代码1
的正确示例名称的正确示例名称。
示例输入数据框架
Sample1,Polyp
Sample2,Normal
Sample3,Polyp

BAM files:
Sample1.marked.bam
Sample2.marked.bam
Sample3.marked.bam

sample名称是从 * .marked.bam中的 *中得出的。例如,sample1.marked.bam具有示例名称“ sample1”。 既定的输出:

对于每个注释。
指示输出:tumor_sample_barcode列应具有相应的示例名称(示例1):


列a

列B

tumor_sample_barcode

细胞1 sample1细胞3细胞4 sample2代码1:生成.marked.bam文件代码2:处理注释文件
细胞2
# Extract sample names from .marked.bam files for bam_file in "$OUTPUT_DIR"/*.marked.bam; do sample_name=$(basename "$bam_file" | sed 's/\.marked\.bam$//') echo "Processing BAM file for sample: $sample_name" # Processing and generating annotated files for each sample... done
# For each annotated file, extract the sample name from its parent directory for ANNOTATED_FILE in $(find "$ANNOVAR_OUTPUT_DIR" -name "annotated.hg38_multianno.txt"); do SAMPLE_NAME=$(basename "$(dirname "$ANNOTATED_FILE")") # Populate "Tumor_Sample_Barcode" column awk -v OFS='\t' -v sample_name="$SAMPLE_NAME" ' NR == 1 { # Add column if not present col = -1 for (i = 1; i <= NF; i++) if ($i == "Tumor_Sample_Barcode") col = i if (col == -1) { print $0, "Tumor_Sample_Barcode" col = NF + 1 } else { print $0 } } NR > 1 { $col = sample_name print $0 } ' "$ANNOTATED_FILE" > "${ANNOTATED_FILE}.temp" mv "${ANNOTATED_FILE}.temp" "$ANNOTATED_FILE"` done

可能的原因:
您的尴尬脚本的前肢线是:

mv "${ANNOTATED_FILE}.temp" "$ANNOTATED_FILE"`

以aparsit,未封闭的反向引用。 我首先认为这是一个复制错误(请参阅我的编辑提案), 但是,如果您运行的脚本

表,则包含此反向引用,
您可以做的第一件事是
破坏工具链的错误处理
pandas bash awk text-processing file-manipulation
1个回答
0
投票
因此,该链的一个

.sh

没有忽略的致命错误,

让您认为(未触及的,仍然包含占位符)注释。Hg38_multianno.txt是您尴尬运行的结果。

…一旦完成,当然,您只需删除那个未挂起的回音即可释放您的链条。
	

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.