Taking output from Circos using Perl

I have recently installed Perl on my computer (Windows10 64-bit operating system -
Intel(R) Celeron(R) N4000 CPU @ 1.10GHz 1.10 GHz -
Installed RAM 8.00 GB) and I have also copied Circos folder.
However, when I run the following command on Perl:
perl .\bin\circos -conf example\etc\circos.conf

I face the following error:

*** CIRCOS ERROR ***

  cwd: E:/Circos/session 1

  command: .\bin\circos -conf example\etc\circos.conf

There was a problem with True Type font support. Circos could not render text
from the font file

  E:\Circos\session 1\fonts\modern\cmunssdc.otf

Please check that gd (system graphics library) and GD (Perl’s interface to gd)
are compiled with True Type support.

On UNIX systems, try

  gdlib-config --all

and look for GD_FREETYPE in the ‘features’ line and -lfreetype in the ‘libs’
line. If these are there, it’s likely that your Perl GD module needs
recompiling.

Can anyone help me with this issue?

Do you have a link to your project - We would like to see what your dependency tree looks like, and what version of freetype2 is linked in your project.

Unfortunately, I don’t have a link, but I can provide any information you need instead. Based on the Circos documentation, I have all the necessary modules installed (you may need to review the attached image). And, I think freetype2 is already installed on my computer; if you think it is not so, please let me know how to proceed.

Circos on Windows seems to be rather old. The documentation mentions the use of Perl 5.8 through 5.14, all of which have been end of life for over a decade. It’s very likely that these older versions of Perl are not built with Freetype support; that was a known issue for many years.
If you run “perl -v” from the command line it will report the Perl version you have installed. “perl -V” will report more, including some details about the vendor.

I know some people that they have installed Perl on their Windows and there was no problem. The version of my Perl is (v5.38.0).
Do you mean I install Linux (for example) on my PC?? Thank you in advance.

Which State Tool command did you use to install ActiveState Perl 5.38.0?

What do you mean by ActiveState Perl 5.38.0? I didn’t install it ActiveState Perl 5.38.0. I just signed up to the ActiveState website and then asked my question. Would you mind explaining what should I do?

Ah! I think you then are misunderstanding our product. This forum is for users using our distribution of Perl (getting it installed/to run), if you need general Perl help you will need to find a different forum.

What is ActiveState

ActiveState is a platform that helps developers get the language and dependencies they need to code, on a system that can provide reproducible builds, across multiple operating systems (OSes), in a virtualized environment so you don’t need to change the base version of a language installed on the machine you are working on. This makes it easier to swap between projects in different versions of a language or share with collaborators.

Let’s get started!

We will assume you have never interacted with ActvieState and do not have the State Tool installed. And you have access to a method of interacting with your code ready (for example and IDE like Visual Studio Code, or Pycharm.

  1. Create a free account

By creating a free account of the ActiveState Platform, you can retrieve, change, edit, and update the needs of your project. Or if there is an existing project you would like to work on, you could fork the original project and work on it.

  1. Create or fork a project

Forks are often used to iterate on ideas or changes before they are proposed back to the upstream repository, by forking an existing project you can build off of an existing project and change it to suit your needs.

To fork an existing project:

  1. Open your web browser and go to https://platform.activestate.com and sign in.
  2. Select the organization that contains the project you want to fork and then click the Projects tab.
  3. Select the project to fork from your Custom Projects list or the Managed Projects list (if applicable). Custom projects are projects specific to your organization that you can modify as needed. Managed projects are created and maintained by ActiveState.
  4. Click Fork It next to the project title.
    Forking a project always creates the fork from the most recent commit for the project.
  5. Enter a name for the forked project. You can leave it the same as the original project or provide a custom name to indicate that it is forked.
  6. Select the organization to fork the project to. You can select any organization you belong to.
  7. Click Fork Project.

It may be beneficial to have a requirements.txt or other list of dependencies already. If you have a requirements file ready to add to your project you can use it to update your existing project

  1. Install State Tool is our Command Line Interface (CLI)

  2. Why do I need this? StateTool is our Package Manager, Package Managers are things that follow your instructions to locally manage your language core and dependencies. Other package managers you may have heard of are homebrew and pip. Without this, as a free user, you can not get the binaries we built for you in your project down to your system you are coding on.

1. Note paying customers can get offline installers (exe) of their projects for use in air gapped or restricted connectivity environments - [talk to sales](https://www.activestate.com/company/contact-us/)
  1. Use the State Tool to bring the binaries down to the system you are working on

You now have a local runtime, meaning you have a virtual environment running a language core and the dependencies (packages) you selected (or were a part of the project you forked) which can now be referenced and used by the code you are running locally. Congratulations! You can now return to the lesson which brought you here.

This is the core of the error message:
" There was a problem with True Type font support. Circos could not render text from the font file {}
Please check that gd (system graphics library) and GD (Perl’s interface to gd) are compiled with True Type support."

This is a simple sounding error, but it’s unlikely to be something a “user” can fix. On Windows, you don’t have a lot of options. Either the downloaded binary file just works, or you have to go all the way down to the source code for Perl, get some additional third party C libraries you didn’t have on the first try, get a C compiler, and recompile all the source code to make a custom-to-you Perl.

The next step in troubleshooting depends on where you got your Perl 5.38.0. If you just signed up and posted, it’s probably not a Perl that we compiled. It could be a Strawberry Perl, which isn’t our product and is supported (or not) by the team at Strawberry Perl and the wider Perl community.

You mentioned that you have a freetype C library. However, you might not have the right version, and if Windows is trying to use a different version of freetype than what Perl GD must use, the end result could well be Circos at the top level giving you a less specific error message indicating it can’t open the font file. If you can determine where the Perl came from and find out which version of the freetype library the GD in that Perl must use, you might be able to find out if the version you have separately is incompatible. You might also find out if the Perl installer has included the right version of freetype, so that you don’t need to worry about getting it separately and if so, that would be your best outcome.

Noting we already have a Circos project:

https://platform.activestate.com/ReadyMade/Circos/distributions

This should work out of the box.

Thank you all for your replies. Regarding your platform, I have some questions. Please answer these if you don’t mind.

  1. what is the difference between “distribution of Perl” & “general Perl”?
  2. I assume that ActiveState provides a cloud environment for developers to switch those developers’ versions of programs through the ActiveState platform. Is that right?

Our distribution of Perl is built from source, by us, and distributed via our platform onto people’s systems using the state tool, a command line interface (CLI) tool.

General perl is what you might grab off CPAN or elsewhere and may have been compiled by a maintainer, or someone else, instead of one consistent company.

Sorry that is incorrect. ActiveState is a platform that helps developers get the language and dependencies they need to code, on a system that can provide reproducible builds, across multiple operating systems (OSes), in a virtualized environment deployed onto the users systems. This means you don’t need to change the base version of a language installed on the machine you are working on, making it easier to share, collaborate, or swap between projects in different language versions.

Our cloud platform builds the perl, and it’s modules, from source, but then you grab the perl and it’s modules that we built custom to what you requested using our CLI tool and bring it down to whatever system you want (a server, a laptop, a docker container, whatever) to use in a deployment or to use in coding. the “virtual environment” is on whatever system you want, and you can have multiple on the same system.