用单独文件中的字符串替换fasta文件中的标头名称和文件夹中的文件名

时间:2019-11-04 10:45:47

标签: python fasta

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

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等

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

在另一个称为分类法的文件中(例如,binned / 90-20-09-2018 / bins / quality / taxonomy.txt),是每个分类箱的细菌名称表(名为90-20-09-的文件) 2018.001、90-20-09-2018.002等)。如您所见,每个容器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”之后的名称。因此对于bin 001,它将是“乳酸杆菌”。

因此,最终结果将如下所示(对于第一个文件夹)。

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

因此,基本上,必须将“>”之后的名称更改为其相应的名称。 因此对于bin 001,对于所有标题,它都是“ Lactobacillus”。

如果我不太清楚,请随时提问。

谢谢!

链接到文件和文件夹:

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

0 个答案:

没有答案