Titulo: Ánalisis de las Necropsias realizadas por 3 meses en el centro de rescate Alturas Wildlife Sanctuary

Por: Ana María Villada Rosales

Descripción del Proyecto

El centro de rescate Alturas Wildlife Sanctuary recibe una gran cantidad de animales de los cuales debido a lesiones severas mueren al arribó o debido a problemas muy severos su calidad de vida se ve terriblemente afectado y la eutanasia termina siendo la mejor opción (Orakpoghenor & Terfa, 2024). Debido a ello los resultados se han estado organizando dentro de una base de datos para tener reportes sobre los hallazgos y las muertes

Descripción del Problema

A pesar de que ellos poseen una base de datos de 3 meses con un análisis exhaustivo de las necropsias seria más util tener la base de datos de manera visual para un mejor entendimiento de las lesiones encontradas.

Justificación

A pesar de que realizar necropsias es una práctica común en centros de rescate el análisis de los datos no es algo que pase continuamente por lo que proveer un análisis de datos de la información reunida puede ayudar a los centros de rescate a entender mejor los casos y crear protocolos de acuerdo a los datos analizados.

Antecedentes

Las Necropsias, también llamadas autopsia animal, es un procedimiento indispensable en la medicina veterinaria que provee un medio comprensivo para investigar las causas de la mortalidad animal y entender los procesos de enfermedad en las poblaciones animales. En la medicina veterinaria moderna una herramienta de diagnóstico sumamente importante para explicar muertes y entender las enfermedades de los animales (Boileau & Kapil, 2010; Orakpoghenor & Terfa, 2024; Zühlke et al., 2021) que llegan a un centro de rescate donde se desconoce mucha de la historia de los animales, y donde los profesionales de veterinaria deben entender que es lo que sucede con sus pacientes con poca información y basándose en la historia natural de la especie.

Una vez realizada la necropsia es importante analizar los datos para entender las enfermedades que se encuentran en los ejemplares que arriban a centros de rescate. Para responder a las preguntas importantes la data se puede analizar usando varios sistemas de datos para proveer un mejor análisis(Slob et al., 2021) de la información expuesta durante las necropsias.

El uso de análisis de los sistemas de datos no solo proveerá respuestas a investigaciones(Slob et al., 2021) también ayudara a crear sistemas de análisis de enfermedades y un entendimiento de las principales enfermedades encontradas entre los pacientes(Boileau & Kapil, 2010; Moxley & Smith, 2010; Orakpoghenor & Terfa, 2024; Zühlke et al., 2021) que se encuentran más comúnmente en los centros de rescate.

Objetivos

  • Analizar las clase(Ave, Mamífero o Reptil) que más se reciben en el centro de rescate
  • Montar en el mapa las áreas de conservación que trabajan con Alturas
  • Analizar visual e interactivamente las lesiones

Resultados y Futuros posibles usos

  • La clase que más se recibe son Aves.
  • 19 de los 41 ejemplares a los que se les hicieron necropsia fueron Eutanasiados.
  • Lo más común es no poseer historia de los ejemplares y el motivo de llegada más comúnmente es incierto.
  • Las lesiones que más amenazan la vida son lesiones traumáticas y sepsis, la severidad no se conoce hasta realizar la necropsia.

Futuro posible uso: Para un analisis más exhaustivo se pueden crear 3 bases de datos diferentes usando la clase (Aves, Mamíferos y Reptiles) y analizar los lesiones por especie.

In [ ]:
!pip install openpyxl
import pandas as pd
!pip install geodatasets
import pandas as pd
import geopandas as gpd
import numpy as np
import geodatasets
from matplotlib import pyplot as plt
import chardet

with open('Base de datos necropsias.csv', 'rb') as f:
  result = chardet.detect(f.read())
df = pd.read_csv('Base de datos necropsias.csv', encoding=result['encoding'])
df
Requirement already satisfied: openpyxl in /usr/local/lib/python3.10/dist-packages (3.1.5)
Requirement already satisfied: et-xmlfile in /usr/local/lib/python3.10/dist-packages (from openpyxl) (1.1.0)
Collecting geodatasets
  Downloading geodatasets-2024.8.0-py3-none-any.whl.metadata (5.4 kB)
Requirement already satisfied: pooch in /usr/local/lib/python3.10/dist-packages (from geodatasets) (1.8.2)
Requirement already satisfied: platformdirs>=2.5.0 in /usr/local/lib/python3.10/dist-packages (from pooch->geodatasets) (4.3.6)
Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from pooch->geodatasets) (24.1)
Requirement already satisfied: requests>=2.19.0 in /usr/local/lib/python3.10/dist-packages (from pooch->geodatasets) (2.32.3)
Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->pooch->geodatasets) (3.3.2)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->pooch->geodatasets) (3.10)
Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->pooch->geodatasets) (2.0.7)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests>=2.19.0->pooch->geodatasets) (2024.8.30)
Downloading geodatasets-2024.8.0-py3-none-any.whl (20 kB)
Installing collected packages: geodatasets
Successfully installed geodatasets-2024.8.0
Out[ ]:
Número Código Género Especie Clase Fecha necropsia Tiempo fallecido Procedencia Localización Edad ... Unnamed: 137 Cloaca.1 Unnamed: 139 Bursa de Fabricio.1 Unnamed: 141 Cráneo y Cerebro Unnamed: 143 Huesos y articulaciones.1 Unnamed: 145 Diagnósticos
0 1.0 A-001-24 Pulsatrix perspicillata Ave 04-jun-24 24h Vida Libre 3.0 Adulto ... NaN Normal NaN Normal NaN Normal NaN Normal NaN Enfermedad metabólica ósea (EMO)
1 2.0 A-002-24 Buteo magnirostris Ave 11-jun-24 0h Vida Libre 3.0 Adulto ... NaN Hemorragia NaN No se evaluó NaN No se evaluó NaN Anquilosis NaN Tuberculosis
2 3.0 A-003-24 Aramides cajaneus Ave 13-jun-24 24h Vida Libre 2.0 Adulto ... NaN Impactación NaN Atrofiada/ausente NaN Absceso(s) NaN Artritis NaN Ictericia
3 4.0 A-004-24 Pteroglossus frantzii Ave 18-jun-24 36h Vida Libre 3.0 Adulto ... NaN Inflamación NaN No se identifica NaN Congestión NaN Deformidad NaN Clamidiasis
4 5.0 A-005-24 Herpetotheres cachinnans Ave 20-jun-24 0h Vida Libre 1.0 Adulto ... NaN Necrosis NaN Inflamación NaN Hemorragia NaN Dislocación NaN Candidiasis
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
244 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
245 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
246 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
247 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
248 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

249 rows × 147 columns

In [ ]:
# Eliminar filas que solo tienen NAN
df = df.iloc[:41]
#Eliminar los unnamed que no se pudieron procesar
df = df.loc[:, ~df.columns.str.contains('^Unnamed')]
# Todo lo que dice NaN significa que es Normal por lo que se cambia a Normal
df = df.fillna("Normal")
df
Out[ ]:
Número Código Género Especie Clase Fecha necropsia Tiempo fallecido Procedencia Localización Edad ... Molleja.1 Duodeno.1 Páncreas.1 Yeyuno e íleon.1 Ciegos Cloaca.1 Bursa de Fabricio.1 Cráneo y Cerebro Huesos y articulaciones.1 Diagnósticos
0 1.0 A-001-24 Pulsatrix perspicillata Ave 04-jun-24 24h Vida Libre 3.0 Adulto ... Normal Normal Normal Normal Normal Normal Normal Normal Normal Enfermedad metabólica ósea (EMO)
1 2.0 A-002-24 Buteo magnirostris Ave 11-jun-24 0h Vida Libre 3.0 Adulto ... Atrofia Autolítico Autolítico Autolítico No aplica a sp. Hemorragia No se evaluó No se evaluó Anquilosis Tuberculosis
2 3.0 A-003-24 Aramides cajaneus Ave 13-jun-24 24h Vida Libre 2.0 Adulto ... Agenesia Contenido anormal Pancreatitis Contenido anormal Autolítico Impactación Atrofiada/ausente Absceso(s) Artritis Ictericia
3 4.0 A-004-24 Pteroglossus frantzii Ave 18-jun-24 36h Vida Libre 3.0 Adulto ... Contenido anormal Cuerpo extraño Atrofia Cuerpo extraño Contenido anormal Inflamación No se identifica Congestión Deformidad Clamidiasis
4 5.0 A-005-24 Herpetotheres cachinnans Ave 20-jun-24 0h Vida Libre 1.0 Adulto ... Cuerpo extraño Congestión Hemorragia Congestión Cuerpo extraño Necrosis Inflamación Hemorragia Dislocación Candidiasis
5 6.0 A-006-24 Brotogeris jugularis Ave 21-jun-24 24h Decomiso 3.0 Adulto ... Fístula Enteritis Necrosis Enteritis Tiflitis Neoplasia Hemorragia Hidrocefalia Displasia Aspergilosis
6 7.0 A-007-24 Ara macao Ave 21-jun-24 0h Vida Libre 2.0 Adulto ... Hemorragia Hemorragia Neoplasia(s) Hemorragia Hemorragia Obstrucción ***TIPO DE INFLAMACIÓN*** Inflamación Fractura(s) Normal
7 8.0 A-008-24 Lophostrix cristata Ave 24-jun-24 24h Vida Libre 2.0 Adulto ... Ventriculitis Hiperemia Fibrosis Hiperemia Infarto y necrosis Papiloma Caseosa Necrosis Hemorragia Normal
8 9.0 A-009-24 Ciccaba nigrolineata Ave 26-jun-24 24h Vida Libre 3.0 Adulto ... Parasitosis Infarto Congestión Infarto y necrosis Neoplasia(s) Parasitosis Catarral Neoplasia Neoplasia Normal
9 10.0 A-010-24 Falco rufigularis Ave 27-jun-24 24h Vida Libre 2.0 Adulto ... Perforación Necrosis ***TIPO DE PANCREATITIS*** Neoplasia(s) Parasitosis Prolapso Fibrinosa ***TIPO DE INFLAMACIÓN*** Osteomielitis Normal
10 11.0 A-011-24 Psarocolius montezuma Ave 30-jun-24 36h Vida Libre 2.0 Juvenil ... Úlcera(s) Neoplasia(s) Caseosa Parasitosis Perforación Suciedad (Diarrea) Granulomatosa Hemorrágica ***TIPO DE INFLAMACIÓN*** Normal
11 12.0 A-012-24 Ara macao Ave 04-jul-24 24h Vida Libre 2.0 Adulto ... Vacío Obstrucción Catarral Perforación Úlcera(s) Normal Hemorrágica Granulomatosa Caseosa Normal
12 13.0 A-013-24 Ramphastos ambiguus Ave 04-jul-24 12h Vida Libre 3.0 Adulto ... ***TIPO DE VENTRICULITIS*** Parasitosis Fibrinosa Úlcera(s) ***TIPO DE TIFLITIS*** Normal Necrotizante Necrotizante Fibrinosa Normal
13 14.0 A-014-24 Ramphastos ambiguus Ave 08-jul-24 24h Vida Libre 2.0 Cría ... Caseosa Perforación Granulomatosa ***TIPO DE ENTERITIS*** Caseosa Normal ***TIPO DE HEMORRAGIA*** ***LOCALIZACIÓN*** Granulomatosa Normal
14 15.0 A-015-24 Buteo magnirostris Ave 11-jul-24 24h Vida Libre 2.0 Adulto ... Catarral Úlcera(s) Hemorrágica Caseosa Catarral Normal Petequial Cráneo Hemorrágica Normal
15 16.0 A-016-24 Pteroglossus frantzii Ave 14-jul-24 48h Vida Libre 2.0 Adulto ... Fibrinosa ***TIPO DE ENTERITIS*** Necrotizante Catarral Fibrinosa Normal Equimótica Epidural Necrotizante Normal
16 17.0 A-017-24 Brotogeris jugularis Ave 17-jul-24 24h Vida Libre 2.0 Adulto ... Granulomatosa Caseosa ***TIPO DE HEMORRAGIA*** Fibrinosa Granulomatosa Normal Hematoma Subdural ***LOCALIZACIÓN*** Normal
17 18.0 A-018-24 Ara macao Ave 18-jul-24 24h Vida Libre 2.0 Juvenil ... Hemorrágica Catarral Petequial Granulomatosa Hemorrágica Normal Sufusión Cerebro Cráneo Normal
18 19.0 A-019-24 Ara macao Ave 20-jul-24 12h Vida Libre 2.0 Adulto ... Necrotizante Fibrinosa Equimótica Hemorrágica Necrotizante Normal ***DISTRIBUCIÓN*** Cerebelo Ala Normal
19 20.0 A-020-24 Ara macao Ave 23-jul-24 72h Vida Libre 2.0 Adulto ... ***LOCALIZACIÓN*** Granulomatosa Hematoma Necrotizante ***LOCALIZACIÓN*** Normal Focal ***TIPO DE HEMORRAGIA*** Pata Normal
20 21.0 A-021-24 Brotogeris jugularis Ave 26-jul-24 12h Decomiso 3.0 Adulto ... Coelina/mucosa Hemorrágica Sufusión ***LOCALIZACIÓN*** Mucosa/submucosa Normal Multifocal Petequial Costillas Normal
21 22.0 A-022-24 Euphonia elegantissima Ave 27-jul-24 0h Decomiso 3.0 Adulto ... Muscular Necrotizante ***DISTRIBUCIÓN*** Mucosa/submucosa Muscular Normal Difuso Equimótica Quilla Normal
22 23.0 A-023-24 Ardea alba Ave 02-ago-24 24h Vida Libre 2.0 Adulto ... Serosa ***LOCALIZACIÓN*** Focal Muscular Serosa Normal Normal Hematoma Columna vertebral Normal
23 24.0 A-024-24 Ramphastos ambiguus Ave 07-ago-24 24h Vida Libre 2.0 Adulto ... Toda la pared Mucosa/submucosa Multifocal Serosa Toda la pared Normal Normal Sufusión Sinsacro Normal
24 25.0 A-025-24 Pteroglossus frantzii Ave 09-ago-24 0h Vida Libre 1.0 Juvenil ... ***TIPO DE HEMORRAGIA*** Muscular Difuso Toda la pared ***TIPO DE HEMORRAGIA*** Normal Normal ***DISTRIBUCIÓN*** ***DISTRIBUCIÓN*** Normal
25 26.0 A-026-24 Ara macao Ave 19-ago-24 0h Vida Libre 2.0 Adulto ... Petequial Serosa ***TEXTURA*** ***TIPO DE HEMORRAGIA*** Petequial Normal Normal Focal Focal Normal
26 1.0 M-001-24 Tayassu tajacu Mamífero 29-jun-24 36h Santuario/Rehab/Prerelease 2.0 Cría ... Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal
27 2.0 M-002-24 Alouatta palliata Mamífero 01-jul-24 0h Vida Libre 2.0 Adulto ... Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal
28 3.0 M-003-24 Didelphis marsupialis Mamífero 05-jul-24 36h Vida Libre 1.0 Adulto ... Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal
29 4.0 M-004-24 Sciurus variegatoides melania Mamífero 09-jul-24 24h Vida Libre 1.0 Adulto ... Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal
30 5.0 M-005-24 Alouatta palliata Mamífero 12-jul-24 48h Vida Libre 2.0 Adulto ... Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal
31 6.0 M-006-24 Alouatta palliata Mamífero 17-jul-24 6h Vida Libre 2.0 Cría ... Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal
32 7.0 M-007-24 Dasyprocta punctata Mamífero 22-jul-24 48h Vida Libre 2.0 Adulto ... Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal
33 8.0 M-008-24 Dasyprocta punctata Mamífero 23-jul-24 6h Vida Libre 2.0 Cría ... Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal
34 9.0 M-009-24 Procyon cancrivorus Mamífero 24-jul-24 36h Vida Libre 3.0 Adulto ... Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal
35 10.0 M-010-24 Alouatta palliata Mamífero 29-jul-24 0h Vida Libre 2.0 Juvenil ... Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal
36 11.0 M-011-24 Alouatta palliata Mamífero 29-jul-24 24h Vida Libre 2.0 Adulto ... Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal
37 12.0 M-012-24 Alouatta palliata Mamífero 02-ago-24 0h Vida Libre 2.0 Adulto ... Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal
38 13.0 M-013-24 Cebus imitator Mamífero 08-ago-24 0h Vida Libre 1.0 Adulto ... Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal
39 14.0 M-014-24 Cebus imitator Mamífero 10-ago-24 0h Vida Libre 2.0 Adulto ... Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal
40 1.0 R-001-24 Kinosternon scorpioides Reptil 16-jun-24 0h Vida Libre 2.0 Adulto ... Normal Normal Normal Normal Normal Normal Normal Normal Normal Normal

41 rows × 100 columns

In [ ]:
# Contar clases de aves, mamíferos y reptiles
aves = df['Clase'].str.contains('Ave').sum()
mamiferos = df['Clase'].str.contains('Mamífero').sum()
reptiles = df['Clase'].str.contains('Reptil').sum()

total_Clases = aves + mamiferos + reptiles

print(f'Total de clases: {total_Clases}')
print(f'Clases de aves: {aves}')
print(f'Clases de mamíferos: {mamiferos}')
print(f'Clases de reptiles: {reptiles}')
Total de clases: 41
Clases de aves: 26
Clases de mamíferos: 14
Clases de reptiles: 1
In [ ]:
# Cuantos ejemplares fueron de Eutanasia
eutanasia_si = df['Eutanasia'].str.contains('Sí').sum()

print(f'Eutanasia Sí: {eutanasia_si}')
Eutanasia Sí: 19
In [ ]:
# Cual es el motivo de llegada más comun
motivo_counts = df['Motivo de llegada'].value_counts()
most_common_motivo = motivo_counts.index[0]

print(f'El motivo de llegada más común es: {most_common_motivo}')
El motivo de llegada más común es: Incierto
In [ ]:
#Ver las columnas para separar los datos que quiero analizar
df.columns
Out[ ]:
Index(['Número', 'Código', 'Género', 'Especie', 'Clase', 'Fecha necropsia',
       'Tiempo fallecido', 'Procedencia', 'Localización', 'Edad', 'Sexo',
       'Preservación', 'Eutanasia', 'Condición corporal', 'Motivo de llegada',
       'Ectoparasitosis', 'Plumaje', 'Ojos', 'Pico', 'Cera', 'Narinas',
       'Coana', 'Cavidad oral', 'Oídos', 'Glándula Uropigial', 'Piel ',
       'Subcutáneo', 'Músculo ', 'Grasa', 'Huesos y articulaciones',
       'Sacos aéreos', 'Cavidad celomática', 'Tiroides', 'Paratiroides',
       'Timo', 'Bazo', 'Corazón', 'Hígado', 'Vesícula biliar', 'Reproductivo',
       'Gls. Adrenales', 'Tráquea y laringe', 'Pulmones', 'Riñones', 'Esófago',
       'Buche y contenido', 'Proventrículo', 'Molleja', 'Duodeno', 'Páncreas',
       'Yeyuno e íleon', 'Ciegos ', 'Cloaca', 'Bursa de Fabricio',
       'Cráneo y cerebro', 'Diagnóstico adicional', 'Comentarios Extra',
       'Tiempo fallecido.1', 'Motivo de llegada.1', 'Ectoparasitosis.1',
       'Plumaje.1', 'Ojos.1', 'Pico.1', 'Cera.1', 'Narinas.1', 'Coana.1',
       'Cavidad oral.1', 'Oídos.1', 'Glandula uropigial', 'Piel',
       'Subcutáneo.1', 'Músculo', 'Grasa.1', 'Sacos aéroeos',
       'Cavidad celómica', 'Tiroides.1', 'Paratiroides.1', 'Timo ', 'Bazo.1',
       'Corazón.1', 'Hígado ', 'Vesícula Biliar', 'Reproductivo.1',
       'Glándulas adrenales', 'Tráquea', 'Pulmones.1', 'Riñones.1', 'Esófago ',
       'Buche y contenido.1', 'Proventrículo ', 'Molleja.1', 'Duodeno.1',
       'Páncreas.1', 'Yeyuno e íleon.1', 'Ciegos', 'Cloaca.1',
       'Bursa de Fabricio.1', 'Cráneo y Cerebro', 'Huesos y articulaciones.1',
       'Diagnósticos'],
      dtype='object')
In [ ]:
#Analisis Abdomen
!pip install plotly
import plotly.express as px
selected_columns = ['Cavidad celomática', 'Bazo', 'Hígado', 'Vesícula biliar', 'Reproductivo',
       'Gls. Adrenales', 'Riñones', 'Proventrículo', 'Molleja', 'Duodeno', 'Páncreas',
       'Yeyuno e íleon', 'Ciegos ', 'Cloaca', 'Bursa de Fabricio',
       'Cavidad celómica', 'Bazo.1','Hígado ', 'Vesícula Biliar', 'Reproductivo.1',
       'Glándulas adrenales','Riñones.1','Buche y contenido.1', 'Proventrículo ', 'Molleja.1', 'Duodeno.1',
       'Páncreas.1', 'Yeyuno e íleon.1', 'Ciegos', 'Cloaca.1',
       'Bursa de Fabricio.1']
df_selected = df[selected_columns]
df_melted = df_selected.melt(var_name='Lesiones Abdomen', value_name='Lesion')
df_melted = df_melted.dropna()
fig = px.sunburst(df_melted, path=['Lesiones Abdomen', 'Lesion'], title='Gráfico de Lesiones en Abdomen')
fig.show()
Requirement already satisfied: plotly in /usr/local/lib/python3.10/dist-packages (5.15.0)
Requirement already satisfied: tenacity>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from plotly) (9.0.0)
Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from plotly) (24.1)
In [ ]:
#Analisis lesiones de cabeza con gráfico
selected_columns = ['Ojos', 'Pico', 'Narinas',
       'Coana', 'Cavidad oral', 'Oídos','Tiroides', 'Paratiroides','Ojos.1', 'Pico.1', 'Narinas.1',]
df_selected = df[selected_columns]
df_selected = df[selected_columns]
df_melted = df_selected.melt(var_name='Lesiones Cabeza', value_name='Lesion')
df_melted = df_melted.dropna()
fig = px.sunburst(df_melted, path=['Lesiones Cabeza', 'Lesion'], title='Gráfico de Lesiones en Cabeza')
fig.show()
In [ ]:
#Analisis lesiones de Torax con gráfico
selected_columns = ['Pulmones','Tráquea','Esófago ','Corazón' ]
df_selected = df[selected_columns]
df_melted = df_selected.melt(var_name='Lesiones Torax', value_name='Lesion')
df_melted = df_melted.dropna()
fig = px.sunburst(df_melted, path=['Lesiones Torax', 'Lesion'], title='Gráfico de Lesiones en Torax')
fig.show()
In [ ]:
#Gráfico lesiones musculo esqueletico
selected_columns = ['Subcutáneo', 'Músculo ', 'Grasa', 'Huesos y articulaciones',
       'Sacos aéreos','Huesos y articulaciones.1']
df_selected = df[selected_columns]
df_melted = df_selected.melt(var_name='Lesiones Musculoesqueletico', value_name='Lesion')
df_melted = df_melted.dropna()
fig = px.sunburst(df_melted, path=['Lesiones Musculoesqueletico', 'Lesion'], title='Gráfico de Lesiones Musculoesqueletico')
fig.show()
In [ ]:
#Ver en un mapa las tres Áreas de Conservación de donde provienen los ejemplares registrados en la base de datos
!pip install ipyleaflet geopandas
import geopandas as gpd
from ipyleaflet import Map, GeoJSON, Marker

gdf = gpd.read_file("https://raw.githubusercontent.com/johan/world.geo.json/master/countries/CRI.geo.json")

m = Map(center=[10, -84], zoom=6)
geo_json = GeoJSON(data=gdf.__geo_interface__)
m.add_layer(geo_json)

marker1 = Marker(location=[9.39, -84.14],title= "ACOPAC") #Locacion numero 1 es ACOPAC
marker2 = Marker(location=[9.13, -83.7],title="ACOSA") #Locacion numero 2 es ACOSA
marker3 = Marker(location=[9.3, -83.8],title="ACLAP") #Locacion numero 3 es ACLAP

m.add_layer(marker1)
m.add_layer(marker2)
m.add_layer(marker3)

m
Requirement already satisfied: ipyleaflet in /usr/local/lib/python3.10/dist-packages (0.19.2)
Requirement already satisfied: geopandas in /usr/local/lib/python3.10/dist-packages (1.0.1)
Requirement already satisfied: branca>=0.5.0 in /usr/local/lib/python3.10/dist-packages (from ipyleaflet) (0.7.2)
Requirement already satisfied: ipywidgets<9,>=7.6.0 in /usr/local/lib/python3.10/dist-packages (from ipyleaflet) (7.7.1)
Requirement already satisfied: jupyter-leaflet<0.20,>=0.19 in /usr/local/lib/python3.10/dist-packages (from ipyleaflet) (0.19.2)
Requirement already satisfied: traittypes<3,>=0.2.1 in /usr/local/lib/python3.10/dist-packages (from ipyleaflet) (0.2.1)
Requirement already satisfied: xyzservices>=2021.8.1 in /usr/local/lib/python3.10/dist-packages (from ipyleaflet) (2024.9.0)
Requirement already satisfied: numpy>=1.22 in /usr/local/lib/python3.10/dist-packages (from geopandas) (1.26.4)
Requirement already satisfied: pyogrio>=0.7.2 in /usr/local/lib/python3.10/dist-packages (from geopandas) (0.9.0)
Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from geopandas) (24.1)
Requirement already satisfied: pandas>=1.4.0 in /usr/local/lib/python3.10/dist-packages (from geopandas) (2.1.4)
Requirement already satisfied: pyproj>=3.3.0 in /usr/local/lib/python3.10/dist-packages (from geopandas) (3.6.1)
Requirement already satisfied: shapely>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from geopandas) (2.0.6)
Requirement already satisfied: jinja2>=3 in /usr/local/lib/python3.10/dist-packages (from branca>=0.5.0->ipyleaflet) (3.1.4)
Requirement already satisfied: ipykernel>=4.5.1 in /usr/local/lib/python3.10/dist-packages (from ipywidgets<9,>=7.6.0->ipyleaflet) (5.5.6)
Requirement already satisfied: ipython-genutils~=0.2.0 in /usr/local/lib/python3.10/dist-packages (from ipywidgets<9,>=7.6.0->ipyleaflet) (0.2.0)
Requirement already satisfied: traitlets>=4.3.1 in /usr/local/lib/python3.10/dist-packages (from ipywidgets<9,>=7.6.0->ipyleaflet) (5.7.1)
Requirement already satisfied: widgetsnbextension~=3.6.0 in /usr/local/lib/python3.10/dist-packages (from ipywidgets<9,>=7.6.0->ipyleaflet) (3.6.9)
Requirement already satisfied: ipython>=4.0.0 in /usr/local/lib/python3.10/dist-packages (from ipywidgets<9,>=7.6.0->ipyleaflet) (7.34.0)
Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from ipywidgets<9,>=7.6.0->ipyleaflet) (3.0.13)
Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.10/dist-packages (from pandas>=1.4.0->geopandas) (2.8.2)
Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=1.4.0->geopandas) (2024.2)
Requirement already satisfied: tzdata>=2022.1 in /usr/local/lib/python3.10/dist-packages (from pandas>=1.4.0->geopandas) (2024.1)
Requirement already satisfied: certifi in /usr/local/lib/python3.10/dist-packages (from pyogrio>=0.7.2->geopandas) (2024.8.30)
Requirement already satisfied: jupyter-client in /usr/local/lib/python3.10/dist-packages (from ipykernel>=4.5.1->ipywidgets<9,>=7.6.0->ipyleaflet) (6.1.12)
Requirement already satisfied: tornado>=4.2 in /usr/local/lib/python3.10/dist-packages (from ipykernel>=4.5.1->ipywidgets<9,>=7.6.0->ipyleaflet) (6.3.3)
Requirement already satisfied: setuptools>=18.5 in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets<9,>=7.6.0->ipyleaflet) (71.0.4)
Requirement already satisfied: jedi>=0.16 in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets<9,>=7.6.0->ipyleaflet) (0.19.1)
Requirement already satisfied: decorator in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets<9,>=7.6.0->ipyleaflet) (4.4.2)
Requirement already satisfied: pickleshare in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets<9,>=7.6.0->ipyleaflet) (0.7.5)
Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets<9,>=7.6.0->ipyleaflet) (3.0.47)
Requirement already satisfied: pygments in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets<9,>=7.6.0->ipyleaflet) (2.18.0)
Requirement already satisfied: backcall in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets<9,>=7.6.0->ipyleaflet) (0.2.0)
Requirement already satisfied: matplotlib-inline in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets<9,>=7.6.0->ipyleaflet) (0.1.7)
Requirement already satisfied: pexpect>4.3 in /usr/local/lib/python3.10/dist-packages (from ipython>=4.0.0->ipywidgets<9,>=7.6.0->ipyleaflet) (4.9.0)
Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2>=3->branca>=0.5.0->ipyleaflet) (2.1.5)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.2->pandas>=1.4.0->geopandas) (1.16.0)
Requirement already satisfied: notebook>=4.4.1 in /usr/local/lib/python3.10/dist-packages (from widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (6.5.5)
Requirement already satisfied: parso<0.9.0,>=0.8.3 in /usr/local/lib/python3.10/dist-packages (from jedi>=0.16->ipython>=4.0.0->ipywidgets<9,>=7.6.0->ipyleaflet) (0.8.4)
Requirement already satisfied: pyzmq<25,>=17 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (24.0.1)
Requirement already satisfied: argon2-cffi in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (23.1.0)
Requirement already satisfied: jupyter-core>=4.6.1 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (5.7.2)
Requirement already satisfied: nbformat in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (5.10.4)
Requirement already satisfied: nbconvert>=5 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (6.5.4)
Requirement already satisfied: nest-asyncio>=1.5 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (1.6.0)
Requirement already satisfied: Send2Trash>=1.8.0 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (1.8.3)
Requirement already satisfied: terminado>=0.8.3 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (0.18.1)
Requirement already satisfied: prometheus-client in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (0.20.0)
Requirement already satisfied: nbclassic>=0.4.7 in /usr/local/lib/python3.10/dist-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (1.1.0)
Requirement already satisfied: ptyprocess>=0.5 in /usr/local/lib/python3.10/dist-packages (from pexpect>4.3->ipython>=4.0.0->ipywidgets<9,>=7.6.0->ipyleaflet) (0.7.0)
Requirement already satisfied: wcwidth in /usr/local/lib/python3.10/dist-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->ipython>=4.0.0->ipywidgets<9,>=7.6.0->ipyleaflet) (0.2.13)
Requirement already satisfied: platformdirs>=2.5 in /usr/local/lib/python3.10/dist-packages (from jupyter-core>=4.6.1->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (4.3.6)
Requirement already satisfied: notebook-shim>=0.2.3 in /usr/local/lib/python3.10/dist-packages (from nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (0.2.4)
Requirement already satisfied: lxml in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (4.9.4)
Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (4.12.3)
Requirement already satisfied: bleach in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (6.1.0)
Requirement already satisfied: defusedxml in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (0.7.1)
Requirement already satisfied: entrypoints>=0.2.2 in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (0.4)
Requirement already satisfied: jupyterlab-pygments in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (0.3.0)
Requirement already satisfied: mistune<2,>=0.8.1 in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (0.8.4)
Requirement already satisfied: nbclient>=0.5.0 in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (0.10.0)
Requirement already satisfied: pandocfilters>=1.4.1 in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (1.5.1)
Requirement already satisfied: tinycss2 in /usr/local/lib/python3.10/dist-packages (from nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (1.3.0)
Requirement already satisfied: fastjsonschema>=2.15 in /usr/local/lib/python3.10/dist-packages (from nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (2.20.0)
Requirement already satisfied: jsonschema>=2.6 in /usr/local/lib/python3.10/dist-packages (from nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (4.23.0)
Requirement already satisfied: argon2-cffi-bindings in /usr/local/lib/python3.10/dist-packages (from argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (21.2.0)
Requirement already satisfied: attrs>=22.2.0 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=2.6->nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (24.2.0)
Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=2.6->nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (2023.12.1)
Requirement already satisfied: referencing>=0.28.4 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=2.6->nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (0.35.1)
Requirement already satisfied: rpds-py>=0.7.1 in /usr/local/lib/python3.10/dist-packages (from jsonschema>=2.6->nbformat->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (0.20.0)
Requirement already satisfied: jupyter-server<3,>=1.8 in /usr/local/lib/python3.10/dist-packages (from notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (1.24.0)
Requirement already satisfied: cffi>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (1.17.1)
Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.10/dist-packages (from beautifulsoup4->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (2.6)
Requirement already satisfied: webencodings in /usr/local/lib/python3.10/dist-packages (from bleach->nbconvert>=5->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (0.5.1)
Requirement already satisfied: pycparser in /usr/local/lib/python3.10/dist-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (2.22)
Requirement already satisfied: anyio<4,>=3.1.0 in /usr/local/lib/python3.10/dist-packages (from jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (3.7.1)
Requirement already satisfied: websocket-client in /usr/local/lib/python3.10/dist-packages (from jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (1.8.0)
Requirement already satisfied: idna>=2.8 in /usr/local/lib/python3.10/dist-packages (from anyio<4,>=3.1.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (3.10)
Requirement already satisfied: sniffio>=1.1 in /usr/local/lib/python3.10/dist-packages (from anyio<4,>=3.1.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (1.3.1)
Requirement already satisfied: exceptiongroup in /usr/local/lib/python3.10/dist-packages (from anyio<4,>=3.1.0->jupyter-server<3,>=1.8->notebook-shim>=0.2.3->nbclassic>=0.4.7->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets<9,>=7.6.0->ipyleaflet) (1.2.2)
Map(center=[10, -84], controls=(ZoomControl(options=['position', 'zoom_in_text', 'zoom_in_title', 'zoom_out_te…
In [ ]:
from IPython.display import Image

# URL of the static map image
image_url = "https://www.sinac.go.cr/ES/asp/PublishingImages/Areas%20de%20Conservaci%c3%b3n%20y%20Ubicaci%c3%b3n%20de%20oficinas.jpg"

# Display the image with adjusted width
Image(url=image_url, width=600)
Out[ ]:
No description has been provided for this image

Referencias

Boileau, M. J., & Kapil, S. (2010). Bovine Coronavirus Associated Syndromes. In Veterinary Clinics of North America - Food Animal Practice (Vol. 26, Issue 1, pp. 123–146). W.B. Saunders. https://doi.org/10.1016/j.cvfa.2009.10.003

Brownlie HW, Munro R. (2016) The Veterinary Forensic Necropsy: A Review of Procedures and Protocols. Vet Pathol.;53:919-28.

Dongre, V.B., Gandhi, R.S., Singh, A., Ruhil, A.P., 2012. Comparative efficiency of artificial neural networks and multiple linear regression analysis for prediction of first lactation 305-day milk yield in Sahiwal cattle. Livest. Sci. 147, 192–197. https://doi.org/10.1016/j.livsci.2012.04.002.

Moxley, R. A., & Smith, D. R. (2010). Attaching-effacing Escherichia coli Infections in Cattle. In Veterinary Clinics of North America - Food Animal Practice (Vol. 26, Issue 1, pp. 29–56). https://doi.org/10.1016/j.cvfa.2009.10.011

Kitchenham, B., Pearl Brereton, O., Budgen, D., Turner, M., Bailey, J., Linkman, S., 2009. Systematic literature reviews in software engineering – a systematic literature review. Inf. Softw. Technol. 51, 7–15. https://doi.org/10.1016/j.infsof.2008.09.009.

Orakpoghenor, O., & Terfa, A. J. (2024). Necropsy as an Important Diagnostic Step in Veterinary Pathology: The Past, Present, and Future Perspectives. Research in Veterinary Science and Medicine, 4, 1. https://doi.org/10.25259/rvsm_6_2024

Slob, N., Catal, C., & Kassahun, A. (2021). Application of machine learning to improve dairy farm management: A systematic literature review. In Preventive Veterinary Medicine (Vol. 187). Elsevier B.V. https://doi.org/10.1016/j.prevetmed.2020.105237

Zühlke, I., Berezowski, J., Bodmer, M., Küker, S., Göhring, A., Rinaldi, F., Faverjon, C., & Gurtner, C. (2021). Factors associated with cattle necropsy submissions in Switzerland, and their importance for surveillance. Preventive Veterinary Medicine, 187. https://doi.org/10.1016/j.prevetmed.2020.105235