class_docstr: The scansion symbols used can be configured by passing a suitable constants class to
  the constructor.
docstr: Transform instances of consonantal i to j
  :param line:
  :return:
  
  >>> print(VerseScanner().transform_i_to_j("iactātus"))
  jactātus
  >>> print(VerseScanner().transform_i_to_j("bracchia"))
  bracchia
docstr_tok: ["Transform","instances","of","consonantal","i","to","j",":","param","line",":",":","return",":",">",">",">","print","(","VerseScanner","(",")",".transform_i_to_j","(","``","iact\u0101tus","''",")",")","jact\u0101tus",">",">",">","print","(","VerseScanner","(",")",".transform_i_to_j","(","``","bracchia","''",")",")","bracchia"]
code: def transform_i_to_j(self, line: str) -> str:
      """
      Transform instances of consonantal i to j
      :param line:
      :return:
  
      >>> print(VerseScanner().transform_i_to_j("iactātus"))
      jactātus
      >>> print(VerseScanner().transform_i_to_j("bracchia"))
      bracchia
      """
  
      words = line.split(" ")
      space_list = string_utils.space_list(line)
      corrected_words = []
      for word in words:
          found = False
          for prefix in self.constants.PREFIXES:
              if word.startswith(prefix) and word != prefix:
                  corrected_words.append(
                      self.syllabifier.convert_consonantal_i(prefix)
                  )
                  corrected_words.append(
                      self.syllabifier.convert_consonantal_i(
                          word[len(prefix) :]
                      )
                  )
                  found = True
                  break
          if not found:
              corrected_words.append(
                  self.syllabifier.convert_consonantal_i(word)
              )
      new_line = string_utils.join_syllables_spaces(
          corrected_words, space_list
      )
      char_list = string_utils.overwrite(
          list(new_line),
          r"\b[iī][{}]".format(
              self.constants.VOWELS + self.constants.ACCENTED_VOWELS
          ),
          "j",
      )
      char_list = string_utils.overwrite(
          char_list,
          r"\b[I][{}]".format(self.constants.VOWELS_WO_I),
          "J",
      )
      char_list = string_utils.overwrite(
          char_list,
          r"[{}][i][{}]".format(
              self.constants.VOWELS_WO_I, self.constants.VOWELS
          ),
          "j",
          1,
      )
      return "".join(char_list)
  
imports: import logging
  import re
  from typing import Any, Dict, List
  import cltk.prosody.lat.string_utils
  from cltk.prosody.lat.metrical_validator import MetricalValidator
  from cltk.prosody.lat.scansion_constants import ScansionConstants
  from cltk.prosody.lat.scansion_formatter import ScansionFormatter
  from cltk.prosody.lat.syllabifier import Syllabifier
  from cltk.prosody.lat.verse import Verse
label_desc: Use image node_id 2 for calling the VerseScanner obj's underlying member method code with example usage: obj.transform_i_to_j(line) and returns: str