替换fastafile中的headername和文件夹中的filename,并使用单独fi中的字符串

2024-05-15 11:10:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做一个生物信息学的研究,在那里我处理一些数据,把一些输出放到一些想要的文件夹里。对于其中两个文件夹(文件和文件夹结构链接在线程末尾),文件夹/文件结构如下所示:

binned/90-20-09-2018/bins/90-20-09-2018.001、90-20-09-2018.002、90-20-09-2018.003等等

binned/90-25-04-2018/bins/90-25-04-2018.001、90-25-04-2018.002、90-25-04-2018.003等等

我知道文件夹的数量,但是文件夹中的文件数量是未知的,并且会有所不同

在另一个名为taxonomy的文件(例如binned/90-20-09-2018/bins/quality/taxonomy.txt)中,是每个箱子的细菌名称表(文件名为90-20-09-2018.001、90-20-09-2018.002等)。如您所见,对于每个bin ID,都有一个对应的分类法

----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  Bin Id              # unique markers (of 43)   # multi-copy   Taxonomy                                                                                              
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  90-20-09-2018.001              25                   15        k__Bacteria;p__Firmicutes;c__Bacilli;o__Lactobacillales;f__Lactobacillaceae;g__Lactobacillus          
  90-20-09-2018.003              24                   0         k__Bacteria;p__Firmicutes;c__Bacilli;o__Lactobacillales;f__Streptococcaceae;g__Streptococcus          
  90-20-09-2018.002              15                   0         k__Bacteria;p__Firmicutes;c__Bacilli;o__Lactobacillales;f__Lactobacillaceae_2;g__Lactobacillus_2      
  90-20-09-2018.005              14                   11        k__Bacteria;p__Firmicutes;c__Clostridia;o__Clostridiales;f__Lachnospiraceae                           
  90-20-09-2018.004              12                   0         k__Bacteria;p__Actinobacteria;c__Actinobacteria;o__Actinomycetales;f__Actinomycetaceae;g__Mobiluncus  
----------------------------------------------------------------------------------------------------------------------------------------------------------------------

我需要的是将每个bin文件(90-20-09-2018.001、90-20-09-2018.002等)重命名为相应的分类(属)名称。属名是在“g”之后的名称。所以对于BIN001,应该是“乳酸杆菌”

最后的结果是这样的(对于第一个文件夹)

binned/90-20-09-2018/bins/乳酸杆菌、乳酸杆菌2、链球菌

我想象这是用Python(我唯一熟悉的编程语言)完成的

此外,我需要将fasta文件的头文件更改为相应的名称(与文件本身的名称相同)。fasta文件的格式如下所示:

>NODE_2_length_62925_cov_23.488138
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCTTTTCAAGCAGAAGACGGCATACGAGATAATGAGCGGTG
ACTGGAGTTCAGACGTGTGCTCTTCCGATCTCGTCTCAAGTTAAAAATCTGCTAGCCAATACTTTACCTA
ATGCTGTCACTTCTCTACTACAATTTTTCGGTGCATTAGTAATTATGATGGCGATGGATTGGCAAATGAC
CTTGATTATGTTTATCGCCGTTCCACTGGTAGTTGTGGCTCTACTCCCAATCATGCAACAATCACGTAAA
ATCGGCCGTAAGCGCCAGGACGAACTAGCCAACTTTTCAAGCGATTCTACCAGTGTTTTAAGCGAAATTA
GATTAGTTAAGTCTTCCAACGGTGAACCAAAAGAGTTAAACGTTGGAAGCAATCGGATTTCTAGCCTCTA
>NODE_89_length_21285_cov_31.129560
GGCTACAAACAAATTGAAGATGAAATTGCTCGCTTAAAGAAGGGTCGTCCACGCAGAATTAAAATTTTGC
AGGCAGCACGTGCGCTCGGCGACCTTTCAGAAAATACGGAATATACTGAAGCTAAGCGTTACTTAGGCAA
ACAATTAAAGTATACGGAAATCGTTGAAACTAAGGACGATGGCAAGGTTGATTTGGGCAAAACCGTTGTC
TTGAAGTTTGACGATGATGAAGATACTGAAGAATATAAGATTGTTGGCCGGATGGAGGCTGATTTAGCCG
ATGGCAAGATTTCCTTTGGTTCACCACTGGGCCAAGCAATTATGAAAAAAGAGGCAGGGACGACTTCAAC
AGTTGAAGCACCGGCCGGAGAATATAAGGT

所以基本上,它是在“>;”之后的名称需要改成相应的名字。 所以对于BIN001,所有的标题都是“乳酸菌”

如果我不太清楚的话,请随便问问题

谢谢

链接到文件和文件夹:

https://www.dropbox.com/sh/ho3ux5wplv7yk4u/AAAuqLOFKtxXr3KTwGqca778a?dl=0


Tags: 文件文件夹名称数量bin链接结构taxonomy