Biopythonの GenomeDiagram
モジュールで作成しているいくつかのゲノムチャートをインタラクティブに分析する方法として IPythonノートブック を使用したいと思います。 matplotlib
を使用してIPythonノートブックでグラフをインラインで取得する方法に関する詳細なドキュメントがありますが、GenomeDiagramはIPythonのインライングラフでサポートされていないと思われるReportLabツールキットを使用します。
しかし、私はこれを回避する方法は、プロット/ゲノム図をファイルに書き出してから、画像をインラインで開き、次のようなものと同じ結果になると考えていました:
Gd_diagram.write("test.png", "PNG")
display(file="test.png")
しかし、私はこれを行う方法を理解することはできません-またはそれが可能かどうかを知ることはできません。だから、誰もが画像をIPythonで開く/表示できるかどうか知っていますか?
ループ内でこの方法で画像を表示しようとしている場合、表示メソッドで画像コンストラクタをラップする必要があります。
from IPython.display import Image, display
listOfImageNames = ['/path/to/images/1.png',
'/path/to/images/2.png']
for imageName in listOfImageNames:
display(Image(filename=imageName))
これまで投稿されたソリューションは、pngとjpgでのみ機能します。
さらにライブラリをインポートせずにさらに簡単にしたい場合、またはアニメーション化されたまたはアニメーション化されていないGIFファイルをIpythonノートブックに表示したい場合。表示したい行をマークダウンに変換し、このニースショートハックを使用してください!
![alt text](test.gif "Title")
これはJupyterに.jpg
イメージをインポートして表示します(Anaconda環境でPython 2.7でテスト済み)
from IPython.display import display
from PIL import Image
path="/path/to/image.jpg"
display(Image.open(path))
アナコンダでは、これは次のように入力することで行われます
conda install pillow
this pageのご厚意により、上記の提案が機能しなかった場合に機能することがわかりました。
import PIL.Image
from cStringIO import StringIO
import IPython.display
import numpy as np
def showarray(a, fmt='png'):
a = np.uint8(a)
f = StringIO()
PIL.Image.fromarray(a).save(f, fmt)
IPython.display.display(IPython.display.Image(data=f.getvalue()))
PILを使用して、Jupyterノートブックで画像ファイルを表示することもできます。
from PIL import Image
path = "cats/cat0.jpg"
display(Image.open(path))
これはループでも機能します。
標準のnumpy、matplotlib、およびPILを使用するクリーンなPython3バージョン。 URLから開くための回答をマージします。
import matplotlib.pyplot as plt
from PIL import Image
import numpy as np
pil_im = Image.open('image.png') #Take jpg + png
## Uncomment to open from URL
#import requests
#r = requests.get('https://www.vegvesen.no/public/webkamera/kamera?id=131206')
#pil_im = Image.open(BytesIO(r.content))
im_array = np.asarray(pil_im)
plt.imshow(im_array)
plt.show()
GenomeDiagram
をJupyter(iPython)で使用する場合、画像を表示する最も簡単な方法は、GenomeDiagramをPNG画像に変換することです。 IPython.display.Imageオブジェクトを使用してラップし、ノートブックに表示することができます。
from Bio.Graphics import GenomeDiagram
from Bio.SeqFeature import SeqFeature, FeatureLocation
from IPython.display import display, Image
Gd_diagram = GenomeDiagram.Diagram("Test diagram")
Gd_track_for_features = Gd_diagram.new_track(1, name="Annotated Features")
Gd_feature_set = Gd_track_for_features.new_set()
Gd_feature_set.add_feature(SeqFeature(FeatureLocation(25, 75), strand=+1))
Gd_diagram.draw(format="linear", orientation="landscape", pagesize='A4',
fragments=1, start=0, end=100)
Image(Gd_diagram.write_to_string("PNG"))