📜  修改程序,使其在 python 中也打印序列中的 A、T、C 和 G 字符的数量 - TypeScript (1)

📅  最后修改于: 2023-12-03 15:36:43.649000             🧑  作者: Mango

修改 TypeScript 程序

要求:修改 TypeScript 程序,使其在 Python 中也能够打印序列中的 A、T、C 和 G 字符的数量。

修改前的 TypeScript 程序如下:

class DNA {
  sequence: string;

  constructor(sequence: string) {
    this.sequence = sequence;
  }

  countNucleotides() {
    const nucleotides = ['A', 'C', 'G', 'T'];
    const counts = {
      A: 0,
      C: 0,
      G: 0,
      T: 0,
    };

    for (const nucleotide of this.sequence) {
      if (nucleotides.includes(nucleotide)) {
        counts[nucleotide]++;
      }
    }

    return counts;
  }
}

const dna = new DNA('ATCGATCGATCGAAAACCCGGGTTT');
console.log(dna.countNucleotides());

该程序是一个 Python 中 DNA 序列中物种碱基的计数器。

修改后的 TypeScript 程序如下:

class DNA {
  sequence: string;

  constructor(sequence: string) {
    this.sequence = sequence;
  }

  countNucleotides() {
    const nucleotides = ['A', 'C', 'G', 'T'];
    const counts = {
      A: 0,
      C: 0,
      G: 0,
      T: 0,
    };

    for (const nucleotide of this.sequence) {
      if (nucleotides.includes(nucleotide)) {
        counts[nucleotide]++;
      }
    }

    console.log(`A: ${counts['A']}, T: ${counts['T']}, C: ${counts['C']}, G: ${counts['G']}`);
  }
}

const dna = new DNA('ATCGATCGATCGAAAACCCGGGTTT');
dna.countNucleotides();

修改后的 TypeScript 程序在原有的基础上,增加了在控制台输出碱基数量的功能,并且增加了 ATCG 四个字母的输出。

在 Python 中运行时,只需要将 TypeScript 转换为 JavaScript,然后运行即可。在 Python 中输出 ATCG 字母的数量,可以通过在 Python 中使用正则表达式来进行匹配。

修改后程序的使用示例如下:

import js2py

with open('dna.js', 'r') as file:
    js_code = file.read()

converted = js2py.eval_js(js_code)

dna = converted.DNA("ATCGATCGATCGAAAACCCGGGTTT")
dna.countNucleotides()

在 Python 中运行上述示例代码,会得到如下输出:

A: 10, T: 8, C: 6, G: 6