重新标记文件以便盲目地处理它们
blind-files的Python项目详细描述
盲文件
生成从文件名到盲目但令人难忘的文件名的映射。这个 脚本假设您有一个包含文件和/或 包含实验样本的子目录。这些文件的名字和 目录显示样本属于哪个组,但是 文件没有。
脚本将把这些文件移动到一个新目录中,重命名它们,以便 新文件名不会显示样本属于哪个组。它也会 生成映射文件以指示新文件如何映射到原始文件 文件夹。
安装
运行pip3 install blind_files
。
运行
这个脚本接受一个输入目录,并生成一个包含脚本的目录,
blind.sh
,可用于隐藏输入目录中的文件。它也
生成一个映射csv,mapping.csv
,可以在用户
完成分析以查看原始名称如何映射到盲名称。
脚本有两种操作模式:
使用分隔符
在第一种操作模式中,可以指定一个分隔符来使用 将替换每个文件名中分隔符之前的所有文本。为了 示例:
blind_files \ --mode delimiter \ --delimiter _foo \ --input-dir input_dir \ --output-dir output_dir \ --mapping-dir mapping_dir
在这种情况下,如果input_dir
包含以下文件:
sample_1_foo.txt
sample_1_foo-bar.csv
sample_2_foo.txt
hello.txt
然后在运行mapping_dir/blind.sh
之后,output_dir
将包含
golf_elbow_foo.txt
golf_elbow_foo-bar.csv
co-producer_reputation_foo.txt
hello.txt
在mapping_dir
中,您还将找到一个包含以下内容的文件mapping.csv
:
original,blinded
sample_1,golf_elbow
sample_2,co-producer_reputation
限制
这将只替换输入目录顶层的名称。如果你 具有更复杂的嵌套目录结构,其中标识符名称可以 要隐藏在目录树中,请使用下面描述的标识符列表方法。
使用标识符列表
在第二种操作模式中,可以指定
当在输入目录树中遇到它们时,应将其隐藏。
例如,如果identifiers.txt
包含以下内容:
group_a_1
group_b_1
然后运行
blind_files \ --mode identifiers \ --identifiers identifiers.txt \ --input-dir input_dir \ --output-dir output_dir \ --mapping-dir mapping_dir
在这种情况下,如果input_dir
包含以下文件:
group_a_1/group_a_1/foo.txt
group_b_1/group_b_1/foo.txt
hello.txt
然后在运行mapping_dir/blind.sh
之后,output_dir
将包含
head_bottle/head_bottle/foo.txt
eponym_curtain/eponym_curtain/foo.txt
hello.txt
在mapping_dir
中,您还将找到一个包含以下内容的文件mapping.csv
:
original,blinded
group_a_1,head_bottle
group_b_1,eponym_curtain
限制
任何标识符都不能是任何其他标识符的子字符串。例如,它是
不允许有标识符sample_1
和sample_11
。然而,
sample_01
和sample_11
就可以了。
一般限制
- 这个脚本应该可以在任何平台上运行,但只在mac os上测试过。
- 这个脚本应该通过简单地移动符号链接来处理符号链接,而不是 但这种行为还没有经过测试。
学分
此包是用 Cookiecutter。
来自here的名词列表。