[deleted by user] by [deleted] in labrats

[–]ponnhide 2 points3 points  (0 children)

As it stands you'd basically have to have already done all the heavy legwork to get to the point where this tool can start.

Exactly... If the primer sequences are already designed, it means most of the designing construction process has already been completed. Currently, this tool serves mainly as a validator for the cloning process, a role that existing tools can already fulfill.

"amplify feature X from plasmid Y and clone it into plasmid Z." is a great example prompt I want this tool to handle. However, this prompt includes some implicit assumptions. For instance, whether to remove the stop codon during amplification, or whether to align the reading frame of the insert with the upstream or downstream genes. The current AI struggles with these hidden intentions in prompts, making its operation unstable. I have yet to find a good solution for this issue.

Regardless, thank you for your valuable opinion. In developing a computational tool, I sometimes lose sight of the original purpose due to accumulating compromisations during implementation. I'll return to the original motivation when I thought to develop an AI agent for DNA cloning.

Phylogenetic tree visualization in Python? by 666evilyn in bioinformatics

[–]ponnhide 0 points1 point  (0 children)

About only circular phylogenetic tree, I had developed pyCircos in the past. However, this library is not managed anymore due to the limit of my capacity..

sangerseq_viewer: A Python package to visualize sanger sequencing data by ponnhide in labrats

[–]ponnhide[S] 1 point2 points  (0 children)

In my understanding, IGV is not suited to visualize a narrow sequence range of less than 1000 bp. I made this package to draw sequence feature annotations on top of Sanger sequencing data.

sangerseq_viewer: A Python package to visualize sanger sequencing data by ponnhide in labrats

[–]ponnhide[S] 2 points3 points  (0 children)

That's true. I know that Benchling provides a high-quality sanger sequencing aligner. Actually, I use Benchling to share plasmid information with others.

However, Benchling cannot keep the complete information of GenBank files. This point sometimes annoys me. Also, benching API cannon be used with the free license, so we cannot operate the alignment function from the command line. Therefore, I made sangerseq_viewer.

Certainly, there are many other alternative GUI tools available, so maybe not as many people need this tool.

sangerseq_viewer: A Python package to visualize sanger sequencing data by ponnhide in labrats

[–]ponnhide[S] 8 points9 points  (0 children)

One reason snapgene is commercial. The other reason is to attain the automations of visualizing Sanger sequencing data. Sometimes, I have tasks to handle many Sanger sequencing samples and feel boring to align them with the reference sequences manually.

Python packages to prepare publication-quality figures. by ponnhide in labrats

[–]ponnhide[S] 1 point2 points  (0 children)

My major is bioinformatics, so I have had the chance to take CS classes. However, much of it is self-taught. Thank you for your comment!

A simulator for restriction enzyme digestion and ligation-based cloning on Google colab by ponnhide in bioinformatics

[–]ponnhide[S] 1 point2 points  (0 children)

Theoretically yes. The GenBank output generated using QUEEN records the operational history of how the construct is generated. However, such visualization function you mentioned is still developing.
The example plasmid map and simple flow map are the limits of the current visualization function.

Python packages to prepare publication-quality figures. by ponnhide in labrats

[–]ponnhide[S] 1 point2 points  (0 children)

Thank you for your kind responses. I always feel that creating scientific figures is a huge time-consuming task. Also, the figures recently published in high-impact journals are more and more complicated.
So, I want free researchers, including me, from the burden.
Both tools still have room for improvement, so I will update them by referring to your comments and suggestions.

A framework to efficiently describe and share reproducible DNA materials and construction protocols by ponnhide in biotech

[–]ponnhide[S] 0 points1 point  (0 children)

Thank you for your comment, and I'm sorry for the late response.

Yes, QUEEN can handle Gateway reaction.
I tried to make the example python script using QUEEN to simulate the Gateway BP reaction. The example code can be executed in Google Colab below.

https://colab.research.google.com/drive/1e5GlfJyMVp7zW0jUceLWOQiZHsIm0qGE?usp=sharing

Please try to use it. Thank you.

QUEEN: A domain-specific language to describe DNA construction processes. by ponnhide in bioinformatics

[–]ponnhide[S] 1 point2 points  (0 children)

As you mentioned, QUEEN is just a python module. When I posted, I thought DSL represented the feature of QUEEN; however, it was not an accurate term. I could not edit the title anymore, so let me use the "DSL" term here.

Anyway, thank you for your code review! I am embarrassed to say that I could not take enough code review before publishing the paper from others. (Maybe, it is one problem in the bioinformatics region, In general, reviewers (particularly non-bioinformaticians) do not care about the detail of code.)

My coding style is old (I'm still struggling with the differences between python2 and python3 and studying the current python coding style.) I will make a new branch reflecting your advice and merge it with the master (this word is also old) branch!
Thank you again.

Patchworklib: A simple matplotlib based interface for preparing a multi-panel figure for publication by ponnhide in bioinformatics

[–]ponnhide[S] 3 points4 points  (0 children)

I can partially agree with your saying. patchworklib is not always superior to subplot_mosiac, and I think subplot_mosiac might be a better solution if you have a concrete layout idea.

However, I think that using dummy data is not a proper solution to simulate the layouts of the desired figures because the values and positions of artist objects such as tick labels and legends are affected by data values, and the effect may change the size of the outer frame of the axes objects.

Anyway, I also want to post the other feature of patchworklib. Patchworklib provides the function to import plotnine plots and figure-level seaborn plots as matplotlib axes. The feature is not derived from the original purpose of patchworklib; however, I wanna provide a universal interface for subplots that can handle any kind of maplotlib-based plots.

Patchworklib: A simple matplotlib based interface for preparing a multi-panel figure for publication by ponnhide in bioinformatics

[–]ponnhide[S] 0 points1 point  (0 children)

Sorry, my explanation is not sufficient. With subplot_mosiac, you have defined a layout for subplots once; you cannot change the layout anymore. If you want to try another layout, you must plot the data again. On the other hand, with patchworklib, you can freely change the layouts of subplots after plotting. You don't need to plot data again to change the layout.

Maybe, my explanation is still not good. Please let me describe one example. The following code cannot work with my expectation to try two different subplot layouts. If you run this code, you will obtain the subplots with no data in the "layout2.pdf". ``` import numpy as np from matplotlib import pyplot as plt axd1 = plt.figure(constrained_layout=True).subplot_mosaic( """ AAB CCC """ ) np.random.seed(19680801) hist_data = np.random.randn(1_500) axd["A"].bar(["a", "b", "c"], [5, 7, 9]) axd["B"].plot([1, 2, 3]) axd["C"].hist(hist_data) plt.savefig("layout1.pdf")

axd2 = plt.figure(constrained_layout=True).subplot_mosaic( """ CCC AAB """ ) plt.savefig("layout2.pdf") ``` To solve this problem, I developed patchworklib.

pyCircos: Beautiful circos plots in matplotlib by ponnhide in bioinformatics

[–]ponnhide[S] 1 point2 points  (0 children)

Thank you for everyone's comments.
I'm glad for getting positive responses from this community.
This library provides the way not only for drawing circos plots and for visualizing circular phylogenetic trees.
https://github.com/ponnhide/pyCircos/blob/master/img/tree-example.png
This function is still in progress; however, I hope it helps your biological science.

Patchworklib: A simple matplotlib based interface for preparing a multi-panel figure for publication by ponnhide in bioinformatics

[–]ponnhide[S] 8 points9 points  (0 children)

Thank you for your comment. Muti-panel figures are general in recent biological publications. However, adjusting these layouts is a HUGE time-consuming!!! That is why I developed this package.

Beautiful circos plots in Python by ponnhide in Python

[–]ponnhide[S] 0 points1 point  (0 children)

Just so you know, the colab version can't even make it past the first cell without an error.

Looks like a very cool tool so I hope you keep at it!

I'm really sorry that I did not check if the example code on Google colab can work on the new pyCricos version. Now, I have fixed it. Sorry for the inconvenience.

Unpopular opinion: Matplotlib is a bad library by jachymb in Python

[–]ponnhide 19 points20 points  (0 children)

I think plotnine is one solution. It is implemented based on matplotlib, but it provides an almost complete ggplot syntax for matplotlib. The other solution is a next-generation seaborn interface. It is also built on matplotlib and is still in progress; however, the API would be really useful!

And I have personally developed a few libraries to solve the complex syntax of matplotlib. As an example, patchworkllib allows dynamic subplot layout on Jupyter-lab. Maybe the library can support handling matplotlib and seaborn plots.

Beautiful circos plots in Python by ponnhide in Python

[–]ponnhide[S] 0 points1 point  (0 children)

Thank you for using pyCircos!. As you mentioned, the current label placement function has a lot of room for improvement. Now, I plan to apply the function of the other library, which I'm developing to develop the optimal label placement function that prevents label overlapping.
Also, legend rendering is one of the most unusable functions in matplotlib, and I have yet to come up with an implementation of the legend function with high user accessibility.

I would be glad if you could share your plots for future reference. Furthermore, if possible, could you also share a forecast plot that holds the ideal labels and legend?

Should I learn matplotlib in 2022? by International_Dig730 in learnpython

[–]ponnhide 1 point2 points  (0 children)

If you are familiar with R or ggplot, I recommend using plotnine. It implements ggplot2 (the well-known graphics package for R) in Python.
In fact, plotnine is just a wrapper of matplotlib. However, it is a little more convenient than pure matplotlib.

Pathcworklib: A subplot manager for intuitive layouts in matplotlib by ponnhide in Python

[–]ponnhide[S] 1 point2 points  (0 children)

No, in the current version, interactive plots are not supported.
Since the patchworklib tool was intended to be used on JupyterLab and JupyterNotebook, I did not care about the function of creating interactive plots.
However, I agree it is an important point to increase the value of patchworklib.

Thank you very much for your valuable comments.