Location: Whole body neon-argon visualisation testing @ 398598d9679e / SKULL / change_basis_functions_in_multiple_files.pl

Author:
vickieshim <v.shim@auckland.ac.nz>
Date:
2022-10-18 13:04:05+13:00
Desc:
updated muscles
Permanent Source URI:
https://staging.physiomeproject.org/workspace/87f/rawfile/398598d9679e10a030fd8ee04e5f28873f972d5d/SKULL/change_basis_functions_in_multiple_files.pl

#!/usr/bin/perl -w

# Declare the subroutines
sub trim($);
sub ltrim($);

# Perl trim function to remove whitespace from the start and end of the string
sub trim($)
{
	my $string = shift;
	$string =~ s/^\s+//;
	$string =~ s/\s+$//;
	return $string;
}# Left trim function to remove leading whitespace

sub ltrim($)
{
	my $string = shift;
	$string =~ s/^\s+//;
	return $string;
}

@muscles = ("left_abductor_digiti_minimi_hand", "left_abductor_pollicis_brevis", "left_abductor_pollicis_longus","left_anconeus", "left_biceps_brachii","left_brachialis","left_brachioradialis","left_coracobrachialis");

@upper_arm = ("left_biceps_brachii", "left_coracobrachialis","left_brachialis","left_triceps_brachii");
@anterior_arm = ("left_flexor_carpi_ulnaris", "left_flexor_carpi_radialis","left_pronator_teres","left_flexor_digitorum_superficialis","left_flexor_digitorum_profundus","left_flexor_pollicis_longus","left_pronator_quadratus");

@posterior_arm = ("left_brachioradialis","left_extensor_carpi_radialis_longus","left_extensor_carpi_radialis_brevis","left_extensor_digiti_minimi","left_extensor_carpi_ulnaris","left_anconeus","left_supinator","left_abductor_pollicis_longus","left_extensor_pollicis_brevis","left_extensor_pollicis_longus","left_extensor_indicis");

@hand = ("left_palmaris_brevis","left_dorsal_interossei_I_hand","left_dorsal_interossei_II_hand","left_dorsal_interossei_III_hand","left_dorsal_interossei_IV_hand","left_palmar_interossei_I","left_palmar_interossei_II","left_palmar_interossei_III","left_lumbrical_I_hand","left_lumbrical_II_hand","left_lumbrical_III_hand","left_lumbrical_IV_hand");
$LOOP = scalar(@upper_arm);

@bones = ("CAPITATE","DISTAL_PHALANX_I","DISTAL_PHALANX_II","DISTAL_PHALANX_III","DISTAL_PHALANX_IV","DISTAL_PHALANX_V","HAMATE","HUMERUS","METACARPAL_I","METACARPAL_II","MIDDLE_PHALANX_II","MIDDLE_PHALANX_III","MIDDLE_PHALANX_IV","MIDDLE_PHALANX_V","PISIFORM","PROXIMAL_PHALANX_I","PROXIMAL_PHALANX_II","PROXIMAL_PHALANX_III","PROXIMAL_PHALANX_IV","PROXIMAL_PHALANX_V","RADIUS","SCAPHOID","TRAPEZIUM","TRAPEZOID","TRIQUETRUM","ULNA");

@bones = ("DIGASTRICUS_ANTERIOR","DIGASTRICUS_POSTERIOR","GENIOHYOIDEUS","LONGUS_CAPITIS","LONGUS_COLLI_INFERIOR","LONGUS_COLLI_SUPERIOR","LONGUS_COLLI_VERTICAL","MYLOHYOIDEUS","OMOHYOIDEUS","PHARYNGEAL_CONSTRICTOR","PLATYSMA","RECTUS_CAPITIS_ANTERIOR","RECTUS_CAPITIS_LATERALIS","SCALENUS_ANTERIOR","SCALENUS_MEDIUS","SCALENUS_POSTERIOR","SPLENIUS_CAPITIS","STERNOCLEIDOMASTOID","STERNOHYOIDEUS","STERNOTHYREOIDEUS","STYLOHYOIDEUS","THYREOHYOIDEUS","TRAPEZIUS");


@missing = ("LUNATE","METACARPAL_III","METACARPAL_IV","METACARPAL_V");
$LOOP= scalar(@bones);
$start_dir = "/hpc_atog/bshi013/SPARC/ANATML/NECK/";

for($i=0; $i < $LOOP; $i++){
	chdir $start_dir;
	system ('pwd');
	chdir $bones[$i];
	system ('pwd');


	system('cp', $bones[$i].".IPNODE", $bones[$i].".ipnode");
	system('cp', $bones[$i].".IPELEM", $bones[$i].".ipelem");

	open(INPUT,"<$bones[$i].ipelem") || die;
	open (IPDATA, ">$bones[$i]_correct.ipelem") || die ("NO ipdata EXISTS");

while($line = <INPUT>){

	if($line =~ /The basis function type for geometric variable 1 is/){
		
		printf (IPDATA " The basis function type for geometric variable 1 is [1]:  1\n");
	}
	elsif($line =~ /The basis function type for geometric variable 2 is/){
		
		printf (IPDATA " The basis function type for geometric variable 2 is [1]:  1\n");
	}elsif($line =~ /The basis function type for geometric variable 3 is/){
		
		printf (IPDATA " The basis function type for geometric variable 3 is [1]:  1\n");
	}
	elsif($line =~ /Enter the 8 /){
	
		
		@node_numbers = split(':',$line);
		
		$number_only = trim($node_numbers[1]);
		
		#print " What is number only ? $number_only";
		
		@numbers = split('  ', $number_only);
		
		$array_length = @numbers;
		
		#print "the length of the array is $array_length";
		
		
		if($array_length != 8){			
			@numbers = split(' ', $number_only);
		}
                printf (IPDATA " Enter the 8 global numbers for basis 1: %5d %5d %5d %5d %5d %5d %5d %5d\n",$numbers[0],$numbers[1],$numbers[2],$numbers[3],$numbers[4],$numbers[5],$numbers[6],$numbers[7]);									       

	}else{
		printf (IPDATA "$line");
	}
}	
	

}