Hola a todos.
Antes de nada, daros la enhorabuena, tanto al administrador como a la gente que publica, por el servicio que ofrecéis.
Mi duda es la siguiente: Estoy trabajando con una base de datos bastante grande (16 GB en cada archivo. En total, 460 TB), cuya estructura es:
Using text Syntax Highlighting
desname=clusteringBin3940
similarity_method=FrankEtAlDotProduct
version=spectra-cluster-1.0.6-SNAPSHOT
threshold=0.7
fdr=0
description=clusteringBin3940
=Cluster=
SPEC PRD000681;PRIDE_Exp_Complete_Ac_22491.xml;spectrum=1074 true
SPEC PRD000681;PRIDE_Exp_Complete_Ac_22498.xml;spectrum=2950 true
=Cluster=
SPEC PRD000681;PRIDE_Exp_Complete_Ac_22498.xml;spectrum=1876 true
SPEC PRD000681;PRIDE_Exp_Complete_Ac_22498.xml;spectrum=3479 true
SPEC PRD000681;PRIDE_Exp_Complete_Ac_22498.xml;spectrum=3785 true
SPEC PRD000681;PRIDE_Exp_Complete_Ac_22498.xml;spectrum=3785 true
=Cluster=
SPEC PRD000681;PRIDE_Exp_Complete_Ac_22493.xml;spectrum=473 true
SPEC PRD000681;PRIDE_Exp_Complete_Ac_22493.xml;spectrum=473 true
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
De este tipo de archivos tengo bastante y mediante un
cat los he juntado todos en un mismo archivo, por lo que tengo X archivos juntos.
Como podéis ver, hay varios elementos repetidos (último elemento y antepenúltimo elemento). Para comprobar y eliminar los repetidos basados en el patrón de
=Cluster= y en el patrón
spectrum he realizado el siguiente programa.
Using perl Syntax Highlighting
#!/usr/bin/perl
use warnings;
use strict;
my %seen;
my $count = 0;
my $output;
while ( <> ) {
next if ( m/spectrum=(\d+)/ and $seen{$1}++ );
if ( m/==Cluster==/ ) {
open ( $output, ">", "temp".$count++ ) or die $!;
select $output;
}
print;
}
Coloreado en 0.005 segundos, usando
GeSHi 1.0.8.4
Este programa funciona perfectamente. El problema está en que lo quiero adjuntar en un proyecto que está escrito todo en Python, lenguaje que no he tocado.
¿Existe algún módulo que permita ejecutar dicho código en Python? En caso de que no, si alguien sabe cómo pasarlo a Python podríamos llegar a algún acuerdo económico, ¡jajaja!
Saludos y muchas gracias.