Eliminar filas repetidas basadas en un patrón [Perl/Python]
![Nota Nota](https://perlenespanol.com/foro/styles/prosilver/imageset/icon_post_target.gif)
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:
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.
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.
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
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.003 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.